いろんな環境でビルドできるようにするツール、"cmake" を使ってみる。
UNIXのMakefileやVisualStudioのプロジェクトファイルなどを
作成してくれるツールである。メタメイクともいえるかもしれない。
LinuxとWindowsの両方でのビルドやVisualStudioの色々なバージョンに
同時に対応するなどを行いたいときに便利だろう。
ここではWindows環境であると想定して説明する。
まずはここからダウンロード。
http://www.cmake.org/
cygwinを使うならパッケージに含まれているので
そちらからダウンロードする。
ベースになるディレクトリをbasedirとする。
ここに test.cpp を作成する。内容は、
#include <iostream>とする。同じディレクトリに CMakeLists.txt を作成する。
int main(int argc, char *argv[])
{
std::cout << "test" << std::endl;
return 0;
}
ファイル名はこれでなければならない。内容は、
cmake_minimum_required (VERSION 2.6)
project (Test)
add_executable(Test test.cpp)
とする。1行目はなくてもよい。
2行目はプロジェクト名に Test という名前を指定してる。
Test というプロジェクトに test.cpp というファイルを
追加するのが3行目である。
これで最小限の準備が完了した。
これらをビルドするために、Visual Studio 2010 を使うとする。
ディレクトリ basedir/vc10 を作成し、
そこにカレントディレクトリを移す。
その後、cmakeでプロジェクトファイルを生成する。
> cd vc10
> cmake -G "Visual Studio 10" ..
version 2.8.1の場合、次のファイルがカレントディレクトリに
生成される。
> dir
CMakeFiles (ディレクトリ)
ALL_BUILD.vcxproj
ALL_BUILD.vcxproj.filters
CMakeCache.txt
cmake_install.cmake
Test.sln
Test.vcproj
Test.vcproj.filters
ZERO_CHECK.vcxproj
ZERO_CHECK.vcxproj.filters
CMakeFilesの下にも多くのファイルが生成される。
Test.sln を VS2010で開いて、ビルドする。
ビルドターゲットはデフォルトで次の4つが作成される。
Debug
MinSizeRel
Release
RelWithDebInfo
ターゲットをDebugにして ALL_BUILD プロジェクトをビルドすると、
Debug/Test.exe
が生成される。これを実行すると、
test
が表示される。
同様にVisual Studio 2008用のプロジェクトファイルも簡単に
作成できる。さっきと同じようにvc9ディレクトリを作成して、
cmakeを実行する。なお、cmake実行前にVS2010は終了しておく。
> cd ..
> mkdir vc9
> cd vc9
> cmake -G "Visual Studio 9 2008" ..
VS2008で同じようにTest.slnを開いてビルドして実行すると、
> Debug\Test.exe
test
となる。
今回はここまで。