我有一個Python的C擴展模塊,我想讓它可用於Rubyists。組合Python和Ruby擴展模塊
這個源代碼有很多C模塊,只有一個是Python依賴的。其餘的只依賴彼此和標準庫。我可以用通常的方式用python setup.py build
來構建它。
我一直在嘗試使用newgem
添加Ruby支持,我可以用rake gem
構建擴展版本。然而,合併後的源代碼有一個醜陋的目錄佈局(混合Gem風格和Setuptools風格的結構),構建過程是一個混亂。
我不能只保留在同一目錄中的所有來源,因爲mkmf
會自動選取Python依賴模塊並嘗試構建它,並且用戶不應該必須安裝Python來編譯不會使用。我目前的做法是爲extconf.rb
將獨立於Python的源文件複製到與Ruby相關的擴展模塊所在的目錄中。
有沒有更好的方法讓代碼對兩種語言都可用?我應該在獨立的Gem中複製獨立於Python的代碼嗎?我應該將獨立代碼作爲獨立的自由工具構建嗎?是否有可以跳過不需要的模塊的mkmf
版本?