在跨平台CMake 項目中設置編譯器標誌的現代方法
使用CMake 生成器和表達式
CMake 提供了多種以現代且靈活的方式設定編譯器標誌的方法。一種方法是使用CMake 產生器和表達式,例如:
<code class="cmake">string( APPEND _opts "$<IF:$<CXX_COMPILER_ID:MSVC>," "/W4;$<$<CONFIG:RELEASE>:/O2>," "-Wall;-Wextra;-Werror;" "$<$<CONFIG:RELEASE>:-O3>" "$<$<CXX_COMPILER_ID:Clang>:-stdlib=libc++>" ">" ) add_compile_options("${_opts}")</code>
使用add_compile_options()
另一種方法是使用add_compile_options() 指令,該命令允許您以更具可讀性和一致性的方式添加編譯器標誌:
<code class="cmake">if(MSVC) add_compile_options("/W4" "$<$<CONFIG:RELEASE>:/O2>") else() add_compile_options("-Wall" "-Wextra" "-Werror" "$<$<CONFIG:RELEASE>:-O3>") if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_compile_options("-stdlib=libc++") else() # nothing special for gcc at the moment endif() endif()</code>
最佳實踐
設定跨平台CMake 專案時,這是很好的實踐遵循以下準則:
多目標建置
要在同一目錄中建立多個目標,請為每個編譯器和組態組合建立單獨的建置配置,例如:
以上是如何在跨平台 CMake 專案中設定編譯器標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!