2017-12-27 17 views
0

私はプロジェクトをCMakeに移植しており、ヘッダ検索パスの設定方法(以前はコンパイラフラグで設定されている、例えば-I "../../Source")の検索に苦労しています。CMakeとヘッダーの検索パス

私は現在持っている:

target_include_directories (jni-bridge PRIVATE 
    "../../Analysis" 
    "../../Source" 
) 

しかし、これは動作しません。どのようにパスを設定する必要がありますか、どのような場所に相対的ですか?

+0

検索パスにこれらのディレクトリをCMakeLists.txtの上位レベルに追加しないのはなぜですか?これらが現在のCMakeプロジェクトに含まれていない場合は、プロジェクトを移植可能にするために、これらのディレクトリにCMake変数を追加する方がよいでしょう。 –

答えて

0

内部的には、CMakeは絶対パスをインクルードディレクトリとして使用します。相対パスがtarget_include_directoriesで使用されている場合は、現在のソースディレクトリ${CMAKE_CURRENT_SOURCE_DIR})に関連して解釈されます。 発電機がが使用されていない表現とき


上記の事実です。

ジェネレータの式$<INSTALL_INTERFACE:..>は、インストール接頭辞に関連して解釈される相対パスを使用する(強くお勧めします)。

ジェネレータの式$<BUILD_INTERFACE:...>は、絶対パスを使用する必要があります。