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

ナビゲーションに移動 検索に移動
243行目: 243行目:
<br><br>
<br><br>


== 非ターゲットをリンクする (target_link_librariesコマンド) ==
== 非ターゲットのリンク (target_link_librariesコマンド) ==
<code>target_link_libraries</code>コマンドを呼び出す時は、常に、<code>PRIVATE</code>、<code>PUBLIC</code>、<code>INTERFACE</code>オプションを指定する。<br>
<code>target_link_libraries</code>コマンドを呼び出す時は、常に、<code>PRIVATE</code>、<code>PUBLIC</code>、<code>INTERFACE</code>オプションを指定する。<br>
<br>
<br>
271行目: 271行目:
* generalオプション
* generalオプション
*: 項目の前にgeneralオプションを付加する場合、全てのビルド構成に対して項目を追加するように指定する。
*: 項目の前にgeneralオプションを付加する場合、全てのビルド構成に対して項目を追加するように指定する。
<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>


案内メニュー