MinGW+CMakeでの開発のために


Linux, OSX, WindowsをターゲットにしたC++のクロス開発をしようと思ったら,CMakeを使うのかなと思います.Windowsでは,MinGW + CMake という組み合わせになるかと思います.

異なる環境間でのソースコードの共有はちょっと手を抜いてDropboxを使っています.ソースコードはDropboxに載っていても,ビルドの中間生成物や環境に固有な実行可能形式でDropboxが汚れるのを嫌って,ビルドディレクトリはDropboxの外側でやっています.

すると,素朴な環境だと,ソースコードのディレクトリでcmakeを実行し,ビルドディレクトリでmakeを実行しと煩わしいことになります.そこで,すべての作業をソースディレクトリでやるための汎用的な方法はないものかと思い,基本的な環境設定をするためのラッパー群を作ってみました.


"c:\Program Files (x86)\CMake\bin\cmake.exe" -G"MinGW Makefiles" -H. -B%builddir%

view raw

cmake.bat

hosted with ❤ by GitHub


set MINGW=c:\mingw\mingw64\bin
set CC=%MINGW%\gcc
set CXX=%MINGW%\g++
:: set CMAKE_CXX_COMPILER=%CXX%
set srcdir=%CD%
set builddir=%HOME%\build\%srcdir:*Dropbox (smartnova)\=%
PATH %builddir%;%PATH%

view raw

confdir.bat

hosted with ❤ by GitHub


mingw32-make -C %builddir%

view raw

make.bat

hosted with ❤ by GitHub

ソースディレクトリでcmake, makeを叩くだけでビルド作業ができるようになりました.今まで,うじゃうじゃして嫌だったのがこれで解消されます.

  1. 開発用のソースのディレクトリに移動して,まずは confdir コマンドを実行.これでさまざまな環境変数が設定されます.
  2. CMake の設定ができたら,cmake コマンドを実行.%HOME%\build 以下に適宜,ビルド用のディレクトリを作成します.
  3. make コマンドを実行してビルド.
  4. ビルドに成功したら,生成した実行ファイル名で実行できます.ビルドディレクトリを PATH に通してありますので.