LoginSignup
11
4

More than 5 years have passed since last update.

CMakeとvcpkgとDirectX関連ライブラリ

Posted at

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を利用してプロジェクトに組み込みます.

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4