несколько модулей расширения ruby ​​в одном каталоге - PullRequest
1 голос
/ 09 ноября 2009

Могут ли источники для дискретных модулей расширения ruby ​​находиться в одном каталоге, управляемом одним и тем же сценарием extconf.rb?

Справочная информация: у меня есть проект с двумя модулями расширения, foo.so и bar.so , которые в настоящее время живут в своих собственных подкаталогах, например так:

myproject/ext/foo/extconf.rb
myproject/ext/foo/foo.c
myproject/ext/foo/foo.h

myproject/ext/bar/extconf.rb
myproject/ext/bar/bar.c
myproject/ext/bar/bar.h

Я бы предпочел, чтобы все .c и .h источники просто находились под ext/ под контролем одного extconf.rb файла, но я не знаю, как заставить mkmf играть вместе.

1 Ответ

2 голосов
/ 05 января 2010

С mkmf вам нужно будет использовать отдельные каталоги; он не предназначен для размещения нескольких расширений в одном каталоге.

Вы можете использовать одну из альтернатив mkmf (например, mkrf), чтобы поместить расширения в один и тот же каталог; Я не знаю, будет ли это работать. Когда-то я хотел сделать то же самое, но в конце концов обнаружил, что по мере роста моей библиотеки наличие нескольких каталогов для моих расширений стало желательным для обеспечения организованности проекта.

...