cmake呼叫shell的筆記

2021-08-31 06:59:15 字數 558 閱讀 8401

想用cmake呼叫shell引入一些環境變數,或者編譯鏈。

查到了幾種方法:

但是無論如何,都在child process裡面執行shell,no intermediate shell is used,沒辦法放棄了。

除非把所有shell用cmake寫一遍,但是一旦shell更新,cmake也要更新,這就是給自己找麻煩了。

解決辦法是外部留乙個build.sh 在裡面選平台也好,加選項也好,再用這個shell指令碼呼叫cmake。

當然,python和bat也ok。

***************==更新**********====

還有種苟且的方法,使用file命令讀編譯鏈的文字。

file(strings env.sh my_env_file)

然後用正規表示式手轉一遍

if( $env matches 」啥啥「 )

set( 整一下 )

endif()

還有環境變數

set( cmake_cxx_flags $env cache string "" force )

其他參考:

CMake呼叫shell腳步

最近使用cmake編譯專案,其中需要使用第三方庫,但是每次在不同電腦上編譯時需要手動編譯第三方庫十分麻煩,因此,我寫了乙個shell腳步來編譯第三方庫,同時希望在cmake編譯時自動呼叫這個腳步編譯第三方庫。有了思路,就需要看cmake如何呼叫shell命令了。cmake可以通過execute pr...

CMAKE的學習筆記 初始CMAKE

cmake是乙個很強大的編譯工具 最近在看brpc,發現其中的編譯部分都是cmake來完成的,在囫圇吞棗編譯出第乙個demo後,我覺得自己該學習一下cmake了。1 及其簡單的例子 任何東西都是從hello world開始的,cmake也不例外,這裡就是乙個非常簡單的cmake 請注意,檔名必須是c...

CMake如何執行shell命令

我在cmake編譯後想執行一些特定的shell命令 執行 lcov收集 覆蓋報告等 我又不想寫到xx.sh的shell指令碼中,如何直接通過cmake執行shell命令呢?在網上翻江倒海了一下,找到了乙個老外寫的cmake指令碼,參考他,自己寫了下,終於實現了我的目標,主要是用add custom ...