Параметры набора cmake set

Есть ли способ установить параметры подкаталога?

Итак, у меня есть проект, который зависит от подпроекта, у подпроекта есть опция: OPTION (WITH_FUNCTION_X "включить функциональность X" ON ")

И в моем родительском проекте я хочу включить подпроект, но без функциональности X.

спасибо!

Ответ 1

Команда CMake option более или менее добавляет в кэш булевскую переменную.

Если вы хотите переопределить значение по умолчанию для параметра, просто добавьте переменную с тем же именем в кеш непосредственно перед тем, как потянуть в подпроект:

set(WITH_FUNCTION_X OFF CACHE BOOL "enable X functionality")
add_subdirectory(subproject)

Обратите внимание, что команда set ничего не делает, если в кэше уже есть значение этого имени. Если вы хотите перезаписать любое существующее значение, добавьте параметр FORCE к этой команде.

Пример с FORCE

set(WITH_FUNCTION_X OFF CACHE BOOL "enable X functionality" FORCE)
add_subdirectory(subproject)