2013年5月14日火曜日

cmake で Debug オプションをつけてもフラグが変更しない問題の解決策


cmake では,

CMAKE_BUILD_TYPE = Debugとすると、
コンパイラオプション CMAKE_C_FLAGS_DEBUG にセットしたオプションを付加できる。

で、これでハマった。


トップレベルの CMakeLists.txt に

set(CMAKE_BUILD_TYPE Debug)

set(CMAKE_C_FLAGS_DEBUG "-g -Wall -fprofile-arcs -ftest-coverage -O0")
を書いてみても、コンパイルオプションが追加されなかった。


で、色々試行錯誤してと、下の階層の CMakeLists.txt に
set(CMAKE_C_FLAGS_DEBUG "-g -Wall -fprofile-arcs -ftest-coverage -O0")
を書く必要があることがわかった。

つまり、
project/
  - CMakeLists.txt (1)
  - src/
  -- CMakeLists.txt (2)
  -- program.cpp

みたいになっていたら、
(1) の方に、 CMAKE_C_FLAGS_DEBUG の値をセットしても (2) には反映されないので、
(2) の方にも set を書く必要がある。



2013年5月7日火曜日

while 無限ループのワンライナー



while true ; do ls ; sleep 1; done ;