CMake는 다양한 빌드 타입을 지원하여 개발자들이 원하는 방식으로 소프트웨어를 빌드할 수 있도록 한다. 기본적으로 CMake는 Debug, Release, RelWithDebInfo, MinSizeRel 네 가지 표준 빌드 타입을 제공한다. 각 빌드 타입은 서로 다른 최적화 수준과 디버깅 정보 포함 여부에 따라 구분된다.
Debug: 디버깅을 위해 사용되며, 최적화를 최소화하고 디버깅 정보를 포함한다.
Release: 최적화를 극대화하며, 디버깅 정보는 포함하지 않는다.
RelWithDebInfo: 최적화를 유지하면서 디버깅 정보를 포함한다. 일반적으로 개발 단계에서 많이 사용된다.
MinSizeRel: 바이너리 크기를 최소화하는 것을 목표로 하며, 일부 최적화를 수행한다.
CMakeLists.txt에서 빌드 타입 설정 방법
CMakeLists.txt 파일에서 특정 빌드 타입을 설정하는 방법은 여러 가지가 있다. 이를 통해 빌드 시 자동으로 선택되거나, 개발자가 명시적으로 빌드 타입을 지정할 수 있다.
기본 빌드 타입 설정
CMake 프로젝트에서 기본 빌드 타입을 설정하는 방법은 CMAKE_BUILD_TYPE 변수를 설정하는 것이다. 이는 빌드 명령어에서 빌드 타입을 명시하지 않았을 때 사용된다.
set(CMAKE_BUILD_TYPE Release)
이 설정을 통해 개발자가 명시적으로 빌드 타입을 지정하지 않으면 Release 빌드 타입이 사용된다.
빌드 타입에 따른 컴파일러 설정
빌드 타입에 따라 다른 컴파일러 옵션을 설정할 수 있다. 이를 위해 CMAKE_CXX_FLAGS_<CONFIG> 변수를 사용한다.