2017-10-17 16 views
0

特定のコンパイルフラグをオンにするために、ジェクタル式 の中にcmakeオプションを使用したいと思います。 documentationから、これを達成する方法は私には分かりません。ジェネレータ式でcmakeオプションを使用する

私は動作しません

option(MYOPTION " ... " OFF) 
... 
add_compile_options($<$<MYOPTION>:-lblas>) 

のようなものを書きたいと思います。

これを達成する方法はありますか?

答えて

1

あなたの例では実際にこれのユースケースを指定していませんが、私はそれについて別の方法があると思います(コンパイルオプションではなく、-lblasもリンカフラグです)。 。何をしたいかもしれないことであるように、それはなります。

option(MYOPTION "My Option" OFF) 
... 
add_compile_options($<BOOL:${MYOPTION}>:-lblas>) 
#(or maybe you want?) 
target_compile_definitions(YOUR_TARGET PRIVATE $<BOOL:${MYOPTION}>:-lblas>) 

$<BOOL:...>はあなたが使用することができますマニュアルに記載されている他の論理式があり、どのMYOPTION満たし(評価を支援するための変数を必要とする

+2

CMakeのドキュメントのために[add_compiler_options](https://cmake.org/cmake/help/v3.9/command/add_compile_options) .html)コマンドは、ジェネレータ式を使用できることを明確に示しています。一般に、ジェネレータ表現は、CMakeのドキュメントがそうだと言えばいつでも許されます。 – Tsyvarev

+0

それを指摘してくれてありがとう、@ Tsyvarev。私は私の答えを訂正します。 –

+1

@Cinderビスケットあなたの答えをありがとう。実際、-lblasの例はひどく厳しいものでした。私の使用目的は、最後にオプション固有の定義を作成することです。 $ :... ...>は完全に機能します! – Wentzell

関連する問題