diff --git a/CMake/Utilities/iMSTKConfig.cmake.in b/CMake/Utilities/iMSTKConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..a393e3ebf96b3fc87eaff4fdf137e0403424321e --- /dev/null +++ b/CMake/Utilities/iMSTKConfig.cmake.in @@ -0,0 +1,2 @@ +set(iMSTK_BINARY_DIR "@iMSTK_BINARY_DIR@") +include("${iMSTK_BINARY_DIR}/Innerbuild/iMSTKConfig.cmake") \ No newline at end of file diff --git a/iMSTKConfig.cmake.in b/CMake/Utilities/iMSTKInnerbuildConfig.cmake.in similarity index 100% rename from iMSTKConfig.cmake.in rename to CMake/Utilities/iMSTKInnerbuildConfig.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index ecc53f55def4b520d33c8873feba12e54d10c6b9..8bd64c386c6e2f6dd7829863b3d985f8477e2901 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,7 @@ endif () #----------------------------------------------------------------------------- # SUPERBUILD #----------------------------------------------------------------------------- +include(CMakePackageConfigHelpers) option(${PROJECT_NAME}_SUPERBUILD "Build ${PROJECT_NAME} and the projects it depends on." ON) if(${PROJECT_NAME}_SUPERBUILD) @@ -175,6 +176,17 @@ if(${PROJECT_NAME}_SUPERBUILD) # CMakeLists.txt will be called back with SUPERBUILD=OFF, to execute # the rest of the code below (INNERBUILD), which explains the `return` add_subdirectory(CMake/External) + + write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + VERSION ${Upstream_VERSION} + COMPATIBILITY AnyNewerVersion + ) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Utilities/${PROJECT_NAME}Config.cmake.in" + ${PROJECT_NAME}Config.cmake + @ONLY + ) return() @@ -379,8 +391,7 @@ if(NOT WIN32) configure_file( ${CMAKE_SOURCE_DIR}/CMake/setup_iMSTK.sh.in ${CMAKE_INSTALL_PREFIX}/setup_iMSTK.sh - @ONLY - ) + @ONLY) endif() #-------------------------------------------------------------------------- @@ -397,18 +408,17 @@ add_test( string(TOLOWER "${PROJECT_NAME}" PROJECT_NAMESPACE) set(PROJECT_NAMESPACE "${PROJECT_NAMESPACE}::") -include(CMakePackageConfigHelpers) +export(EXPORT ${PROJECT_NAME}_TARGETS + FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake + NAMESPACE ${PROJECT_NAMESPACE} + ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" VERSION ${Upstream_VERSION} COMPATIBILITY AnyNewerVersion ) -export(EXPORT ${PROJECT_NAME}_TARGETS - FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake - NAMESPACE ${PROJECT_NAMESPACE} - ) -configure_file(${PROJECT_NAME}Config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/CMake/Utilities/${PROJECT_NAME}InnerbuildConfig.cmake.in" + ${PROJECT_NAME}Config.cmake @ONLY )