Friday, January 31, 2014

CMake 関連メモ

CMakeはなかなか気に入っています.しかし,説明資料などが少ない.忘れないためにここにメモを残すことにする

cmake-guiを使わずにコマンドライン,バッチorシェルから操作する.まず明確にする必要があるのは
  1. Source directory
  2. Build directory
  3. Generate project type:
    これはcmakeコマンドをタイプし生成できるプロジェクトタイプの一覧を確認する
  4. Tool chain
    ツールチェンの設定ファイルを使用する場合はそのパスを確認する
  5. CMake command line option
    cmake-guiで今まで手動で変更した設定をコマンドラインに落としておく必要がある.例:
    BUILD_OPTION_1 = ON
    BUILD_OPTION_2 = OFF ...
今までcmake-guiで操作したが,シェルスクリプトに置き換えてやりたい一例を下に示す

#!/bin/sh

SRC_DIR=...
BUILD_DIR=...
TOOL_CHAIN=...
GENERATOR_TYPE="Unix Makefiles"

cmake -D CMAKE_TOOL_CHAIN=$TOOL_CHAIN \
-G $GENERATOR_TYPE \
--build $BUILD_DIR \
-D BUILD_OPTION_1=ON \
-D BUILD_OPTION_2=OFF \
$SRC_DIR

ただし,上のコマンドをうまくいかないことがある(理由はまだ不明).スクリプトで -D オプションで定義したものがCMakeLists.txtファイル内で定義したものをオーバライドできない.

これを回避するために,自分専用日のPreloadのCmakefileを準備し,-C オプションでキャッシュの初期化を行ってからプロジェクトのCMakeListsを読みこませればよい.

Preloadスクリプトは通常のCMakeListsの書き方と全く同じ.ほとんどSET (FOO BAR ...)で書けばいい.


#!/bin/sh
cmake_minimum_required(VERSION 2.6)

set(MY_CMAKE_OPTION 1)
if(MY_CMAKE_OPTION EQUAL 1)
    set( OPT1  VALUE1  CACHE  BOOL "desc")
    set( OPT1  VALUE1  CACHE  BOOL "desc")  
else()
    ...
endif()


make VERBOSE=1 でmakeのコンパイル詳細Optionを表示

参考:
1. Cmake tutorial 1
2. Cmake tutorial 2
3. Cmake でオプションの設定方法

No comments: