Window上のMSYS2を用いたOpenGLの開発で,MacやLinuxとのクロス開発を目指すとき以下のツールがあるとよいようです.

MSYS2について

開発環境のほとんどはMSYS2とそのパッケージ管理システム(pacman)を用いてインストールできます.以下に主なシステムと利用目的を列挙します.

MSYS2
擬似的なUnix環境,及びコンパイラ基盤です. pkg-config
ソフトウェアAPIの利用方法を記述した標準的なデータベースです.これを利用することで,汎基盤開発がかなり楽になります. automake-wrappter
automake などを含む伝統的な開発環境設定ツールです.私は直接的には使っていませんが,ダウンロードしたソースコードをビルドするときに必要になることがしばしばあります. git
バージョン管理システム make
標準的ビルドツール cmake
汎基盤ビルドツール gcc
標準的Cコンパイラ.C++のコンパイラも含んでいます.MSYS2にはもっと現代的なclang/LLVMコンパイラ群も提供していて,本当はそちらを利用したかったのですが,clang++のC++11規格への対応が不十分そうだった(まじめに確認したわけではないけど)のでさっさと諦めました. glfw
OpenGLの文脈を生成するための小さなライブラリ glm
OpenGLを用いたグラフィックスに必要な数学ライブラリ.OpenGL Shading Language (GLSL) 標準に類似したAPIを提供しています. nodejs
JavaScriptエンジン.アプリケーションの環境設定やデータの入出力にJSON形式を採用したのですが,JSON形式のデータの生成に用います.

MSYS2のインストール

MSYS2のサイト からダウンロードできる.インストールはほぼそのまま.インストール先は c:\msys2 としました.

c:\msys2\mingw64_shell.batを起動するとMSYS2環境が起動します.まずはMSYS2の基盤ソフトウェアを更新します.

pacman --needed -Sy zsh pacman pacman-mirrors msys2-runtime

つぎに,MSYS2をいったん終了してから,MSYS2を再起動してから,必要なソフトウェアをインストールします.

chocolateyのインストール

chocolateyはWindows用のパッケージ管理システムです.3,000近くのソフトウェアが登録されており,MacのHomebrewやLinuxのapt/pacman/yumのようにコマンドを利用してソフトウェア管理ができるようになります.これで,あちこちの怪しげなサイトをうろついて,おっかなびっくりとソフトウェアをダウンロードする手間と不安から開放されます.Dropbox, Evernote, Google Chrome, Slack, SmartGit/Hg などもインストールできます.

インストール方法は,https://chocolatey.orgにしたがって下さい.cmd.exeを管理者権限で実行して,インストールコマンドを実行するだけです.cmd.exeを管理者権限で実行する方法は,Windows-X A です.

chocolatey を用いたソフトウェアのインストール

cmd.exeを管理者モードで起動(Windows-x a)して,以下を実行するだけ.


開発のためのWindowsの設定

Windowsがデフォルトで用意するホームディレクトリは,ExplorerやCmd.exeでアクセスするのに不便な場所にあるので,もっと便利な場所に作成してしまいましょう.

私はc:\wakitaというフォルダを使いそこをホームディレクトリとして用いています.

DropboxフォルダはデフォルトではWindowsのデフォルトのホームディレクトリに作成されてしまいます.これもc:\wakita直下に作成した方が便利でしょう.Dropboxをインストールし,smartnova のアカウントを追加するときに詳細なオプションで,c:\wakitaのような場所を指定するのが簡単です.デフォルトの場所に設定してしまった場合も,Dropboxの設定を開き,アカウント → smartnova → Dropboxの場所を指定することで設定を変更できます.

以下が私のディレクトリ構成です.

c:\wakita\.profile には以下のように記述します.

export DROPBOX="$HOME/Dropbox (smartnova)"
. "$DROPBOX/win/bin/profile"

環境変数の設定

Windows環境変数を設定するのはちょっと面倒な気がします.私が見つけたなかで一番簡単と思われる方法は以下です.(もっと効率的な方法があったら教えて!)Win+X P でコントロールパネルが開けます.ここでCtrl-F envで”env”について検索すると,「環境変数の編集」という項目が出てくるので,それをクリックします.

このウィンドウではユーザ環境設定とシステム環境設定を施すことができます.パソコンのユーザに固有の設定は前者に,後者はWindowsのシステム全体に関わる設定を施します.効果としてはどちらも同じなのですが,アプリケーションの設定はシステム環境設定に属し,自分の使い勝手を向上するためにはユーザ環境設定をすると思っていればいいでしょう.

以下のような設定をユーザ環境設定に追加して下さい.

ここまでの設定の確認


MSYS2環境の設定

すでに$DROPBOX/binを作成してあります.ここにいくつかのスクリプトを保存して下さい.リンク先には以下の三つのファイルが見つかります.これらすべてを$DROPBOX/binに保存して下さい.

Windowsキー+Xについて

Windowsキーを押しながらXを押すと,Windowsのさまざまな機能を簡単に呼び出すことができます.コマンドを起動したり,Explorerを表示したり,コントロールパネルを開いたり,管理者権限でコマンドを実行したりなど,一般のユーザはあまり使わないけれど,開発者にはニーズのある機能が簡単に利用できます.

Consolezの設定

Consolezを起動(W-x r console)し,メニューをEdit→Settings…と辿ると設定画面が出てきます.

SSHキーの生成とGitHubへの設定

GitHubにアカウントを持っているならば,SSHの公開鍵をGitHubに登録するとよいでしょう.


OpenGL関連のライブラリをインストール

ここまでの作業がうまくいっていれば以下の作業はスムーズにできるはずです.

pacman を用いた各種のソフトウェアのインストール

pkg-config, automake-wrapper, git, make, cmake, gcc, glfw, nodejs, jsoncpp についてはMSYS2のパッケージ管理システムを用いて以下のようにインストールできます.

glbindingのインストール

glbindingはまだpacmanに含まれていないので,ソースコードからビルドします.$DROPBOX/win/srcの下で作業するものと仮定します.

CMakeを実行するときに静的ライブラリを作成するためのオプションを与えます.

glbindingのサンプルのビルド

glbindingのビルドをしたのと同じディレクトリで以下の作業をします.

  1. cmake -DOPTION_BUILD_EXAMPLES=ON

  2. make

ビルドがうまくいったら,callbacks, cubescape コマンドを実行することができます.