@@ -88,33 +88,77 @@ foreach(target IN LISTS TARGETS)
8888 if (NOT target STREQUAL "util_rtai" AND NOT target STREQUAL "util_xenomai" )
8989 list (APPEND RL_LIBRARIES "rl::${target} " )
9090 endif ()
91+ get_target_property (TARGET_INTERFACE_LINK_LIBRARIES ${target} INTERFACE_LINK_LIBRARIES)
92+ if (TARGET_INTERFACE_LINK_LIBRARIES)
93+ foreach (library IN LISTS TARGET_INTERFACE_LINK_LIBRARIES)
94+ if (library MATCHES "([A-Za-z0-9_.+-]*)::([A-Za-z0-9_.+-]*)" )
95+ list (APPEND PACKAGES ${CMAKE_MATCH_1} )
96+ endif ()
97+ endforeach ()
98+ endif ()
99+ endforeach ()
100+
101+ list (REMOVE_DUPLICATES PACKAGES)
102+ list (SORT PACKAGES)
103+
104+ foreach (package IN LISTS PACKAGES)
105+ list (APPEND FIND_DEPENDENCIES "find_dependency(${package} )" )
106+ list (APPEND MODULES ${package} )
107+ if (package STREQUAL "fcl" )
108+ list (APPEND MODULES Boost ccd Eigen3 octomap)
109+ elseif (package STREQUAL "LibXml2" )
110+ list (APPEND MODULES Iconv ICU LibLZMA Threads ZLIB)
111+ elseif (package STREQUAL "LibXslt" )
112+ list (APPEND MODULES LibXml2)
113+ elseif (package STREQUAL "ODE" )
114+ list (APPEND MODULES ccd Threads)
115+ endif ()
91116endforeach ()
92117
118+ list (REMOVE_DUPLICATES MODULES)
119+ list (SORT MODULES)
120+
121+ foreach (module IN LISTS MODULES)
122+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /cmake/Find ${module} .cmake)
123+ file (
124+ COPY cmake/Find ${module} .cmake
125+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/rl
126+ )
127+ install (
128+ FILES cmake/Find ${module} .cmake
129+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/rl-${PROJECT_VERSION}
130+ COMPONENT development
131+ )
132+ endif ()
133+ endforeach ()
134+
135+ string (REPLACE ";" "\n " FIND_DEPENDENCIES "${FIND_DEPENDENCIES} " )
136+
93137export (
94138 TARGETS ${TARGETS}
95139 NAMESPACE rl::
96- FILE ${CMAKE_CURRENT_BINARY_DIR} /rl-export.cmake
140+ FILE ${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/rl/ rl-export.cmake
97141)
98142
99143configure_package_config_file(
100- rl-config.cmake.in rl-config.cmake
144+ rl-config.cmake.in lib/cmake/rl/ rl-config.cmake
101145 INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/rl-${PROJECT_VERSION}
102146)
103147
104148install (
105- FILES ${CMAKE_CURRENT_BINARY_DIR} /rl-config.cmake
149+ FILES ${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/rl/ rl-config.cmake
106150 DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/rl-${PROJECT_VERSION}
107151 COMPONENT development
108152)
109153
110154write_basic_package_version_file(
111- ${CMAKE_CURRENT_BINARY_DIR} /rl-config-version .cmake
155+ ${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/rl/ rl-config-version .cmake
112156 VERSION ${PROJECT_VERSION}
113157 COMPATIBILITY ExactVersion
114158)
115159
116160install (
117- FILES ${CMAKE_CURRENT_BINARY_DIR} /rl-config-version .cmake
161+ FILES ${CMAKE_CURRENT_BINARY_DIR} /lib/cmake/rl/ rl-config-version .cmake
118162 DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/rl-${PROJECT_VERSION}
119163 COMPONENT development
120164)
0 commit comments