Ответ 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)