CMake 커맨드: OPTION

반응형

 

CMake 커맨드: OPTION

CMake 커맨드 중 OPTION이라는 커맨드가 있다. 이는 ON, OFF 상태를 갖는 항목의 값을 설정하고 그 값에 따라 선택적인 빌드 등을 수행하는데 사용된다.

 

사용법은 다음과 같다.

OPTION(<varilable> "<help_text>" [value])

value : ON/OFF

if (<variable>)
   do_something
else ()
   do_something
endif ()

 

다음은 BUILD_UNIT_TEST라는 옵션 값에 따라 단위테스트용 라이브러리를 링크시키도록 구현된 예제이다.

OPTION (BUILD_UNIT_TEST "Build unit test or not" ON)

if (BUILD_UNIT_TEST)
    target_link_libraries(${TARGET} gtest gtest_main)
endif ()

위 예제에서 "BUILD_UNIT_TEST"라는 옵션이 ON으로 설정되어 있으면 gtest 및 gtest_main 라이브러리를 링크한다.

 

 

주의 사항

OPTION 값을 ON에서 OFF로(또는 OFF에서 ON으로) 변경 후에는 CMakeCache.txt를 삭제한 후 다시 cmake를 수행해야 한다.

make 또는 cmake만 다시 수행하면 변경된 값이 적용되지 않아 사용하기 조금 불편한다.

 

대안으로는 다음과 같이 set 커맨드를 사용할 수 있다.

set (BUILD_UNIT_TEST true)

if (BUILD_UNIT_TEST)
    target_link_libraries(${TARGET} gtest gtest_main)
endif ()

 

set 커맨드를 사용하면 make만 다시 해도 변경 사항이 적용된다.

 

OPTION 커맨드에 대한 공식 설명은 다음에서 확인할 수 있다.

 

option — CMake 3.17.3 Documentation

option Provide an option that the user can optionally select. option( " " [value]) Provides an option for the user to select as ON or OFF. If no initial is provided, OFF is used. If is already set as a normal variable then the command does nothing (see pol

cmake.org

 

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

댓글

Designed by JB FACTORY