CMakeLists.txt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. cmake_minimum_required(VERSION 2.8.3)
  2. project(lanelet2_extension)
  3. find_package(PkgConfig)
  4. find_path(
  5. GeographicLib_INCLUDE_DIR GeographicLib/Config.h
  6. PATH_SUFFIXES GeographicLib
  7. )
  8. set(GeographicLib_INCLUDE_DIRS ${GeographicLib_INCLUDE_DIR})
  9. find_library(GeographicLib_LIBRARIES
  10. NAMES Geographic
  11. )
  12. find_library(PUGIXML_LIBRARIES
  13. NAMES pugixml
  14. )
  15. find_path(PUGIXML_INCLUDE_DIRS
  16. NAMES pugixml.hpp
  17. PATH_SUFFIXES pugixml
  18. )
  19. find_package(autoware_build_flags REQUIRED)
  20. find_package(catkin REQUIRED COMPONENTS
  21. amathutils_lib
  22. autoware_lanelet2_msgs
  23. autoware_msgs
  24. geometry_msgs
  25. lanelet2_core
  26. lanelet2_io
  27. lanelet2_maps
  28. lanelet2_projection
  29. lanelet2_routing
  30. lanelet2_traffic_rules
  31. lanelet2_validation
  32. roscpp
  33. roslint
  34. visualization_msgs
  35. )
  36. set(ROSLINT_CPP_OPTS "--filter=-build/c++14")
  37. roslint_cpp()
  38. catkin_package(
  39. INCLUDE_DIRS include
  40. LIBRARIES lanelet2_extension_lib
  41. CATKIN_DEPENDS
  42. amathutils_lib
  43. autoware_lanelet2_msgs
  44. autoware_msgs
  45. geometry_msgs
  46. lanelet2_core
  47. lanelet2_io
  48. lanelet2_maps
  49. lanelet2_projection
  50. lanelet2_routing
  51. lanelet2_traffic_rules
  52. lanelet2_validation
  53. visualization_msgs
  54. )
  55. include_directories(
  56. include
  57. ${GeographicLib_INCLUDE_DIRS}
  58. ${catkin_INCLUDE_DIRS}
  59. ${PUGIXML_INCLUDE_DIRS}
  60. )
  61. add_definitions(${GeographicLib_DEFINITIONS})
  62. add_library(lanelet2_extension_lib
  63. lib/autoware_osm_parser.cpp
  64. lib/autoware_traffic_light.cpp
  65. lib/message_conversion.cpp
  66. lib/mgrs_projector.cpp
  67. lib/query.cpp
  68. lib/utilities.cpp
  69. lib/visualization.cpp
  70. )
  71. add_dependencies(lanelet2_extension_lib
  72. ${${PROJECT_NAME}_EXPORTED_TARGETS}
  73. ${catkin_EXPORTED_TARGETS}
  74. )
  75. target_link_libraries(lanelet2_extension_lib
  76. ${catkin_LIBRARIES}
  77. ${GeographicLib_LIBRARIES}
  78. )
  79. add_executable(lanelet2_extension_sample src/sample_code.cpp)
  80. add_dependencies(lanelet2_extension_sample ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  81. target_link_libraries(lanelet2_extension_sample
  82. ${catkin_LIBRARIES}
  83. lanelet2_extension_lib
  84. )
  85. add_executable(autoware_lanelet2_validation src/validation.cpp)
  86. add_dependencies(autoware_lanelet2_validation ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
  87. target_link_libraries(autoware_lanelet2_validation
  88. ${catkin_LIBRARIES}
  89. ${PUGIXML_LIBRAREIS}
  90. lanelet2_extension_lib
  91. )
  92. install(TARGETS lanelet2_extension_lib lanelet2_extension_sample autoware_lanelet2_validation
  93. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  94. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  95. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  96. )
  97. install(DIRECTORY include/${PROJECT_NAME}/
  98. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  99. )
  100. if(CATKIN_ENABLE_TESTING)
  101. roslint_add_test()
  102. find_package(rostest REQUIRED)
  103. add_rostest_gtest(message_conversion-test test/test_message_conversion.test test/src/test_message_conversion.cpp)
  104. target_link_libraries(message_conversion-test ${catkin_LIBRARIES} lanelet2_extension_lib)
  105. add_rostest_gtest(projector-test test/test_projector.test test/src/test_projector.cpp)
  106. target_link_libraries(projector-test ${catkin_LIBRARIES} lanelet2_extension_lib)
  107. add_rostest_gtest(query-test test/test_query.test test/src/test_query.cpp)
  108. target_link_libraries(query-test ${catkin_LIBRARIES} lanelet2_extension_lib)
  109. add_rostest_gtest(regulatory_elements-test test/test_regulatory_elements.test test/src/test_regulatory_elements.cpp)
  110. target_link_libraries(regulatory_elements-test ${catkin_LIBRARIES} lanelet2_extension_lib)
  111. add_rostest_gtest(utilities-test test/test_utilities.test test/src/test_utilities.cpp)
  112. target_link_libraries(utilities-test ${catkin_LIBRARIES} lanelet2_extension_lib)
  113. endif()