クロスプラットフォーム CMake プロジェクトでコンパイラー フラグを設定する最新の方法
CMake ジェネレーターと式の使用
CMake は、最新かつ柔軟な方法でコンパイラ フラグを設定するためのメソッドをいくつか提供します。 1 つの方法は、次のような 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() を使用する
もう 1 つの方法は、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 プロジェクトをセットアップする場合は、これが良いプラクティスです。次のガイドラインに従ってください:
マルチターゲット ビルド
同じディレクトリ内で複数のターゲットをビルドするには、コンパイラと構成の組み合わせごとに個別のビルド構成を作成します。
次に、make ターゲットを使用して各構成をビルドできます。
以上がクロスプラットフォーム CMake プロジェクトでコンパイラ フラグを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。