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
   )