|
1 |
| -cmake_minimum_required(VERSION 3.8) |
| 1 | +cmake_minimum_required(VERSION 3.14.4) |
2 | 2 | project(grid_map_geo)
|
3 | 3 |
|
| 4 | +if(NOT CMAKE_C_STANDARD) |
| 5 | + set(CMAKE_C_STANDARD 99) |
| 6 | +endif() |
| 7 | +if(NOT CMAKE_CXX_STANDARD) |
| 8 | + set(CMAKE_CXX_STANDARD 17) |
| 9 | +endif() |
4 | 10 |
|
5 |
| -if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
| 11 | +# Set policy for 3.16 for CMP0076 defaulting to ON |
| 12 | +cmake_policy(VERSION 3.16) |
| 13 | + |
| 14 | +if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
6 | 15 | add_compile_options(-Wall -Wextra -Wpedantic)
|
7 | 16 | endif()
|
8 | 17 |
|
9 |
| -# find dependencies |
10 |
| -find_package(GDAL REQUIRED) |
11 |
| -find_package(eigen3_cmake_module REQUIRED) |
12 |
| -find_package(Eigen3) |
13 |
| - |
| 18 | +find_package(GDAL 3 REQUIRED) |
14 | 19 | find_package(ament_cmake REQUIRED)
|
15 |
| -find_package(rclcpp REQUIRED) |
16 |
| -find_package(std_msgs REQUIRED) |
17 |
| -find_package(geometry_msgs REQUIRED) |
18 |
| -find_package(grid_map_core REQUIRED) |
19 | 20 | find_package(grid_map_ros REQUIRED)
|
20 |
| -find_package(grid_map_msgs REQUIRED) |
| 21 | +find_package(grid_map_core REQUIRED) |
| 22 | +find_package(Eigen3 REQUIRED) |
21 | 23 |
|
| 24 | +add_library(${PROJECT_NAME}) |
| 25 | +add_subdirectory(src) |
22 | 26 |
|
23 |
| -include_directories( |
24 |
| - include |
| 27 | +target_include_directories(${PROJECT_NAME} |
| 28 | + PUBLIC |
| 29 | + "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" |
| 30 | + "$<INSTALL_INTERFACE:include/${PROJECT_NAME}>" |
25 | 31 | )
|
26 | 32 |
|
27 |
| -add_library(${PROJECT_NAME} |
28 |
| - src/grid_map_geo.cpp |
29 |
| -) |
30 |
| -ament_target_dependencies(${PROJECT_NAME} rclcpp std_msgs geometry_msgs grid_map_core grid_map_ros grid_map_msgs) |
31 |
| -target_include_directories(${PROJECT_NAME} PUBLIC "${Eigen3_INCLUDE_DIRS}") |
32 |
| -target_link_libraries(${PROJECT_NAME} ${GDAL_LIBRARY}) |
| 33 | +# Reverse compatability for GDAL<3.5 |
| 34 | +# https://gdal.org/development/cmake.html |
| 35 | +if(NOT TARGET GDAL::GDAL) |
| 36 | + add_library(GDAL::GDAL ALIAS ${GDAL_LIBRARY}) |
| 37 | +endif() |
33 | 38 |
|
34 |
| -add_executable(test_tif_loader |
35 |
| - src/test_tif_loader.cpp |
36 |
| -) |
37 |
| -ament_target_dependencies(test_tif_loader rclcpp std_msgs) |
38 |
| -target_include_directories(test_tif_loader PUBLIC "${Eigen3_INCLUDE_DIRS}") |
39 |
| -target_link_libraries(test_tif_loader ${PROJECT_NAME} ${GDAL_LIBRARY}) |
| 39 | +target_link_libraries(${PROJECT_NAME} Eigen3::Eigen GDAL::GDAL grid_map_core::grid_map_core) |
| 40 | + |
| 41 | +ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET) |
| 42 | +ament_export_dependencies(GDAL) |
40 | 43 |
|
41 |
| -install(TARGETS |
42 |
| - test_tif_loader |
43 |
| - DESTINATION lib/${PROJECT_NAME}) |
| 44 | +install( |
| 45 | + DIRECTORY include/ |
| 46 | + DESTINATION include |
| 47 | +) |
44 | 48 |
|
45 | 49 | install(DIRECTORY
|
46 | 50 | launch
|
47 | 51 | DESTINATION share/${PROJECT_NAME}/
|
48 | 52 | )
|
49 | 53 |
|
| 54 | +install( |
| 55 | + TARGETS ${PROJECT_NAME} |
| 56 | + EXPORT ${PROJECT_NAME}Targets |
| 57 | + LIBRARY DESTINATION lib |
| 58 | + ARCHIVE DESTINATION lib |
| 59 | + RUNTIME DESTINATION bin |
| 60 | + INCLUDES DESTINATION include |
| 61 | +) |
| 62 | + |
| 63 | +include(CTest) |
50 | 64 | if(BUILD_TESTING)
|
51 |
| - find_package(ament_lint_auto REQUIRED) |
52 |
| - # the following line skips the linter which checks for copyrights |
53 |
| - # comment the line when a copyright and license is added to all source files |
54 |
| - set(ament_cmake_copyright_FOUND TRUE) |
55 |
| - # the following line skips cpplint (only works in a git repo) |
56 |
| - # comment the line when this package is in a git repo and when |
57 |
| - # a copyright and license is added to all source files |
58 |
| - set(ament_cmake_cpplint_FOUND TRUE) |
59 |
| - ament_lint_auto_find_test_dependencies() |
| 65 | + add_subdirectory(test) |
60 | 66 | endif()
|
61 | 67 |
|
62 | 68 | ament_package()
|
0 commit comments