CMakeのビルド構成の設定

Makefileを書くのが面倒になったので、CMakeを使ってみた。
デバッグモードやリリースモードのようなコンパイルのモードを指定できないか調べたところ、CMakeLists.txtに

set(CMAKE_CXX_FLAGS "")
set(CMAKE_CXX_FLAGS_DEBUG "-g -pg")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -pg -O3")
set(CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG -O3")
set(CMAKE_CXX_FLAGS_MINSIZEREL "")

のように設定すると良いみたい。
使うときは

cmake -D CMAKE_BUILD_TYPE=Debug .

みたいにするとモードの指定を記憶してくれる。この場合、フラグはCMAKE_CXX_FLAGSにCMAKE_CXX_FLAGS_DEBUGが連結されたものになる。あと、指定を記憶するので次にcmake .としても無指定にはならずにDebugが使われる。なので、無指定にしたい場合は

cmake -D CMAKE_BUILD_TYPE= .

のようにして記憶をクリアする必要がある。