「CMake - インクルード」の版間の差分

ナビゲーションに移動 検索に移動
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">

案内メニュー