enable_language(C) set(CMAKE_VERIFY_INTERFACE_HEADER_SETS TRUE) set(CMAKE_VERIFY_PRIVATE_HEADER_SETS TRUE) include(FetchContent) FetchContent_Declare(verify_subproj SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/VerifyHeaderSet ) message(STATUS "Before subproject, interface var = '${CMAKE_VERIFY_INTERFACE_HEADER_SETS}'") message(STATUS "Before subproject, private var = '${CMAKE_VERIFY_PRIVATE_HEADER_SETS}'") FetchContent_MakeAvailable(verify_subproj) # Provide a way to verify the variable was reset back to its original value message(STATUS "After subproject, interface var = '${CMAKE_VERIFY_INTERFACE_HEADER_SETS}'") message(STATUS "After subproject, private var = '${CMAKE_VERIFY_PRIVATE_HEADER_SETS}'") get_property(verify_interface TARGET Blah PROPERTY VERIFY_INTERFACE_HEADER_SETS) get_property(verify_private TARGET Blah PROPERTY VERIFY_PRIVATE_HEADER_SETS) message(STATUS "Subproject target property VERIFY_INTERFACE_HEADER_SETS='${verify_interface}'") message(STATUS "Subproject target property VERIFY_PRIVATE_HEADER_SETS='${verify_private}'")