12,964
回編集
42行目: | 42行目: | ||
== インクルードパスの指定 == | == インクルードパスの指定 == | ||
==== target_include_directoriesコマンド (推奨) ==== | |||
インクルードパスを指定する場合、<code>target_include_directories</code>コマンドを使用する。<br> | |||
<code>target_include_directories</code>コマンドを使用することにより、ターゲット単位でインクルードパスを適切に管理できる。<br> | |||
<br> | |||
* PUBLIC | |||
*: このターゲットを使用する他のターゲットからインクルードできるパス | |||
* PRIVATE | |||
*: このターゲット内部でのみ使用するインクルードパス | |||
* $<BUILD_INTERFACE:...> | |||
*: ビルド時のインクルードパス | |||
* $<INSTALL_INTERFACE:...> | |||
*: インストール後のインクルードパス | |||
<syntaxhighlight lang="cmake"> | |||
# ターゲットの定義 | |||
add_library(my_library | |||
source1.cpp | |||
source2.cpp | |||
) | |||
# ターゲットのインクルードディレクトリを指定 | |||
target_include_directories(my_library | |||
PUBLIC | |||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | |||
$<INSTALL_INTERFACE:include> | |||
PRIVATE | |||
${PROJECT_SOURCE_DIR}/external/lib1/include | |||
${PROJECT_SOURCE_DIR}/external/lib2/include | |||
) | |||
</syntaxhighlight> | |||
<br> | |||
==== include_directoriesコマンド (非推奨) ==== | |||
<u><code>include_directories</code>コマンドの使用は避けるべきである。</u><br> | |||
<u>これは、プロジェクト全体で共通のインクルードパスを設定するため、意図しないインクルードが発生する可能性があるからである。</u><br> | |||
<br> | |||
インクルードパスを指定する場合、<code>include_directories</code>コマンドを使用する。<br> | インクルードパスを指定する場合、<code>include_directories</code>コマンドを使用する。<br> | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> |