「Qtの設定 - CMake」の版間の差分

ナビゲーションに移動 検索に移動
226行目: 226行目:
変数<code>BUILD_SHARED_LIBS</code>を設定する方法として、<code>cmake</code>コマンドに<code>-DBUILD_SHARED_LIBS</code>オプションを付加する方法がある。<br>
変数<code>BUILD_SHARED_LIBS</code>を設定する方法として、<code>cmake</code>コマンドに<code>-DBUILD_SHARED_LIBS</code>オプションを付加する方法がある。<br>
  cmake -DBUILD_SHARED_LIBS=YES /path/to/source
  cmake -DBUILD_SHARED_LIBS=YES /path/to/source
<br><br>
== 非ターゲットのインクルード (target_include_directoriesコマンド) ==
<code>find_package</code>コマンドは、<code>include</code>コマンドで手動で行う設定を、<code>REQUIRED</code>オプション等を使用して自動で行うことができる。<br>
find_package(PkgConfig)
<br>
<code>find_package</code>コマンドは、<code>pkg_search_module</code>コマンドよりも柔軟でより多くのオプションが存在する。<br>
また、CMakeには豊富なパッケージ定義が付属しており、パッケージ管理システムからインストールしたソフトウェアは/usr/share/cmake/Modules/Find*.cmakeファイルにある。<br>
<br>
<code>target_include_directories(<ターゲット名> PUBLIC ...)</code>コマンドは、<br>
<ターゲット名>を使用する全てのターゲットにおいて、自動的にインクルードディレクトリが使用されるようになる。<br>
ただし、CMakeLists.txtファイル内にターゲットにのみ有効であり、<code>pkg_search_module</code>コマンドで取得したライブラリに対しては機能しない。<br>
<syntaxhighlight lang="cmake">
find_package(PkgConfig REQUIRED)
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}
)
</syntaxhighlight>
<br><br>
<br><br>


案内メニュー