CMake ファイル (CMake 2.8.10.2) の C および C++ コンパイル行にさまざまなフラグを追加する必要があります。使用している人もいますadd_definitions
が、私が見る限り、これはプリプロセッサ フラグ ( -D
) を対象としています。プリプロセッサに渡したくないフラグがいくつかあります。
だから私は変更しようとしてきましCMAKE_C_FLAGS
たCMAKE_CXX_FLAGS
. 一部の人々が次のようなものを使用していたことがわかります。
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -new -flags -here")
しかし、これは効率が悪いことをcmakeのドキュメントで読みました。正しい方法はlist(APPEND ...)
、次のように を使用することです。
list(APPEND CMAKE_C_FLAGS -new -flags -here)
ただし、これを行うと、コンパイル行にセミコロンで区切られたフラグが含まれており、構文エラーになります。これは現在、リストが内部に保存されていることを読みましたが、変数を使用すると、これは cmake によって処理されると考えました。これはとても基本的なことのようです。私は何か間違ったことをしていますか?つまり、セミコロンで区切られた値のリストが必要でない限り (そして、Windows の %PATH% 設定などを推測する以外に、誰がそれを望んでいるか) 使用できない場合、これらのリストは一体何の役に立つのでしょうか? ドキュメントでは効率が悪い/適切ではないことが示唆されていますが、引用されたバージョンを使用する必要がありますか?