vcpkgでDirectXTK,DirectXTex,DirectXMeshなどをインストールし,CMakeから利用した際のメモです.
CMakeとは
設定ファイル(CMakeLists.txt)から複数の環境向けにビルド用ファイルを生成してくれるツールです.
例えば,Windows向けにはVisual Studioのソリューションとプロジェクトを生成してくれて,Mac向けにはXcodeのプロジェクトを生成してくれます.
CMakeのインストール
CMakeの公式サイトからインストーラをダウンロードして,インストールします.
vcpkgとは
Microsoftが提供するC++のライブラリマネージャです.
vcpkgのインストール
手順が変わる可能性もあるので,基本的には公式リポジトリのインストール手順を見てインストールしてください.
なお,PS> はPowerShellで実行する,ということです.PS#>は管理者権限でPowerShellで実行する,ということです.
PS> git clone https://github.com/Microsoft/vcpkg
PS> cd vcpkg
PS> .\bootstrap-vcpkg.bat
PS#> .\vcpkg integrate install
環境変数の設定
vcpkgのフォルダへのパスを環境変数VCPKG_ROOTに設定しておきます.
vcpkgの基本操作
# ライブラリを探す
PS> .\vcpkg search directxtk
# ライブラリをインストールする (32bit版)
PS> .\vcpkg install directxtk:x86-windows
# ライブラリをインストールする (64bit版)
PS> .\vcpkg install directxtk:x64-windows
CMakeとvcpkgの連携
vcpkgはCMakeと連携できるようになっています.元々のライブラリがCMakeの利用を想定している場合,find_packageなども使えるのですが,DirectXTKなどはそうではないため,若干注意が必要です.
CMakeLists.txtに次のような内容を用意します.
# バージョンは適当に指定
cmake_minimum_required(VERSION 3.12.0)
# vcpkgを利用するようにする
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE $ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake CACHE STRING "")
endif()
project(...)
# インストールしたライブラリのヘッダファイルを探し,そのインクルードパスを追加する
find_path(WIC_TEXTURE_LOADER_INCLUDE_DIR DirectXTK/WICTextureLoader.h)
include_directories(${WIC_TEXTURE_LOADER_INCLUDE_DIR})
# find_libraryでインストールしたライブラリを見つけて,そのパスをターゲットにリンクする
find_library(DIRECTXTK_LIBRARY DirectXTK)
target_link_libraries(ターゲット名 ${DIRECTXTK_LIBRARY})
このように,DirectXTKなどは,find_pathやfind_libraryを利用してプロジェクトに組み込みます.