[ C++ ] 빌드 도구 CMake 라이브러리 생성 및 활용 참조
mkdir -p /app/study/cpp/ch10
cd /app/study/cpp/ch10
cp -r /app/study/cpp/ch5 /app/study/cpp/ch10/MathAdder
cat <<'EOF' > /app/study/cpp/ch10/CMakeLists.txt
# 타 환경에서 빌드할 수 있는 최소 버전 명을 기입
cmake_minimum_required(VERSION 3.13.4)
project(testOption)
option(USE_ADDER "A simple library for adding 2 floats." ON)
if(USE_ADDER)
add_subdirectory(MathAdder)
list(APPEND EXTRA_LIB_DIRS "MathAdder")
list(APPEND EXTRA_INCLUDES_DIRS "MathAdder")
list(APPEND EXTRA_LINKS mathadder)
endif()
configure_file(Config.h.in ${CMAKE_CURRENT_BINARY_DIR}/Config.h)
add_executable(${PROJECT_NAME} main.cpp)
# 프로젝트가 사용하는 헤더파일 경로 설정
target_include_directories(${PROJECT_NAME} PRIVATE ${EXTRA_INCLUDES_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
# 프로젝트가 라이브러리를 링크할 때 사용하는 경로 설정
target_link_directories(${PROJECT_NAME} PRIVATE ${EXTRA_LIB_DIRS})
target_link_libraries(${PROJECT_NAME} PRIVATE ${EXTRA_LINKS})
EOF
cat <<'EOF' > /app/study/cpp/ch10/Config.h.in
#cmakedefine USE_ADDER
#ifdef USE_ADDER
#include <adder.h>
#endif
EOF
cat <<'EOF' > /app/study/cpp/ch10/main.cpp
#include <iostream>
#include <Config.h>
int main()
{
#ifdef USE_ADDER
std::cout << "Using Library : " << "2 + 3 = " << mathadder::add(2, 3) << '\n';
#else
std::cout << "Not Using Library : " << "2 + 3 = " << 2 + 3 << '\n';
#endif
return EXIT_SUCCESS;
}
EOF
mkdir -p /app/study/cpp/ch10/build
cmake -DUSE_ADDER=OFF -S /app/study/cpp/ch10 -B /app/study/cpp/ch10/build
make -C /app/study/cpp/ch10/build
# 라이브러리 미사용 확인
/app/study/cpp/ch10/build/testOption
cmake -DUSE_ADDER=ON -S /app/study/cpp/ch10 -B /app/study/cpp/ch10/build
make -C /app/study/cpp/ch10/build
# 라이브러리 사용 확인
/app/study/cpp/ch10/build/testOption
'Programming Languages > C++' 카테고리의 다른 글
[ C++ ] 빌드 도구 CMake 소스 버전 관리 (0) | 2024.10.24 |
---|---|
[ C++ ] 오픈소스 GLFS 라이브러리 사용 (0) | 2024.10.22 |
[ C++ ] 빌드 도구 CMake 모듈식 빌드 구조 생성 (0) | 2024.10.22 |
[ C++ ] 빌드 도구 CMake 라이브러리 생성 및 활용 (0) | 2024.10.18 |
[ C++ ] 빌드 도구 CMake 기본 사용법 (0) | 2024.10.18 |