cmake 使ってみた
しばらくおいたままになっていたけど、 cmake を使ってみました。
とりあえず、プロジェクト構成は以下のようにしました。
cmake_sample/ + product/ | + main.c | + CMakeLists.txt + test/ | + main1_test.cpp | + main2_test.cpp | + CMakeLists.txt + CMakeLists.txt
実行モジュールのコードは product/
ディレクトリに配置し、テストコードを test/
に配置しました。
- cmake_sample/CMakeLists.txt
# 使用する cmake のバージョン. cmake_minimum_required(VERSION 3.1) # プロジェクト名. project(embryoshell) # バージョン番号. set(MAJOR_VERSION "0") set(MINOR_VERSION "0") set(BUILD_VERSION "0") set(SERIAL "${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_VERSION}") # テストを有効にする. enable_testing() # プロダクトコードディレクトリ. add_subdirectory(product) # テストコードディレクトリ. add_subdirectory(test) add_test(test01 test/test01_test) add_test(test02 test/test02_test)
- cmake_sample/product/CMakeLists.txt
# 使用する cmake のバージョン. cmake_minimum_required(VERSION 3.1) # プロジェクト名. project(cmake sample) # ソースファイル. file(GLOB SOURCES *.c) # リリースビルドでのコンパイルオプション. set(CMAKE_C_FLAGS_RELEASE "-Wall -Werror -Wextra -O2") # デバッグビルドでのコンパイルオプション. set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -Wextra -g -pg -O0") # 実行モジュールの作成を指示. add_executable(sample ${SOURCES}) # リンクするライブラリを指定する. target_link_libraries(sample edit ncurses )
- cmake_sample/test/CMakeLists.txt
# 使用する cmake のバージョン. cmake_minimum_required(VERSION 3.1) # プロジェクト名. project(embryoshell) # リリースビルドでのコンパイルオプション. set(CMAKE_C_FLAGS_RELEASE "-Wall -Werror -Wextra -O2") # デバッグビルドでのコンパイルオプション. set(CMAKE_C_FLAGS_DEBUG "-Wall -Werror -Wextra -g -pg -O0") # 実行モジュールの作成を指示. add_executable(test01_test test01_test.cpp) add_executable(test02_test test02_test.cpp)
これで、テストを googletest や cpputest を使って実施できれば、モダンな環境に近づくかな?