diff --git a/CMakeLists.txt b/CMakeLists.txt index d0d3be9..6b95c83 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ endif() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) find_package( Boost REQUIRED COMPONENTS system ) +find_package(g3log REQUIRED) # Actually not using full SDK, just the header files # in thirdparty/Oculus @@ -46,63 +47,61 @@ if (FIPS_CONFIG) fips_finish() else() - # == ROS / Catkin-specific section ================================= - project(liboculus) - - find_package(catkin REQUIRED - #cmake_modules - g3log_ros ) - - catkin_package( - CATKIN_DEPENDS g3log_ros - INCLUDE_DIRS include thirdparty - LIBRARIES liboculus_LIB ) - - add_compile_options(-std=c++14) - - include_directories( - include - thirdparty - ${catkin_INCLUDE_DIRS} ) - - set(oculus_SRCS - lib/DataRx.cpp - lib/SonarConfiguration.cpp - lib/SonarStatus.cpp - lib/StatusRx.cpp - lib/SonarPlayer.cpp - lib/OculusMessageHandler.cpp - lib/SimpleFireMessage.cpp - lib/IoServiceThread.cpp ) - - - add_library(liboculus_LIB ${oculus_SRCS}) - target_link_libraries(liboculus_LIB ${catkin_LIBRARIES}) - - install(TARGETS liboculus_LIB - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}) - - ## Install headers - install(DIRECTORY include/${PROJECT_NAME}/ thirdparty/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} - FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" - PATTERN ".git" EXCLUDE) - - if (CATKIN_ENABLE_TESTING) - add_definitions(-DTEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}/test/data") - include_directories( test/data/ ) - - file(GLOB oculus_test_SRCS - test/unit/*cpp ) - - catkin_add_gtest(oculus_test ${oculus_test_SRCS}) - - target_link_libraries(oculus_test ${catkin_LIBRARIES} - liboculus_LIB - Boost::system ) + # == ament/ROS2 section ================================= + if(NOT FIPS_CONFIG) + find_package(ament_cmake REQUIRED) + find_package(Boost REQUIRED COMPONENTS system) + find_package(g3log_ros REQUIRED) + + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + add_compile_options(-std=c++17) + + include_directories( + include + thirdparty + ${CMAKE_INSTALL_PREFIX}/include/g3log + ) + + set(oculus_SRCS + lib/DataRx.cpp + lib/SonarConfiguration.cpp + lib/SonarStatus.cpp + lib/StatusRx.cpp + lib/SonarPlayer.cpp + lib/OculusMessageHandler.cpp + lib/SimpleFireMessage.cpp + lib/IoServiceThread.cpp + ) + + add_library(oculus SHARED ${oculus_SRCS}) + target_link_libraries(oculus + Boost::system + g3log_ros::g3log_ros + g3log + ) + ament_target_dependencies(oculus Boost g3log_ros) + + install( + TARGETS oculus + EXPORT oculus + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) + + install( + DIRECTORY include/${PROJECT_NAME}/ thirdparty/ + DESTINATION include + FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" + PATTERN ".git" EXCLUDE + ) + + ament_export_targets(oculus HAS_LIBRARY_TARGET) + ament_export_include_directories(include) + ament_export_libraries(oculus) + + ament_package() + return() endif() - - -endif() +endif() \ No newline at end of file diff --git a/package.xml b/package.xml index 70b6c7d..c804ac1 100644 --- a/package.xml +++ b/package.xml @@ -8,7 +8,7 @@ BSD - catkin + ament_cmake g3log_ros