Tengo un módulo de extensión C para Python y quiero que esté disponible para los Rubyists.Módulo de extensión combinado de Python y Ruby
La fuente tiene varios módulos C, de los cuales solo uno depende de Python. El resto depende solo el uno del otro y la biblioteca estándar. Puedo construirlo con python setup.py build
de la manera habitual.
He estado experimentando con la adición de soporte Ruby usando newgem
y puedo construir una versión de la extensión con rake gem
. Sin embargo, la fuente combinada tiene un diseño de directorio feo (mezcla de estilo Gem y estructuras de estilo de herramientas de configuración) y el proceso de compilación es un kludge.
No puedo mantener todas las fuentes en el mismo directorio porque mkmf
toma automáticamente el módulo dependiente de Python e intenta compilarlo, y los usuarios no deberían tener que instalar Python para compilar un módulo que no lo hará ser usado. Mi hack actual es para extconf.rb
para copiar los archivos fuente independientes de Python en el mismo directorio que el módulo de extensión dependiente de Ruby.
¿Hay alguna manera más segura de hacer que el código esté disponible para ambos idiomas? ¿Debería simplemente duplicar el código independiente de Python en una Gema separada? ¿Debo liberar el código independiente como una lib independiente construida con autotools? ¿Hay una versión de mkmf
que pueda omitir el módulo no deseado?