「CMake - インクルード」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == <br><br> == 非ターゲットのインクルード (target_include_directoriesコマンド) == <code>find_package</code>コマンドは、<code>include</code>コマンドで手動で行う設定を、<code>REQUIRED</code>オプション等を使用して自動で行うことができる。<br> <syntaxhighlight lang="cmake"> find_package(PkgConfig) </syntaxhighlight> <br> <code>find_package</code>コマンドは、<code>pkg_search_module</code>コ…」) |
|||
15行目: | 15行目: | ||
<ターゲット名>を使用する全てのターゲットにおいて、自動的にインクルードディレクトリが使用されるようになる。<br> | <ターゲット名>を使用する全てのターゲットにおいて、自動的にインクルードディレクトリが使用されるようになる。<br> | ||
<br> | <br> | ||
ただし、CMakeLists. | ただし、CMakeLists.txtファイル内のターゲットにのみ有効であり、<code>pkg_search_module</code>コマンドで取得したライブラリに対しては機能しない。<br> | ||
<syntaxhighlight lang="cmake"> | |||
# pkg-configコマンドの使用 | # pkg-configコマンドの使用 | ||
find_package(PkgConfig REQUIRED) | find_package(PkgConfig REQUIRED) |
2024年3月22日 (金) 19:41時点における版
概要
非ターゲットのインクルード (target_include_directoriesコマンド)
find_package
コマンドは、include
コマンドで手動で行う設定を、REQUIRED
オプション等を使用して自動で行うことができる。
find_package(PkgConfig)
find_package
コマンドは、pkg_search_module
コマンドよりも柔軟でより多くのオプションが存在する。
また、CMakeには豊富なパッケージ定義が付属しており、パッケージ管理システムからインストールしたソフトウェアは/usr/share/cmake/Modules/Find*.cmakeファイルにある。
target_include_directories(<ターゲット名> PUBLIC ...)
コマンドは、
<ターゲット名>を使用する全てのターゲットにおいて、自動的にインクルードディレクトリが使用されるようになる。
ただし、CMakeLists.txtファイル内のターゲットにのみ有効であり、pkg_search_module
コマンドで取得したライブラリに対しては機能しない。
# pkg-configコマンドの使用
find_package(PkgConfig REQUIRED)
# pkg-configコマンドを使用してライブラリとヘッダファイルを自動的に設定
pkg_check_modules(<任意の変数名> <.pcファイル内の[Name]セクション名 例. sdl2> REQUIRED IMPORTED_TARGET)
# ...略
target_link_libraries(<ターゲット名>
${<任意の変数名>_LIBRARIES}
)
target_include_directories(<ターゲット名> PUBLIC
${<任意の変数名>_INCLUDE_DIRS}
)
target_compile_options(<ターゲット名> PUBLIC
${<任意の変数名>_CFLAGS}
# または
${<任意の変数名>_CFLAGS_OTHER}
)