I use this code to check if the installed cmake config package is usable:
if(BEMAN_SCOPE_INSTALL_CONFIG_FILE_PACKAGE)
# test if the targets are usable from the install directory
add_test(
NAME install-to-stagedir
COMMAND
${CMAKE_COMMAND} --install ${CMAKE_BINARY_DIR} --prefix
${CMAKE_BINARY_DIR}/stagedir --config $<CONFIG>
)
add_test(
NAME find-package-test
COMMAND
${CMAKE_CTEST_COMMAND} # --verbose
--output-on-failure -C $<CONFIG> --build-and-test
"${CMAKE_SOURCE_DIR}/examples"
"${CMAKE_CURRENT_BINARY_DIR}/find-package-test" --build-generator
${CMAKE_GENERATOR} --build-makeprogram ${CMAKE_MAKE_PROGRAM}
--build-options #
"-D BEMAN_SCOPE_IMPORT_STD=${BEMAN_SCOPE_IMPORT_STD}"
"-D BEMAN_SCOPE_USE_DANIELA_ADVICE=${BEMAN_SCOPE_USE_DANIELA_ADVICE}"
"-D BEMAN_USE_STD_MODULE=${BEMAN_USE_STD_MODULE}"
"-D CMAKE_BUILD_TYPE=$<CONFIG>"
"-D CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
"-D CMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}"
"-D CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"
"-D CMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/stagedir"
"-D CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
)
endif()
but sometimes the CMAKE_TOOLCHAIN_FILE is not an absolute file path?