CMake を通じてプリプロセッサ変数を定義するにはどうすればよいですか?
同等のコードは次のようになります#define foo
。
ベストアンサー1
長い間、CMake にはadd_definitions
この目的のためのコマンドしかありませんでした。しかし、CMake バージョン 3.12 (2018 年 7 月リリース) 以降、このコマンドはよりきめ細かいアプローチ (コンパイル定義、インクルード ディレクトリ、コンパイラ オプション用の個別のコマンド) に置き換えられました。
新しいコンパイル定義の追加:
add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})
add_compile_definitions(WITH_OPENCV2)
または:
add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)
これの良いところは、CMake が のために用意した粗末なトリックを回避できることですadd_definitions
。CMake は非常に粗末なシステムですが、ようやく正気を取り戻しつつあります。
コンパイラ フラグに使用するコマンドの詳細については、以下を参照してください。詳しくは、こちらを参照してください。
同様に、Jim Hunziker の回答で説明されているように、ターゲットごとにこれを行うことができます。