2009-11-09 4 views
1

Les sources de modules d'extension ruby ​​discrets peuvent-elles se trouver dans le même répertoire, contrôlé par le même script extconf.rb?plusieurs modules d'extension ruby ​​dans un répertoire

Contexte: J'ai un projet avec deux modules d'extension, foo.so et bar.so qui vivent actuellement dans leurs propres sous-répertoires comme ceci:

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 

je préférerais que tous les .c et .h sources résident simplement sous ext/ sous le contrôle d'un seul fichier extconf.rb, mais je ne sais pas comment obtenir mkmf jouer le long.

Répondre

2

Avec mkmf, vous devrez utiliser des répertoires séparés; il n'est pas conçu pour mettre plusieurs extensions dans le même répertoire.

Vous pouvez utiliser l'une des alternatives mkmf (par exemple, mkrf) pour placer les extensions dans le même répertoire; Je ne sais pas si cela va fonctionner. Une fois, j'ai voulu faire la même chose, mais j'ai fini par découvrir qu'à mesure que ma bibliothèque grandissait, il devenait souhaitable d'avoir plusieurs répertoires pour mes extensions afin de garder le projet organisé.

Questions connexes