@@ -35,15 +35,15 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
3535endif ()
3636
3737# Offer the user the choice of overriding the installation directories
38- option (OSI_INSTALL_LIB_DIR "Installation directory for libraries" lib )
39- option (OSI_INSTALL_INCLUDE_DIR "Installation directory for header files" include )
38+ set (OSI_INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries" )
39+ set (OSI_INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files" )
4040
4141if (WIN32 AND NOT CYGWIN )
4242 set (DEF_INSTALL_CMAKE_DIR CMake/${PROJECT_NAME} -${VERSION_MAJOR} )
4343else ()
4444 set (DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME} -${VERSION_MAJOR} )
4545endif ()
46- option (OSI_INSTALL_CMAKE_DIR "Installation directory for CMake files" ${DEF_INSTALL_CMAKE_DIR} )
46+ set (OSI_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files" )
4747
4848set (OSI_INSTALL_LIB_DIR ${OSI_INSTALL_LIB_DIR} /osi${VERSION_MAJOR} )
4949set (OSI_INSTALL_INCLUDE_DIR ${OSI_INSTALL_INCLUDE_DIR} /osi${VERSION_MAJOR} )
@@ -148,35 +148,52 @@ install(TARGETS ${PROJECT_NAME}
148148 EXPORT ${PROJECT_NAME} _targets
149149 DESTINATION "${OSI_INSTALL_LIB_DIR} " COMPONENT lib)
150150
151- # Create the open_simulation_interface.cmake and open_simulation_interface-version files
151+ # Copy proto headers to where they are expected by the package config file
152+ add_custom_command (
153+ TARGET ${PROJECT_NAME} POST_BUILD
154+ COMMAND ${CMAKE_COMMAND} -E make_directory
155+ ${CMAKE_CURRENT_BINARY_DIR} /${OSI_INSTALL_INCLUDE_DIR}
156+ COMMAND ${CMAKE_COMMAND} -E copy
157+ ${PROTO_HEADERS}
158+ ${CMAKE_CURRENT_BINARY_DIR} /${OSI_INSTALL_INCLUDE_DIR} )
159+
160+ # Create the package config files
161+ include (CMakePackageConfigHelpers)
162+ write_basic_package_version_file(
163+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-config-version.cmake"
164+ VERSION ${OPEN_SIMULATION_INTERFACE_VERSION}
165+ COMPATIBILITY SameMajorVersion
166+ )
167+
168+ export (EXPORT ${PROJECT_NAME} _targets
169+ FILE "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-targets.cmake"
170+ NAMESPACE ${PROJECT_NAME} ::
171+ )
152172
153- # ... for the build tree
154- set (CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR} " "${PROJECT_BINARY_DIR} " )
155- configure_file (open_simulation_interface-config.cmake.in
156- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} -config.cmake" @ONLY)
157- # ... for the install tree
158- set (CONF_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /${OSI_INSTALL_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR} )
159- configure_file (open_simulation_interface-config.cmake.in
160- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY} /open_simulation_interface-config.cmake" @ONLY)
161- # ... for both
162- configure_file (open_simulation_interface-config-version .cmake.in
163- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} -config-version.cmake" @ONLY)
173+ configure_package_config_file(open_simulation_interface-config.cmake.in
174+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-config.cmake"
175+ INSTALL_DESTINATION ${OSI_INSTALL_CMAKE_DIR}
176+ PATH_VARS OSI_INSTALL_INCLUDE_DIR
177+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
178+ )
164179
165180# Install the *cmake files
166181install (FILES
167- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY } /open_simulation_interface-config.cmake"
168- "${PROJECT_BINARY_DIR} / ${PROJECT_NAME} -config-version.cmake"
169- DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
170- COMPONENT dev)
182+ "${CMAKE_CURRENT_BINARY_DIR } /open_simulation_interface-config.cmake"
183+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface -config-version.cmake"
184+ DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
185+ COMPONENT dev)
171186
172187# Header files
173188install (FILES ${PROTO_HEADERS}
174189 DESTINATION "${OSI_INSTALL_INCLUDE_DIR} " )
175190
176191# Install the export set for use with the install-tree
177192install (EXPORT ${PROJECT_NAME} _targets
178- DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
179- COMPONENT dev)
193+ FILE open_simulation_interface-targets.cmake
194+ NAMESPACE ${PROJECT_NAME} ::
195+ DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
196+ COMPONENT dev)
180197
181198# add a target to generate API documentation with Doxygen
182199# Dependencies: Doxygen and proto2cpp.py
0 commit comments