Windows で glm の導入とビルド

概要

glm(OpenGL Mathematics)とは,OpenGL のシェーディング言語(GLSL)の仕様に準じた,ヘッダオンリーの C++ 数学ライブラリである(ソースコードをコンパイルせず,ヘッダファイルをインクルードするだけで使える)。行列・ベクトル演算などの機能を持ち,C++ プログラムに組み込んで使うのに便利である(ライセンス条項は各自で確認のこと。glm は Happy Bunny License(改変 MIT ライセンス)または MIT ライセンスのいずれかで配布されている)。

目次

前準備

次のソフトウェアをインストール済みであること。

vcpkg のインストール

コマンドプロンプトで次のコマンドを実行し,vcpkg を取得してブートストラップする。

cd \
git clone https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat

続けて,Visual Studio と連携させるため,次のコマンドを実行する。

vcpkg integrate install

vcpkg を用いた glm のインストール

cd \vcpkg
vcpkg install glm --triplet x64-windows

CMake プロジェクトから使う場合は,CMakeLists.txt に次のように記述する。

find_package(glm CONFIG REQUIRED)
target_link_libraries(main PRIVATE glm::glm)

CMake の実行時には,ツールチェインファイルを指定する。

cmake -B build -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build

(オプション)simage のインストール

simage とは,各種の画像ファイル形式を統一的に扱うためのライブラリである。

cd \vcpkg
vcpkg install simage --triplet x64-windows

なお,simage は必須ではない。

(オプション)DevIL のインストール

DevIL とは,各種の画像を読み込み,保存,変換,操作,フィルタ,表示できるライブラリである。

cd \vcpkg
vcpkg install devil --triplet x64-windows

サンプルプログラムのビルドと実行

glm はヘッダオンリーライブラリであるため,OBJ 形式ファイルを読み込んで表示する独自のビューワープログラムを作成し,ビルドする例を示す。ビューワーの実装には,OpenGL の初期化とウィンドウ生成に GLFW を,OBJ ファイルの読み込みには任意の OBJ ローダーを組み合わせる。

  1. 依存ライブラリのインストール
    cd \vcpkg
    vcpkg install glm glfw3 --triplet x64-windows
    
  2. CMakeLists.txt の作成

    作業用ディレクトリ(このページでは C:\work\glmviewer とする)に,次の内容の CMakeLists.txt を作成する。

    cmake_minimum_required(VERSION 3.11)
    project(glmviewer)
    
    find_package(glm CONFIG REQUIRED)
    find_package(glfw3 CONFIG REQUIRED)
    
    add_executable(glmviewer main.cpp)
    target_link_libraries(glmviewer PRIVATE glm::glm glfw3::glfw3)
    
  3. ビルド
    cd \work\glmviewer
    cmake -B build -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake
    cmake --build build --config Release
    
  4. 実行

    ビルドが終わると,build\Release フォルダに glmviewer.exe が生成される。コマンドプロンプトで次のように実行し,OBJ ファイルを指定する。

    cd build\Release
    glmviewer.exe model.obj