Skip to content

Commit ea38fb3

Browse files
authored
Merge pull request #23 from KumarRobotics/feature/cmake-install
should be installable
2 parents d2e9a83 + 239fac4 commit ea38fb3

File tree

2 files changed

+79
-9
lines changed

2 files changed

+79
-9
lines changed

glider/CMakeLists.txt

Lines changed: 64 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ find_package(GTest REQUIRED)
3636
find_package(glog REQUIRED)
3737
find_package(yaml-cpp REQUIRED)
3838
# ROS 2
39-
find_package(ament_cmake REQUIRED)
40-
find_package(rclcpp REQUIRED)
41-
find_package(rclcpp_components REQUIRED)
42-
find_package(sensor_msgs REQUIRED)
43-
find_package(std_msgs REQUIRED)
44-
find_package(nav_msgs REQUIRED)
45-
46-
set(node_plugins "")
47-
39+
if (BUILD_ROS)
40+
find_package(ament_cmake REQUIRED)
41+
find_package(rclcpp REQUIRED)
42+
find_package(rclcpp_components REQUIRED)
43+
find_package(sensor_msgs REQUIRED)
44+
find_package(std_msgs REQUIRED)
45+
find_package(nav_msgs REQUIRED)
46+
47+
set(node_plugins "")
48+
endif()
4849
# Include directories
4950
include_directories(
5051
include
@@ -146,6 +147,60 @@ if (BUILD_ROS)
146147
)
147148

148149
ament_package()
150+
else()
151+
message("Configuring non-ROS installation")
152+
153+
# Install the library
154+
install(TARGETS ${PROJECT_NAME}
155+
EXPORT ${PROJECT_NAME}Targets
156+
LIBRARY DESTINATION lib
157+
ARCHIVE DESTINATION lib
158+
RUNTIME DESTINATION bin
159+
INCLUDES DESTINATION include
160+
)
161+
162+
# Install headers
163+
install(DIRECTORY include/
164+
DESTINATION include
165+
)
166+
167+
# Install config files
168+
install(DIRECTORY config/
169+
DESTINATION share/${PROJECT_NAME}/config
170+
)
171+
172+
# Generate and install CMake config files
173+
include(CMakePackageConfigHelpers)
174+
175+
# Generate the config file that includes the exports
176+
configure_package_config_file(
177+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
178+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
179+
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
180+
NO_SET_AND_CHECK_MACRO
181+
NO_CHECK_REQUIRED_COMPONENTS_MACRO
182+
)
183+
184+
# Generate the version file
185+
write_basic_package_version_file(
186+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
187+
VERSION 1.0.0
188+
COMPATIBILITY AnyNewerVersion
189+
)
190+
191+
# Install the config files
192+
install(FILES
193+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
194+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
195+
DESTINATION lib/cmake/${PROJECT_NAME}
196+
)
197+
198+
# Install the export set
199+
install(EXPORT ${PROJECT_NAME}Targets
200+
FILE ${PROJECT_NAME}Targets.cmake
201+
NAMESPACE ${PROJECT_NAME}::
202+
DESTINATION lib/cmake/${PROJECT_NAME}
203+
)
149204
endif()
150205

151206
# TESTS

glider/cmake/GLiderConfig.cmake.in

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
@PACKAGE_INIT@
2+
3+
# Find dependencies
4+
include(CMakeFindDependencyMacro)
5+
6+
find_dependency(Eigen3 REQUIRED)
7+
find_dependency(GTSAM REQUIRED)
8+
find_dependency(GTSAM_UNSTABLE REQUIRED)
9+
find_dependency(glog REQUIRED)
10+
find_dependency(yaml-cpp REQUIRED)
11+
12+
# Include the targets file
13+
include("${CMAKE_CURRENT_LIST_DIR}/gliderTargets.cmake")
14+
15+
check_required_components(glider)

0 commit comments

Comments
 (0)