CMakeLists.txt 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. cmake_minimum_required(VERSION 2.8.11)
  2. project(amathutils_lib) # autoware math utility
  3. find_package(autoware_build_flags REQUIRED)
  4. find_package(Eigen3 REQUIRED)
  5. if (NOT EIGEN3_FOUND)
  6. # Fallback to cmake_modules
  7. find_package(cmake_modules REQUIRED)
  8. find_package(Eigen REQUIRED)
  9. set(EIGEN3_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
  10. set(EIGEN3_LIBRARIES ${EIGEN_LIBRARIES}) # Not strictly necessary as Eigen is head only
  11. # Possibly map additional variables to the EIGEN3_ prefix.
  12. else ()
  13. set(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
  14. endif ()
  15. find_package(catkin REQUIRED COMPONENTS
  16. autoware_msgs
  17. roscpp
  18. roslint
  19. tf
  20. tf2
  21. )
  22. set(CMAKE_CXX_FLAGS "-O2 -Wall ${CMAKE_CXX_FLAGS}")
  23. catkin_package(
  24. INCLUDE_DIRS include
  25. LIBRARIES amathutils_lib
  26. CATKIN_DEPENDS
  27. autoware_msgs
  28. tf
  29. tf2
  30. )
  31. include_directories(
  32. include
  33. ${catkin_INCLUDE_DIRS}
  34. ${EIGEN3_INCLUDE_DIR}
  35. )
  36. add_library(amathutils_lib
  37. src/Amathutils.cpp
  38. src/kalman_filter.cpp
  39. src/time_delay_kalman_filter.cpp
  40. src/butterworth_filter.cpp
  41. )
  42. target_link_libraries(amathutils_lib
  43. ${catkin_LIBRARIES}
  44. )
  45. add_dependencies(amathutils_lib
  46. ${catkin_EXPORTED_TARGETS}
  47. )
  48. install(DIRECTORY include/${PROJECT_NAME}/
  49. DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
  50. FILES_MATCHING PATTERN "*.hpp"
  51. )
  52. install(TARGETS amathutils_lib
  53. ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  54. LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  55. RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
  56. )
  57. file(GLOB_RECURSE ROSLINT_FILES
  58. LIST_DIRECTORIES false
  59. *.cpp *.h *.hpp
  60. )
  61. list(APPEND ROSLINT_CPP_OPTS "--extensions=cc,h,hpp,cpp,cu,cuh" "--filter=-build/c++11,-runtime/references")
  62. roslint_cpp(${ROSLINT_FILES})
  63. if(CATKIN_ENABLE_TESTING)
  64. find_package(rostest REQUIRED)
  65. add_rostest_gtest(amathutils-test test/test_amathutils_lib.test test/src/test_amathutils_lib.cpp)
  66. target_link_libraries(amathutils-test ${catkin_LIBRARIES} amathutils_lib)
  67. add_rostest_gtest(test-kalman_filter
  68. test/test_kalman_filter.test
  69. test/src/test_kalman_filter.cpp
  70. src/kalman_filter.cpp
  71. src/time_delay_kalman_filter.cpp
  72. )
  73. target_link_libraries(test-kalman_filter ${catkin_LIBRARIES})
  74. add_rostest_gtest(test-butterworth_filter
  75. test/test_butterworth_filter.test
  76. test/src/test_butterworth_filter.cpp
  77. src/butterworth_filter.cpp
  78. )
  79. target_link_libraries(test-butterworth_filter ${catkin_LIBRARIES})
  80. roslint_add_test()
  81. endif()