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 でオプションの設定方法

Wednesday, January 29, 2014

バッチファイル 定型文 処理 メモ

1.ファイルの存在チェック
if not exist "..." (
    echo Error: ...
) else (
    rem ...
)

2.DIRの存在チェック
dir "%DIR%"
if not errorlevel 0 (
    echo Error: ...
) else (
    rem ...
)

3.ユーザ入力
rem...

4.AAAAAAAAAAAAA

Thursday, January 23, 2014

Ubuntu, Lubuntu 12.04 with VirtualBox

Proxy設定for apt-get:はapt.conf.dの中に設定ファイル(例えばここでは80proxy)を追加

% export http_proxy="http://x.x.x.x:8080"
% export ftp_proxy="..."
% export https_proxy="..."

% sudo vim /etc/apt/apt.conf.d/80proxy
Acqurire::http::proxy "http://x.x.x.x:8080";
Acqurire::https::proxy "http://x.x.x.x:8080";
Acqurire::ftp::proxy "http://x.x.x.x:8080";

これでProxyを通してupdateできる 上記はapt-get用のプロキシの設定で,システムのプロキシ設定は/etc/environmentファイルを編集して追加する.
/etc/environment

http_proxy=http:// myproxy.server.com:8080/ 
https_proxy=http:// myproxy.server.com:8080/
ftp_proxy=http:// myproxy.server.com:8080/
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

VirtualBoxのネットワーク設定
(http://nwing.knowd.co.jp/yamazaki/index.php?q=node/169) このページはとてもわかりやすい
VirtualBoxの3Dアクセラレーションを有効にする方法