Многочисленные модули расширения Ruby в одном каталоге
-
19-09-2019 - |
Вопрос
Могут ли источники для дискретных модулей расширения Ruby жить в том же каталоге, контролируемые тем же extconf.rb
скрипт?
Фон: у меня проект с двумя модулями расширения, foo.so а также бар которые в настоящее время живут в своих подкатализаторах, как 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
подыгрывать.
Решение
С MKMF вам нужно будет использовать отдельные каталоги; Он не предназначен для размещения нескольких расширений в одном и том же каталоге.
Вы можете использовать одну из альтернатив MKMF (например, MKRF), чтобы поместить расширения в том же каталоге; Я не знаю, сработает ли это. Однажды я хотел сделать то же самое, но в конце концов обнаружил, что по мере того, как моя библиотека выросла, наличие нескольких каталогов для моих расширений стало желательным для поддержания организованного проекта.