Я реализовал схему, которая позволяет мне определять, была ли изменена переменная CACHE MY_VAR
пользователем, так же, как предложено здесь . Поскольку существует ряд зависимостей, вместо принудительного ввода нового значения для одной зависимой переменной, я ввел новую переменную MY_VAR_CHANGED
. Чтобы определить зависимую переменную, можно сделать что-то вроде этого:
if( MY_VAR_CHANGED )
set( DEPENDENT_VAR "${MY_VAR}/ADDITIONAL_INFO" CACHE PATH "" FORCE )
else()
set( DEPENDENT_VAR "${MY_VAR}/ADDITIONAL_INFO" CACHE PATH "" )
endif()
Я использую этот код во многих разных местах, поэтому мне было интересно, есть ли элегантный способ условно обернуть FORCE, например, используя что-то вроде оператора ? :
в c ++.