CMake 개요

CMakeLists.txt 파일에는 프로젝트의 소스 코드, 헤더 파일, 라이브러리, 외부 종속성 및 컴파일러 설정에 대한 정보가 포함된다. CMake는 이러한 정보를 기반으로 플랫폼 독립적인 빌드 스크립트를 생성한다.

컴파일러 플래그 설정

컴파일러 플래그는 코드 최적화, 디버깅 정보 포함 여부, 경고 레벨 등을 결정하는 데 사용된다. CMake에서는 다양한 명령어와 변수를 통해 컴파일러 플래그를 설정할 수 있다.

빌드 타입에 따른 설정

CMake에서는 빌드 타입에 따라 컴파일러 플래그를 다르게 설정할 수 있다. 이는 코드 최적화, 디버깅, 테스트 등의 목적에 따라 빌드 설정을 다르게 할 수 있게 한다.

조건부 컴파일 설정

플래그에 따라 특정 설정을 활성화하거나 비활성화할 수 있다. 조건부 컴파일 설정은 다양한 환경에서의 빌드 요구사항을 충족시킬 수 있다.

if(ENABLE_DEBUG_LOG) add_compile_options(-DENABLE_DEBUG_LOG) endif() ```

타겟 기반 플래그 설정

CMake는 특정 타겟에 대해서만 플래그를 설정할 수 있다. 이를 통해 다양한 타겟이 서로 다른 설정으로 빌드될 수 있다.

외부 라이브러리 및 종속성 관리

CMake는 외부 라이브러리와 종속성을 관리할 수 있는 강력한 기능을 제공한다. 이는 종속성에 따라 플래그를 자동으로 설정할 수 있게 한다.


관련 자료: - CMake 공식 문서: https://cmake.org/documentation/ - Professional CMake: A Practical Guide by Craig Scott - Mastering CMake by Ken Martin, Bill Hoffman