====== CMake ======
===== はじめに =====
CMakeは、Makefileなど自動的に作ってくれる仕組み。
Makefileと同様に依存関係をCMakeList.txtに記述する必要はあるが、より簡潔なルールになっている。
CMakeが作成したMakefileの構造は、特に理解しなくても問題ない。
以下に、論理テストのためのビルド環境を紹介する。
===== CMakeList.txtファイル =====
CMakeList.txt
cmake_minimum_required(VERSION 3.25)
project(SampleProject)
add_subdirectory(src)
add_subdirectory(unittest/src)
src/CMakeList.txt
cmake_minimum_required(VERSION 3.25)
add_library(moduleA OBJECT moduleA.c)
add_library(moduleB OBJECT moduleB.c)
unittest/src/CMakeList.txt
cmake_minimum_required(VERSION 3.25)
find_package(GTest REQUIRED)
include(GoogleTest)
add_executable(moduleATest moduleATest.cpp)
target_link_libraries(moduleATest GTest::GTest GTest::Main)
include_directories(${PROJECT_SOURCE_DIR}/src ${GTEST_INCLUDE_DIR})
==== ビルド方法 ====
ソースツリーとビルドツリーが同一でも良いが、通常はビルドツリーを別に用意する。
$ mkdir build
$ cd build
$ cmake ..
$ make