1. 개요
CMake는 C/C++ 등 여러 프로그래밍 언어로 작성된 프로젝트의 빌드 자동화 도구입니다. GNU Make나 Ninja 같은 하위 빌드 시스템의 설정 파일을 생성하는 메타 빌드 시스템(Meta Build System) 이라고 할 수 있습니다.
2. CMake의 핵심 개념
2.1. CMakeLists.txt
- CMake 프로젝트는 이 파일을 중심으로 구성됩니다.
- 빌드 설정, 소스 코드 목록, 컴파일 옵션 등을 명시합니다.
2.2. 빌드 디렉토리 분리 (Out-of-source build)
- 소스 코드와 빌드 결과물을 분리하여 관리 가능
- 예:
Bash
mkdir build
cd build
cmake ..
make
Bash2.3. 다양한 플랫폼 지원
- Windows, macOS, Linux 등에서 동일한 CMakeLists.txt로 빌드 구성 가능
- Visual Studio, Makefile, Ninja 등 다양한 빌드 시스템을 지원
3. 주요 명령어
명령어 | 설명 |
---|---|
cmake . | 현재 디렉토리의 CMakeLists.txt 를 바탕으로 빌드 설정 생성 |
cmake .. | 상위 디렉토리의 CMakeLists.txt 를 사용해 빌드 설정 생성 |
make | 생성된 Makefile로 실제 빌드 수행 |
cmake --build . | 플랫폼 독립적 빌드 명령 |
4. 주요 기능
install
,test
,configure_file
등 다양한 프로젝트 관리 기능 내장find_package
로 외부 라이브러리 탐색target_link_libraries
로 라이브러리 연결option
,if
등을 활용한 조건부 설정
5. 예시 프로젝트 구조
Bash
MyProject/
├── CMakeLists.txt
├── main.cpp
├── utils.cpp
└── build/ # 빌드 파일 생성 위치 (Out-of-source build)
Bash6. CMake의 장점
- 다양한 옵션 제공: 테스트, 설치, 패키징 등 통합 관리
- 유지보수 용이: 큰 프로젝트에서도 구성 관리가 쉬움
- 크로스 플랫폼: 다양한 OS 및 빌드 도구에 대응
- 모듈화: 서브 디렉토리 단위 구성 가능
답글 남기기