cmake option修改不生效解决方法

cmake option修改不生效解决方法

注:本人未系统学习过cmake


遇到的问题

示例CMakeLists.txt

cmake_minimum_required(VERSION 3.14)
project(option_test)
option(TEST_MODE "test mode" ON)

if(${TEST_MODE})
	add_definitions(-DTEST_MODE)
	message(STATUS "test mode on")
else()
	message(STATUS "test mode off")
endif()

cmake option修改不生效解决方法_第1张图片
修改CMakeLists.txt
cmake option修改不生效解决方法_第2张图片

问题原因:

cmake option修改不生效解决方法_第3张图片
cmake option修改不生效解决方法_第4张图片

解决方法

cmake_minimum_required(VERSION 3.14)
project(option_test)

if(DEFINED TEST_MODE)
        unset(TEST_MODE CACHE)
endif()

option(TEST_MODE "test mode" OFF)

if(${TEST_MODE})
        add_definitions(-DTEST_MODE)
        message(STATUS "test mode on")
else()
        message(STATUS "test mode off")
endif()

cmake option修改不生效解决方法_第5张图片
cmake option修改不生效解决方法_第6张图片

你可能感兴趣的:(c++,开发语言)