CMake Quick Guide

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
Bash

2.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)
Bash

6. CMake의 장점

  • 다양한 옵션 제공: 테스트, 설치, 패키징 등 통합 관리
  • 유지보수 용이: 큰 프로젝트에서도 구성 관리가 쉬움
  • 크로스 플랫폼: 다양한 OS 및 빌드 도구에 대응
  • 모듈화: 서브 디렉토리 단위 구성 가능

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다