@@ -38,15 +38,15 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
3838endif ()
3939
4040# Offer the user the choice of overriding the installation directories
41- option (OSI_INSTALL_LIB_DIR "Installation directory for libraries" lib )
42- option (OSI_INSTALL_INCLUDE_DIR "Installation directory for header files" include )
41+ set (OSI_INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries" )
42+ set (OSI_INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files" )
4343
4444if (WIN32 AND NOT CYGWIN )
4545 set (DEF_INSTALL_CMAKE_DIR CMake/${PROJECT_NAME} -${VERSION_MAJOR} )
4646else ()
4747 set (DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME} -${VERSION_MAJOR} )
4848endif ()
49- option (OSI_INSTALL_CMAKE_DIR "Installation directory for CMake files" ${DEF_INSTALL_CMAKE_DIR} )
49+ set (OSI_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files" )
5050
5151set (OSI_INSTALL_LIB_DIR ${OSI_INSTALL_LIB_DIR} /osi${VERSION_MAJOR} )
5252set (OSI_INSTALL_INCLUDE_DIR ${OSI_INSTALL_INCLUDE_DIR} /osi${VERSION_MAJOR} )
@@ -195,35 +195,52 @@ install(TARGETS ${PROJECT_NAME}
195195 EXPORT ${PROJECT_NAME} _targets
196196 DESTINATION "${OSI_INSTALL_LIB_DIR} " COMPONENT lib)
197197
198- # Create the open_simulation_interface.cmake and open_simulation_interface-version files
198+ # Copy proto headers to where they are expected by the package config file
199+ add_custom_command (
200+ TARGET ${PROJECT_NAME} POST_BUILD
201+ COMMAND ${CMAKE_COMMAND} -E make_directory
202+ ${CMAKE_CURRENT_BINARY_DIR} /${OSI_INSTALL_INCLUDE_DIR}
203+ COMMAND ${CMAKE_COMMAND} -E copy
204+ ${PROTO_HEADERS}
205+ ${CMAKE_CURRENT_BINARY_DIR} /${OSI_INSTALL_INCLUDE_DIR} )
206+
207+ # Create the package config files
208+ include (CMakePackageConfigHelpers)
209+ write_basic_package_version_file(
210+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-config-version.cmake"
211+ VERSION ${OPEN_SIMULATION_INTERFACE_VERSION}
212+ COMPATIBILITY SameMajorVersion
213+ )
214+
215+ export (EXPORT ${PROJECT_NAME} _targets
216+ FILE "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-targets.cmake"
217+ NAMESPACE ${PROJECT_NAME} ::
218+ )
199219
200- # ... for the build tree
201- set (CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR} " "${PROJECT_BINARY_DIR} " )
202- configure_file (open_simulation_interface-config.cmake.in
203- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} -config.cmake" @ONLY)
204- # ... for the install tree
205- set (CONF_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /${OSI_INSTALL_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR} )
206- configure_file (open_simulation_interface-config.cmake.in
207- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY} /open_simulation_interface-config.cmake" @ONLY)
208- # ... for both
209- configure_file (open_simulation_interface-config-version .cmake.in
210- "${PROJECT_BINARY_DIR} /${PROJECT_NAME} -config-version.cmake" @ONLY)
220+ configure_package_config_file(open_simulation_interface-config.cmake.in
221+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface-config.cmake"
222+ INSTALL_DESTINATION ${OSI_INSTALL_CMAKE_DIR}
223+ PATH_VARS OSI_INSTALL_INCLUDE_DIR
224+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
225+ )
211226
212227# Install the *cmake files
213228install (FILES
214- "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY } /open_simulation_interface-config.cmake"
215- "${PROJECT_BINARY_DIR} / ${PROJECT_NAME} -config-version.cmake"
216- DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
217- COMPONENT dev)
229+ "${CMAKE_CURRENT_BINARY_DIR } /open_simulation_interface-config.cmake"
230+ "${CMAKE_CURRENT_BINARY_DIR} /open_simulation_interface -config-version.cmake"
231+ DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
232+ COMPONENT dev)
218233
219234# Header files
220235install (FILES ${PROTO_HEADERS} ${FLAT_HEADERS}
221236 DESTINATION "${OSI_INSTALL_INCLUDE_DIR} " )
222237
223238# Install the export set for use with the install-tree
224239install (EXPORT ${PROJECT_NAME} _targets
225- DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
226- COMPONENT dev)
240+ FILE open_simulation_interface-targets.cmake
241+ NAMESPACE ${PROJECT_NAME} ::
242+ DESTINATION "${OSI_INSTALL_CMAKE_DIR} "
243+ COMPONENT dev)
227244
228245# add a target to generate API documentation with Doxygen
229246# Dependencies: Doxygen and proto2cpp.py
0 commit comments