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 + $) +endforeach() +target_include_directories(OpenIGTLink PUBLIC + $) + +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)