본문 바로가기

Programming Languages/C++

[ C++ ] 빌드 도구 CMake 모듈식 빌드 구조 생성

[ C++ ] 빌드 도구 CMake 라이브러리 생성 활용 참조

mkdir -p /app/study/cpp/ch7

cd /app/study/cpp/ch7

cp -r /app/study/cpp/ch5 /app/study/cpp/ch7/MathAdder

rm -rf /app/study/cpp/ch7/MathAdder/build/*

cat <<'EOF' > /app/study/cpp/ch7/main.cpp
#include <adder.h>
#include <iostream>

int main()
{
	std::cout << "2 + 3 = " << mathadder::add(2, 3) << '\n';
	return EXIT_SUCCESS;
}
EOF

cat <<'EOF' > /app/study/cpp/ch7/CMakeLists.txt
# 타 환경에서 빌드할 수 있는 최소 버전 명을 기입
cmake_minimum_required(VERSION 3.13.4)

project(testModule)

add_executable(${PROJECT_NAME} main.cpp)

# MathAdder 하위 디렉토리 내에 있는 CMakeLists.txt 파일을 포함하여 상위 프로젝트를 포함
add_subdirectory(MathAdder)

# 프로젝트가 사용하는 헤더파일 경로 설정
target_include_directories(${PROJECT_NAME} 
    PUBLIC MathAdder 
)

# 프로젝트가 라이브러리를 링크할 때 사용하는 경로 설정
target_link_directories(${PROJECT_NAME} 
    PRIVATE MathAdder
)

target_link_libraries(${PROJECT_NAME} mathadder)
EOF

mkdir -p /app/study/cpp/ch7/build

cd /app/study/cpp/ch7/build; cmake -S ..

make

/app/study/cpp/ch7/build/testModule