|
|
| 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> |
|
| |
|