CMake - feature_summary

feature_summary 는 CMake 에 정의된 옵션이나 종속성을 확인할 때 유용한 기능이다.

e.g

1
2
3
4
5
6
7
8
9
10
11
12
13
# include 필요
include(FeatureSummary)

find_package(Boost REQUIRED)

# summary 출력 원하는 옵션은 add_feature_info 로 추가
option(BUILD_TEST "Build test executable" OFF)
add_feature_info("BUILD_TEST" BUILD_TEST "Build test executable")
option(ENABLE_SOMETHING "Enable something" ON)
add_feature_info("ENABLE_SOMETHING" ENABLE_SOMETHING "Enable something")

# 출력
feature_summary(WHAT ALL)

Configure 하면 아래와 같이 종속 패키지 목록이나, 옵션 on/off 여부에 대한 summary 가 출력된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
-- The following features have been enabled:

* ENABLE_SOMETHING, Enable something

-- The following REQUIRED packages have been found:

* boost_headers (required version == 1.76.0)
* Boost

-- The following features have been disabled:

* BUILD_TEST, Build test executable

-- Configuring done
-- Generating done

프로젝트가 커질수록 dependency 나 custom option 사용이 많아져서 복잡해질 수 있는데, Configure 시 description 과 함께 출력되니 문서 대용으로 쓰일 수도 있고 한 눈에 적용 옵션들을 파악할 수도 있어서 유용해보인다.