2017-06-30 1 views
0

私は3つのサブプロジェクトを持つcmakeプロジェクトを持っています。cmake - ターゲットライブラリのシンボルを定義する方法

A、B、Cとしましょう。

A - サブプロジェクトBとCの共通ライブラリ(静的) BとC - スタンドアロンの実行可能ファイル。

私は何とか "B"内で特定の宣言された定義(-DUSED_WITHIN_B_MODULEのような)を使うために "A"ライブラリをコンパイルする必要があります。一方、「C」の実行可能で

は(-DUSED_WITHIN_C_MODULEのような)定義の別のセットを使用してコンパイル「A」

を使用する必要があり、それを実装する方法を私に勧めてください。 私はtarget_compile_definitionsのPUBLIC/PRIVATE/INTERFACE修飾子について知っていますが、依存関係ツリーに対して正しく使用する方法がわかりません。

ご協力いただきありがとうございます、ありがとうございます。

答えて

0

このような何か:

add_library(AforB a.cpp) 
set_target_properties(AforB PROPERTIES COMPILE_FLAGS -DUSED_WITHIN_B_MODULE) 
add_library(AforC a.cpp) 
set_target_properties(AforC PROPERTIES COMPILE_FLAGS -DUSED_WITHIN_C_MODULE) 
関連する問題