CMake Git 서브모듈 사용
…
- git submodule 추가
1
git submodule add https://github.com/nlohmann/json external/json
- 최상위 CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cmake_minimum_required(VERSION 3.22)
project(CppProjectTemplate VERSION 1.0.0 LANGUAGES C CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(LIBRARY_NAME Library)
set(EXECUTABLE_NAME Executable)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/")
include(AddGitSubmodule)
add_git_submodule(external/json)
add_subdirectory(configured)
add_subdirectory(external)
add_subdirectory(src)
add_subdirectory(app)
- cmake/AddGitSubmodule.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function(add_git_submodule relative_dir)
find_package(Git REQUIRED)
set(FULL_DIR ${CMAKE_SOURCE_DIR}/${relative_dir})
if (NOT EXISTS ${FULL_DIR}/CMakeLists.txt)
execute_process(COMMAND ${GIT_EXECUTABLE}
submodule update --init --recursive -- ${relative_dir}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
endif()
if (EXISTS ${FULL_DIR}/CMakeLists.txt)
message("Submodule is CMake Project: ${FULL_DIR}/CMakeLists.txt")
add_subdirectory(${FULL_DIR})
else()
message("Submodule is NO CMake Project: ${FULL_DIR}")
endif()
endfunction(add_git_submodule)
- 이후 cmake .. & cmake –build .
This post is licensed under CC BY 4.0 by the author.