diff --git a/CMakeLists.txt b/CMakeLists.txt index 26744624e988a2745cc8a48e9c75093bea0efa71..ec04aa67da86b2c263686a8cec7691bad2cca5d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,16 +166,37 @@ add_subdirectory(Base/Constraint) string(TOLOWER "${PROJECT_NAME}" PROJECT_NAMESPACE) set(PROJECT_NAMESPACE "${PROJECT_NAMESPACE}::") +include(CMakePackageConfigHelpers) +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" + @ONLY + ) install(EXPORT ${PROJECT_NAME}_TARGETS - FILE ${PROJECT_NAME}Targets.cmake - NAMESPACE ${PROJECT_NAMESPACE} - COMPONENT Development - DESTINATION ${${PROJECT_NAME}_INSTALL_SHARE_DIR} + FILE + ${PROJECT_NAME}Targets.cmake + NAMESPACE + ${PROJECT_NAMESPACE} + DESTINATION + ${${PROJECT_NAME}_INSTALL_SHARE_DIR} + ) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + DESTINATION + ${${PROJECT_NAME}_INSTALL_SHARE_DIR} + COMPONENT + Devel ) #-------------------------------------------------------------------------- diff --git a/iMSTKConfig.cmake.in b/iMSTKConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..334eb3225e064778bf7e4d8851568e02b7428293 --- /dev/null +++ b/iMSTKConfig.cmake.in @@ -0,0 +1,49 @@ +# Include and library paths +set(CMAKE_INCLUDE_PATH "@CMAKE_INCLUDE_PATH@") +set(CMAKE_LIBRARY_PATH "@CMAKE_LIBRARY_PATH@") + +# Path to iMSTK source directory +set(iMSTK_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") + +# Update CMake module path +list(INSERT CMAKE_MODULE_PATH 0 "${iMSTK_SOURCE_DIR}/CMake") + +# iMSTK settings +set(iMSTK_USE_OMNI @iMSTK_USE_OMNI@) +set(VegaFEM_DIR @VegaFEM_DIR@) +set(VTK_DIR @VTK_DIR@) + +# g3log +find_package( g3log REQUIRED ) +include_directories( ${g3log_INCLUDE_DIR} ) + +# Eigen +find_package( Eigen 3.1.2 REQUIRED ) +include_directories( ${Eigen_INCLUDE_DIR} ) + +# SCCD +find_package( SCCD REQUIRED ) +include_directories( ${SCCD_INCLUDE_DIR} ) + +# VegaFEM +find_package( VegaFEM REQUIRED CONFIG ) + +# VTK +find_package( VTK REQUIRED CONFIG ) +include( ${VTK_USE_FILE} ) + +# VRPN +find_package( VRPN REQUIRED ) +include_directories( ${VRPN_INCLUDE_DIRS} ) +add_definitions( -DVRPN_USE_LIBNIFALCON ) +if(${PROJECT_NAME}_USE_OMNI) + add_definitions( -DiMSTK_USE_OPENHAPTICS ) + add_definitions( -DVRPN_USE_PHANTOM_SERVER ) +else() + remove_definitions( -DiMSTK_USE_OPENHAPTICS ) + remove_definitions( -DVRPN_USE_PHANTOM_SERVER ) +endif() + +# iMSTK +#link_directories(@CMAKE_LIBRARY_PATH@) +include("@CMAKE_CURRENT_BINARY_DIR@/iMSTKTargets.cmake")