CMake很棒,特別是有很多模塊(FindOOXX)。但是,當編寫一個FindXXX
模塊時,您的項目所依賴的庫XXX,對於非cmake專家來說並不容易。我有時會遇到一個沒有CMake支持的圖書館,我喜歡爲它做一個。我想知道在編寫/測試cmake模塊時是否有任何交互式shell?cmake中是否有任何用於模塊開發的交互式shell?
3
A
回答
1
您是否正在爲項目「XXX」寫入FindXXX
,或者您正在嘗試查找項目的依賴項是否爲「XXX」?如果是前者,則應該編寫一個名爲XXX-config.cmake
(或XXXConfig.cmake
)的文件,並將其安裝到find_package
文檔中提及的其中一個目錄中。一般而言,XXX-config.cmake
文件適用於CMake可以找到的項目(由項目本身安裝),FindXXX.cmake
文件適用於不支持CMake的項目(通常必須支持查找任何版本的XXX)。
這就是說,對於FindXXX.cmake
,通常你只需要幾個find_file
(例如,對於頭)一些find_library
,電話,甚至只是從FindPkgConfig.cmake
一個pkg_check_module
後跟一個find_package_handle_standard_args
電話(使用include(FindPackageHandleStandardArgs)
得到它)。 FPHSA使編寫適當的查找模塊變得輕而易舉。
對於XXX-config.cmake
文件,我通常使用configure_file
生成兩個版本:一個用於安裝(包括你的install(EXPORT)
文件),一個用於構建樹(由export()
調用生成)。使用這個,可以精確地設置其他有用的變量,比如「Boost使用的是哪個確切版本」或「Python是否支持編譯」,以便依賴項目可以更好地瞭解依賴關係的樣子。
我最近還發現,CMake附帶了CMakePackageConfigHelpers
模塊,它應該可以幫助製作這些文件。看起來有相當多的文件。
相關問題
- 1. 是否有任何特殊的交互式GUI開發工具
- 2. Perl是否有交互式shell?
- 3. 如何使用交互式Ruby shell中的模塊?
- 4. 用於擴展開發的智能感知JavaScript交互式shell?
- 5. 是否有任何與代碼交互的方式。交互式控制檯
- 6. 用於開發交互式CLI應用程序的Nodejs庫/模塊?
- 7. 是否有用於編程快速C#代碼片段的交互式shell?
- 8. 是否有任何模塊可以讀取shell腳本?
- 9. 基於Web的交互式shell?
- 10. 除非使用交互式shell,否則無法導入cx_Oracle模塊
- 11. 是否有任何交互式控制檯B-Tree實現?
- 12. 是否有任何解決方案在模擬器(Android)中運行Google Plus發佈(共享交互式發佈)
- 13. php交互式shell沒有任何輸出?
- 14. 開發交互式shell
- 15. 如何從shell腳本中判斷調用它的shell是否是交互式shell?
- 16. gnuplot:x11終端處於「交互模式」,同時從shell調用gnuplot
- 17. SQL模式設計模式是否有任何開源資源?
- 18. 如何判斷makefile是否從交互式shell運行?
- 19. 是否有任何Python模塊可用於[{},{} ...]比較?
- 20. 如何使用Python pexpect模塊自動化shell交互命令
- 21. 如何將python模塊加載到Komodo的全新交互式shell中?
- 22. 是否有任何關於Perl的統計模塊的評論?
- 23. 是否有任何設計模式對遊戲開發特別有用?
- 24. 是否有可能在Node.js中進入交互模式?
- 25. Angular-ui:是否打開任何模式?
- 26. 是否有任何Perl模塊可用於將消息發送到Office Communicator?
- 27. 是否有相當於Windows Shell的Ruby Shellwords模塊?
- 28. 是否有任何eclipse插件用於開發網頁
- 29. 是否有任何API在Twitter Bootstrap用於開發條形圖
- 30. 是否有關於drupal 7部署模塊的任何文檔?
感謝您的全面迴應。我正在爲一個不支持CMake的項目尋找一個'FindXXX'。我應該讓我的問題更清楚。 – Drake