MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
CMake - プリプロセッサのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
CMake - プリプロセッサ
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == プリプロセッサの定義 == 特定のビルドタイプに基づいて、プリプロセッサ定義を設定することがよくある。<br> <br> 例えば、デバッグビルドの場合にプリプロセッサマクロとして_DEBUGを定義する場合、<br> <code>target_compile_definitions</code>コマンドを使用して、その定義をデバッグビルドにのみ適用するように指定する。<br> <syntaxhighlight lang="cmake"> # デバッグビルドの場合にのみ_DEBUGを定義する target_compile_definitions(<プロジェクト名> PRIVATE $<$<CONFIG:Debug>:_DEBUG> ) </syntaxhighlight> <br> 上記の例では、$<CONFIG:Debug>ジェネレータ式を使用している。<br> これは、現在のビルドがデバッグビルド(Debug)である場合に_DEBUGマクロを定義するものである。<br> <br> <code>target_compile_definitions</code>の第2引数に<code>PRIVATE</code>キーワードを使用しているため、このプリプロセッサはこのターゲットにのみ適用されて、他のターゲットには影響を与えない。<br> <br> もし、ライブラリ等で他のターゲットにもこの定義を適用する場合は、<code>PUBLIC</code>または<code>INTERFACE</code>キーワードを使用する。<br> この機能を使用することにより、デバッグビルドとリリースビルドで異なるプリプロセッサマクロを簡単に管理できる。<br> * PUBLIC *: 定義がそのターゲット自身とそれをリンクするターゲットの両方に適用される。 * INTERFACE *: 定義がそのターゲットをリンクする他のターゲットにのみ適用される。 <br><br> == 使用例 == ==== バージョンによりプリプロセッサを定義する ==== バージョンが特定の値未満の場合に特定のプリプロセッサを定義する場合、<br> CMakeのバージョン比較機能と<code>target_compile_definitions</code>コマンドを組み合わせて使用する。<br> <br> # まず、プロジェクトのバージョンを定義する。 # 次に、条件分岐でバージョンを比較して、条件に合致する場合にのみプリプロセッサを定義する。 <syntaxhighlight lang="cmake"> project(MyProject VERSION 0.1.0) # ターゲットを定義 add_executable(MyProject main.cpp ) # バージョンを比較して、条件に合致する場合はプリプロセッサを定義 # 以下の例では、バージョンが0.1.0未満かどうかを確認して、合致している場合はMY_VERSION_BELOW_0_1_0プリプロセッサを定義 if(PROJECT_VERSION VERSION_LESS 0.1.0) target_compile_definitions(MyProject PRIVATE MY_VERSION_BELOW_0_1_0 ) endif() </syntaxhighlight> <br> 上記のようなプリプロセッサは、プリプロセッサディレクティブを使用して条件付きで特定のソースコードを含めたり除外する場合に使用できる。<br> 例えば、C++のソースコードにおいて、以下に示すように使用することができる。<br> <br> この方法により、異なるバージョンのプロジェクトに対して、条件付きでソースコードをコンパイルする複雑なロジックが実装できる。<br> <syntaxhighlight lang="c++"> #ifdef MY_VERSION_BELOW_0_1_0 // バージョンが0.1.0未満の場合にのみコンパイルされるコード #endif </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]]
CMake - プリプロセッサ
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse