我打算使用CMake來構建跨平臺/交叉編譯器解決方案。試想一下,樹是這樣的:cmake:自動生成構建目錄
project |__include |__src |__buildrules
目錄buildrules將包含我的CMake的擴展和公共子項目選項加上一些腳本來啓動不同的平臺上構建(.SH .bat文件)。我打算使用相同的源樹來構建使用不同的編譯器/配置。所以在NT上我需要能夠生成用於開發的VS項目文件和用於命令行批生成的NMake makefile。在linux上,可以使用相同的樹來構建32/64變體中的不同編譯器(gcc,clang,icc)。所以buildrules不是CMake緩存的目錄。我需要爲每個不同名稱的配置/生成器(配置/生成器專用的名稱)使用不同的生成目錄。
現在幾乎每個CMake教程都以「創建構建子目錄,運行cmake,運行make」等內容開始。這對我來說似乎相當不受歡迎。我需要完全自動化的構建系統,因此可以通過「單擊」來運行。我希望能夠從buildrules(例如我的一個快捷方式批處理文件)運行一些命令,並且它應該在項目根目錄下創建正確的名稱構建目錄(如果它尚未存在),請在該目錄中運行cmake以生成緩存(如果以前沒有完成),並通過調用正確的工具開始構建:在Unix調用make,在Windows命令行調用nmake,VC解決方案啓動一個或調用批量生成等。
最重要的是我想要所有由cmake自己完成 - 我不想使用不同的平臺特定工具在其上編寫另一個可移植性級別。我可以忍受的唯一平臺特定的事情是cmake cmake.exe之間的差異。
那麼,你認爲這可以做到嗎?
我真的很感激,如果有人能幫助我這個設置。
謝謝。