Blob Blame History Raw
diff --git a/CMakeLists.txt b/CMakeLists.txt
index adaf04c..c68d430 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -81,7 +81,7 @@ IF(NOT OpenIGTLink_INSTALL_INCLUDE_DIR)
 ENDIF(NOT OpenIGTLink_INSTALL_INCLUDE_DIR)
 
 IF(NOT OpenIGTLink_INSTALL_PACKAGE_DIR)
-  SET(OpenIGTLink_INSTALL_PACKAGE_DIR ${OpenIGTLink_INSTALL_LIB_DIR}
+  SET(OpenIGTLink_INSTALL_PACKAGE_DIR "${OpenIGTLink_INSTALL_LIB_DIR}/cmake/igtl-${OpenIGTLink_VERSION_MAJOR}.${OpenIGTLink_VERSION_MINOR}"
     CACHE INTERNAL "")
 ENDIF(NOT OpenIGTLink_INSTALL_PACKAGE_DIR)
 
@@ -188,9 +188,8 @@ CMAKE_EXPORT_BUILD_SETTINGS(${OpenIGTLink_BINARY_DIR}/OpenIGTLinkBuildSettings.c
 
 INSTALL(FILES
   ${OpenIGTLink_BINARY_DIR}/OpenIGTLinkBuildSettings.cmake
-  ${OpenIGTLink_LIBRARY_TARGETS_FILE}
   ${OpenIGTLink_BINARY_DIR}/UseOpenIGTLink.cmake
-  ${OpenIGTLink_BINARY_DIR}/OpenIGTLinkConfig.cmake
+  ${OpenIGTLink_BINARY_DIR}/Utilities/OpenIGTLinkConfig.cmake
   DESTINATION ${OpenIGTLink_INSTALL_PACKAGE_DIR}
   COMPONENT Development
   )
@@ -236,11 +235,15 @@ ENDIF(OpenIGTLink_BUILD_EXAMPLES)
 
 #-----------------------------------------------------------------------------
 # Export targets
-export(TARGETS
-  OpenIGTLink
+export(TARGETS OpenIGTLink
   FILE "${OpenIGTLink_LIBRARY_TARGETS_FILE}"
   )
 
+# Export targets for install
+INSTALL(EXPORT OpenIGTLink
+  DESTINATION "${OpenIGTLink_INSTALL_PACKAGE_DIR}"
+  FILE "OpenIGTLinkTargets.cmake"
+  )
 
 #-----------------------------------------------------------------------------
 # Tests
diff --git a/GenerateOpenIGTLinkConfig.cmake b/GenerateOpenIGTLinkConfig.cmake
index 94f7d62..90602b9 100644
--- a/GenerateOpenIGTLinkConfig.cmake
+++ b/GenerateOpenIGTLinkConfig.cmake
@@ -41,8 +41,11 @@ CONFIGURE_FILE(${OpenIGTLink_SOURCE_DIR}/OpenIGTLinkConfig.cmake.in
 #-----------------------------------------------------------------------------
 # Settings specific to the install tree.
 
+# store old OpenIGTLink_LIBRARY_TARGETS_FILE
+SET(OpenIGTLink_LIBRARY_TARGETS_FILE_BUILDTREE ${OpenIGTLink_LIBRARY_TARGETS_FILE})
+
 # The library dependencies file.
-SET(OpenIGTLink_LIBRARY_DEPENDS_FILE "\${OpenIGTLink_INSTALL_PREFIX}/${OpenIGTLink_INSTALL_PACKAGE_DIR}/OpenIGTLinkLibraryDepends.cmake")
+SET(OpenIGTLink_LIBRARY_TARGETS_FILE "\${OpenIGTLink_INSTALL_PREFIX}/${OpenIGTLink_INSTALL_PACKAGE_DIR}/OpenIGTLinkTargets.cmake")
 
 # The "use" file.
 SET(OpenIGTLink_USE_FILE \${OpenIGTLink_INSTALL_PREFIX}/${OpenIGTLink_INSTALL_PACKAGE_DIR}/UseOpenIGTLink.cmake)
@@ -65,20 +68,12 @@ SET(OpenIGTLink_LIBRARY_DIRS_CONFIG "\${OpenIGTLink_INSTALL_PREFIX}/${OpenIGTLin
 #-----------------------------------------------------------------------------
 # Configure OpenIGTLinkConfig.cmake for the install tree.
 
-# Construct the proper number of GET_FILENAME_COMPONENT(... PATH)
-# calls to compute the installation prefix.
-STRING(REGEX REPLACE "/" ";" OpenIGTLink_INSTALL_PACKAGE_DIR_COUNT
-  "${OpenIGTLink_INSTALL_PACKAGE_DIR}")
 SET(OpenIGTLink_CONFIG_CODE "
-# Compute the installation prefix from this OpenIGTLinkConfig.cmake file location.
-GET_FILENAME_COMPONENT(OpenIGTLink_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
-FOREACH(p ${OpenIGTLink_INSTALL_PACKAGE_DIR_COUNT})
-  SET(OpenIGTLink_CONFIG_CODE
-    "${OpenIGTLink_CONFIG_CODE}\nGET_FILENAME_COMPONENT(OpenIGTLink_INSTALL_PREFIX \"\${OpenIGTLink_INSTALL_PREFIX}\" PATH)"
-    )
-ENDFOREACH(p)
-
+SET(OpenIGTLink_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
 
 CONFIGURE_FILE(${OpenIGTLink_SOURCE_DIR}/OpenIGTLinkConfig.cmake.in
                ${OpenIGTLink_BINARY_DIR}/Utilities/OpenIGTLinkConfig.cmake @ONLY IMMEDIATE)
 
+# restore old OpenIGTLink_LIBRARY_TARGETS_FILE
+SET(OpenIGTLink_LIBRARY_TARGETS_FILE ${OpenIGTLink_LIBRARY_TARGETS_FILE_BUILDTREE})
+
diff --git a/OpenIGTLinkConfig.cmake.in b/OpenIGTLinkConfig.cmake.in
index 2dc5b00..ad9bcea 100644
--- a/OpenIGTLinkConfig.cmake.in
+++ b/OpenIGTLinkConfig.cmake.in
@@ -47,5 +47,5 @@ SET(OpenIGTLink_CableSwig_DIR "@OpenIGTLink_CableSwig_DIR_CONFIG@")
 SET(OpenIGTLink_LIBRARIES OpenIGTLink)
 
 # The OpenIGTLink library targets.
-SET(OpenIGTLink_LIBRARY_TARGETS_FILE @OpenIGTLink_LIBRARY_TARGETS_FILE@)
+SET(OpenIGTLink_LIBRARY_TARGETS_FILE "@OpenIGTLink_LIBRARY_TARGETS_FILE@")
 include(${OpenIGTLink_LIBRARY_TARGETS_FILE})
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 536c11f..ddd5d87 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -30,8 +30,7 @@ ENDIF(OpenIGTLink_PLATFORM_WIN32)
 
 ADD_SUBDIRECTORY( igtlutil )
 
-set(OpenIGTLink_INCLUDE_DIRS
-  PUBLIC
+SET(OpenIGTLink_INCLUDE_DIRS
   ${CMAKE_BINARY_DIR}
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
@@ -180,21 +179,16 @@ IF (${OpenIGTLink_PROTOCOL_VERSION} GREATER "1" )
     )
 ENDIF ( ${OpenIGTLink_PROTOCOL_VERSION} GREATER "1")
 
-IF( ${CMAKE_GENERATOR} MATCHES "Visual Studio" )
-ADD_LIBRARY(OpenIGTLink
-  ${OpenIGTLink_SOURCES}
-  ${OpenIGTLink_INCLUDE_FILES}
-  )
-ELSE ( ${CMAKE_GENERATOR} MATCHES "Visual Studio" )
-ADD_LIBRARY(OpenIGTLink
-  ${OpenIGTLink_SOURCES}
-  )
-ENDIF( ${CMAKE_GENERATOR} MATCHES "Visual Studio" )
+ADD_LIBRARY(OpenIGTLink ${OpenIGTLink_SOURCES} ${OpenIGTLink_INCLUDE_FILES})
+foreach(p IN LISTS OpenIGTLink_INCLUDE_DIRS)
+  target_include_directories(OpenIGTLink PUBLIC 
+    $<BUILD_INTERFACE:${p}>)
+endforeach()
+target_include_directories(OpenIGTLink PUBLIC 
+  $<INSTALL_INTERFACE:${OpenIGTLink_INSTALL_INCLUDE_DIR}>)
+
+TARGET_LINK_LIBRARIES(OpenIGTLink PUBLIC ${LINK_LIBS})
 
-include_directories(OpenIGTLink ${OpenIGTLink_INCLUDE_DIRS})
-TARGET_LINK_LIBRARIES(OpenIGTLink
-  ${LINK_LIBS}
-  )
 IF(MSVC)
   target_compile_options(OpenIGTLink PRIVATE /MP)
 ENDIF()
@@ -208,7 +202,7 @@ INSTALL(FILES ${OpenIGTLink_INCLUDE_FILES}
   DESTINATION ${OpenIGTLink_INSTALL_INCLUDE_DIR}
   COMPONENT Development)
 
-INSTALL(TARGETS OpenIGTLink
+INSTALL(TARGETS OpenIGTLink EXPORT OpenIGTLink
   RUNTIME DESTINATION ${OpenIGTLink_INSTALL_BIN_DIR} COMPONENT RuntimeLibraries
   LIBRARY DESTINATION ${OpenIGTLink_INSTALL_LIB_DIR} COMPONENT RuntimeLibraries
-  ARCHIVE DESTINATION ${OpenIGTLink_INSTALL_LIB_DIR} COMPONENT Development)
\ No newline at end of file
+  ARCHIVE DESTINATION ${OpenIGTLink_INSTALL_LIB_DIR} COMPONENT Development)