CMake手冊詳解 (九)

2021-07-26 05:05:34 字數 2651 閱讀 6699

cmd#17: else 開始乙個if語句塊的else部分。

else(expression)
參見if命令。

cmd#18: elseif 開始if 塊的 elseif 部分。

elseif(expression)

參見if命令。

cmd#19: enable_language 支援某種語言(cxx/c/fortran/等)

enable_language(languagename [optional] )
該命令開啟了cmake對引數中指定的語言的支援。這與project命令相同,但是不會建立任何project命令會產生的額外變數。可以選用的語言的型別有cxx,c,fortran等。如果指定了optional選項,用cmake__compiler_works變數來判斷該語言是否被成功支援。

cmd#20:enable_testing開啟當前及以下目錄中的測試功能。

enable_testing()

為當前及其下級目錄開啟測試功能。也可參見add_test命令。注意,ctest需要在構建跟目錄下找到乙個測試檔案。因此,這個命令應該在源檔案目錄的根目錄下。

cmd#21: endforeach結束foreach語句塊中的一系列命令。

endforeach(expression)
參見foreach命令。

cmd#22: endfunction結束乙個function語句塊中的一系列命令。

endfunction(expression)
參見function命令。

cmd#23: endif結束乙個if語句塊中的一系列命令。

endif(expression)
參見if命令。

cmd#24: endmacro結束乙個macro語句塊中的一系列命令。

endmacro(expression)
參見macro命令。

cmd#25: endwhile結束乙個while語句塊中的一系列命令。

endwhile(expression)
參見while命令。

cmd#26: execute_process執行乙個或更多個子程序。

execute_process(command [args1...]]

[command [args2...] [...]]

[working_directory ]

[timeout ]

[result_variable ]

[output_variable ]

[error_variable ]

[input_file ]

[output_file ]

[error_file ]

[output_quiet]

[error_quiet]

[output_strip_trailing_whitespace]

[error_strip_trailing_whitespace])

執行一條或多條命令,使得前一條命令的標準輸出以管道的方式成為下一條命令的標準輸入。所有程序公用乙個單獨的標準錯誤管道。如果指定了working_directory選項,後面的路徑選項將會設定為子程序的當前工作路徑。如果指定了timeout選項,如果子程序沒有在指定的秒數(允許分數)裡完成,子程序會自動終止。如果指定了result_variable選項,該變數將儲存為正在執行的程序的結果;它可以是最後乙個子程序的整數返回**,也可以是乙個描述錯誤狀態的字串。如果指定了output_variable或者error_variable,後面的變數將會被分別設定為標準輸出和標準錯誤管道的值。如果兩個管道都是用了相同的變數,它們的輸出將會按產生的順序被合併。如果指定了input_file,output_file 或 error_file選項,其後的檔案將會分別被附加到第乙個程序的標準輸入、最後乙個程序的標準輸出,或者所有程序的標準錯誤管道上。如果指定了output_quiet後者error_quiet選項,那麼標準輸出或標準錯誤的結果將會被靜靜的忽略掉。如果為同乙個管道指定了多於乙個的output_*或error_* 選項,優先順序是沒有指定的。如果沒有指定output_*或者error_*選項,輸出將會與cmake程序自身對應的管道共享。

execute_process命令是exec_program命令的乙個較新的功能更加強大的版本。但是為了相容性的原因,舊的exec_program命令還會繼續保留。

cmd#27:export從構建樹中匯出目標供外部使用。

export(targets [target1 [target2 [...]]] [namespace ]
由該命令建立的檔案是與指定的構建樹一致的,並且絕對不應該被安裝。要從乙個安裝樹上匯出目標,參見install(export)命令。

export(package )
在cmake的使用者包登錄檔中,為包(package)儲存當前的構建目錄。這將有助於依賴於它的工程從當前工程的構建樹中查詢並使用包而不需要使用者的介入。注意,該命令在包登錄檔中建立的條目,僅僅在與跟構建樹一起執行的包配置檔案(config.cmake)一起使用時才會起作用。

CMake 手冊詳解(五)

cmd 2 add custom target新增乙個目標,它沒有輸出 這樣它就總是會被構建。add custom target name all command1 args1.command command2 args2.depends depend depend depend working d...

CMake手冊詳解 (十二)

find library name1 path1 path2 這是該命令的簡寫版本,在大多數場合下都已經夠用了。它與命令find library name1 paths path1 path2 等價。find library name names name1 name2 hints path1 pa...

CMake 手冊詳解(二十)

cmd 51 list列表操作命令。使用length選項時,該命令會返回給定list的長度。使用get選項時,該命令返回list中所有被index索引的元素構成的list。使用find選項時,該命令將返回list中指定的元素的索引 若果未找到,返回 1。使用insert選項時,該命令將在list中指...