CMake의 기본 문법과 구성 요소
CMake의 기본 문법과 구성 요소
CMake는 크로스 플랫폼 빌드 시스템으로, 프로젝트를 빌드하고 테스트하는 데 사용되는 오픈 소스 도구입니다. CMake를 사용하면 여러 플랫폼과 컴파일러에서 코드를 빌드할 수 있으며, 프로젝트의 구성 방법을 자동으로 생성할 수 있습니다. 이번 포스트에서는 CMake의 기본 문법과 구성 요소에 대해 알아보겠습니다.
CMakeLists.txt 파일의 구조와 작성 방법 CMake 프로젝트는 CMakeLists.txt 파일에 프로젝트의 구성 정보를 기술합니다. 이 파일은 프로젝트 루트 디렉토리에 위치하며, 프로젝트의 소스 파일 및 빌드 설정을 정의합니다. 주요 구성 요소는 다음과 같습니다.
- cmake_minimum_required: CMake 최소 버전을 지정합니다.
- project: 프로젝트 이름 및 버전을 지정합니다.
- add_executable 또는 add_library: 실행 파일 또는 라이브러리를 추가합니다.
- target_link_libraries: 빌드 대상과 라이브러리를 링크합니다.
- include_directories: 헤더 파일 디렉토리를 지정합니다.
- add_subdirectory: 하위 디렉토리를 추가합니다.
간단한 예시를 통해 CMakeLists.txt 파일을 작성하는 방법을 살펴보겠습니다.
cmake_minimum_required(VERSION 3.10)
project(MyProject)
add_executable(myapp main.cpp)
이 예시에서는 CMake의 최소 버전을 3.10으로 지정하고, "MyProject"라는 이름의 프로젝트를 정의하며, main.cpp 파일을 가진 "myapp" 실행 파일을 추가하고 있습니다.
CMake의 주요 명령어와 변수 CMake는 다양한 명령어와 변수를 제공하여 프로젝트의 빌드 및 설정을 관리할 수 있습니다. 몇 가지 주요 명령어와 변수를 살펴보겠습니다.
- set: 변수를 설정합니다.
- if, else, endif: 조건부 빌드를 정의합니다.
- foreach: 반복 작업을 수행합니다.
- find_package: 외부 패키지를 찾습니다.
- add_definitions: 컴파일러에 정의를 추가합니다.
- CMAKE_SOURCE_DIR, CMAKE_BINARY_DIR: 소스 및 바이너리 디렉토리를 나타내는 변수입니다.
이러한 명령어와 변수를 사용하여 프로젝트의 빌드 및 설정을 유연하게 관리할 수 있습니다.
CMake의 모듈과 패키지 관리 CMake는 모듈과 패키지를 통해 외부 라이브러리 및 툴을 관리할 수 있습니다. 모듈은 CMake 스크립트 파일로, 특정 기능을 제공하거나 설정을 자동화하는 데 사용됩니다. 패키지는 외부 라이브러리나 툴의 빌드 시스템을 지원하며, find_package 명령어를 통해 패키지를 찾고 사용할 수 있습니다.
예를 들어, "FindBoost" 모듈을 사용하여 Boost 라이브러리를 찾고, "Boost_INCLUDE_DIRS" 및 "Boost_LIBRARIES" 변수를 통해 라이브러리의 경로와 이름을 가져올 수 있습니다.
find_package(Boost REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(myapp ${Boost_LIBRARIES})
이와 같이 모듈과 패키지를 사용하여 외부 라이브러리 및 툴을 쉽게 관리할 수 있습니다.
요약 CMake는 프로젝트의 빌드 및 설정을 관리하는 강력한 도구입니다. CMakeLists.txt 파일의 구조와 작성 방법, 주요 명령어와 변수, 그리고 모듈과 패키지 관리에 대해 알아보았습니다. 이러한 기본 문법과 구성 요소를 활용하여 프로젝트의 빌드 시스템을 효율적으로 관리할 수 있습니다.
댓글
댓글 쓰기