====== 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