一个目录下的多个ruby扩展模块

离散ruby扩展模块的源是否可以存在于同一目录中,由相同的extconf.rb脚本控制?

背景:我有一个带有两个扩展模块的项目, foo.sobar.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)将扩展名放在同一目录中; 我不知道这是否有效。 我曾经想做同样的事情,但最终发现随着我的图书馆的发展,我的扩展名有多个目录,这对于保持项目组织起来是可取的。

Interesting Posts