initial commit
This commit is contained in:
95
ov_core/cmake/ROS1.cmake
Normal file
95
ov_core/cmake/ROS1.cmake
Normal file
@@ -0,0 +1,95 @@
|
||||
cmake_minimum_required(VERSION 3.3)
|
||||
|
||||
# Find ROS build system
|
||||
find_package(catkin QUIET COMPONENTS roscpp rosbag sensor_msgs cv_bridge)
|
||||
|
||||
# Describe ROS project
|
||||
option(ENABLE_ROS "Enable or disable building with ROS (if it is found)" ON)
|
||||
if (catkin_FOUND AND ENABLE_ROS)
|
||||
add_definitions(-DROS_AVAILABLE=1)
|
||||
catkin_package(
|
||||
CATKIN_DEPENDS roscpp rosbag sensor_msgs cv_bridge
|
||||
INCLUDE_DIRS src/
|
||||
LIBRARIES ov_core_lib
|
||||
)
|
||||
else ()
|
||||
add_definitions(-DROS_AVAILABLE=0)
|
||||
message(WARNING "BUILDING WITHOUT ROS!")
|
||||
include(GNUInstallDirs)
|
||||
set(CATKIN_PACKAGE_LIB_DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(CATKIN_PACKAGE_BIN_DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
set(CATKIN_GLOBAL_INCLUDE_DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
endif ()
|
||||
|
||||
# Include our header files
|
||||
include_directories(
|
||||
src
|
||||
${EIGEN3_INCLUDE_DIR}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${catkin_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Set link libraries used by all binaries
|
||||
list(APPEND thirdparty_libraries
|
||||
${Boost_LIBRARIES}
|
||||
${OpenCV_LIBRARIES}
|
||||
${catkin_LIBRARIES}
|
||||
)
|
||||
|
||||
##################################################
|
||||
# Make the core library
|
||||
##################################################
|
||||
|
||||
list(APPEND LIBRARY_SOURCES
|
||||
src/dummy.cpp
|
||||
src/sim/BsplineSE3.cpp
|
||||
src/track/TrackBase.cpp
|
||||
src/track/TrackAruco.cpp
|
||||
src/track/TrackDescriptor.cpp
|
||||
src/track/TrackKLT.cpp
|
||||
src/track/TrackSIM.cpp
|
||||
src/types/Landmark.cpp
|
||||
src/feat/Feature.cpp
|
||||
src/feat/FeatureInitializer.cpp
|
||||
src/utils/print.cpp
|
||||
)
|
||||
file(GLOB_RECURSE LIBRARY_HEADERS "src/*.h")
|
||||
add_library(ov_core_lib SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
|
||||
target_link_libraries(ov_core_lib ${thirdparty_libraries})
|
||||
target_include_directories(ov_core_lib PUBLIC src/)
|
||||
install(TARGETS ov_core_lib
|
||||
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||
)
|
||||
install(DIRECTORY src/
|
||||
DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION}
|
||||
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
||||
)
|
||||
|
||||
##################################################
|
||||
# Make binary files!
|
||||
##################################################
|
||||
|
||||
if (catkin_FOUND AND ENABLE_ROS)
|
||||
|
||||
add_executable(test_tracking src/test_tracking.cpp)
|
||||
target_link_libraries(test_tracking ov_core_lib ${thirdparty_libraries})
|
||||
install(TARGETS test_tracking
|
||||
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||
)
|
||||
|
||||
endif ()
|
||||
|
||||
add_executable(test_webcam src/test_webcam.cpp)
|
||||
target_link_libraries(test_webcam ov_core_lib ${thirdparty_libraries})
|
||||
install(TARGETS test_webcam
|
||||
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||
)
|
||||
|
||||
|
||||
|
||||
78
ov_core/cmake/ROS2.cmake
Normal file
78
ov_core/cmake/ROS2.cmake
Normal file
@@ -0,0 +1,78 @@
|
||||
cmake_minimum_required(VERSION 3.3)
|
||||
|
||||
# Find ros dependencies
|
||||
find_package(ament_cmake REQUIRED)
|
||||
find_package(rclcpp REQUIRED)
|
||||
find_package(cv_bridge REQUIRED)
|
||||
|
||||
# Describe ROS project
|
||||
option(ENABLE_ROS "Enable or disable building with ROS (if it is found)" ON)
|
||||
if (NOT ENABLE_ROS)
|
||||
message(FATAL_ERROR "Build with ROS1.cmake if you don't have ROS.")
|
||||
endif ()
|
||||
add_definitions(-DROS_AVAILABLE=2)
|
||||
|
||||
# Include our header files
|
||||
include_directories(
|
||||
src
|
||||
${EIGEN3_INCLUDE_DIR}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# Set link libraries used by all binaries
|
||||
list(APPEND thirdparty_libraries
|
||||
${Boost_LIBRARIES}
|
||||
${OpenCV_LIBRARIES}
|
||||
)
|
||||
|
||||
##################################################
|
||||
# Make the core library
|
||||
##################################################
|
||||
|
||||
list(APPEND LIBRARY_SOURCES
|
||||
src/dummy.cpp
|
||||
src/sim/BsplineSE3.cpp
|
||||
src/track/TrackBase.cpp
|
||||
src/track/TrackAruco.cpp
|
||||
src/track/TrackDescriptor.cpp
|
||||
src/track/TrackKLT.cpp
|
||||
src/track/TrackSIM.cpp
|
||||
src/types/Landmark.cpp
|
||||
src/feat/Feature.cpp
|
||||
src/feat/FeatureInitializer.cpp
|
||||
src/utils/print.cpp
|
||||
)
|
||||
file(GLOB_RECURSE LIBRARY_HEADERS "src/*.h")
|
||||
add_library(ov_core_lib SHARED ${LIBRARY_SOURCES} ${LIBRARY_HEADERS})
|
||||
ament_target_dependencies(ov_core_lib rclcpp cv_bridge)
|
||||
target_link_libraries(ov_core_lib ${thirdparty_libraries})
|
||||
target_include_directories(ov_core_lib PUBLIC src/)
|
||||
install(TARGETS ov_core_lib
|
||||
LIBRARY DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
PUBLIC_HEADER DESTINATION include
|
||||
)
|
||||
install(DIRECTORY src/
|
||||
DESTINATION include
|
||||
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
|
||||
)
|
||||
ament_export_include_directories(include)
|
||||
ament_export_libraries(ov_core_lib)
|
||||
|
||||
##################################################
|
||||
# Make binary files!
|
||||
##################################################
|
||||
|
||||
# TODO: UPGRADE THIS TO ROS2 AS ANOTHER FILE!!
|
||||
#if (catkin_FOUND AND ENABLE_ROS)
|
||||
# add_executable(test_tracking src/test_tracking.cpp)
|
||||
# target_link_libraries(test_tracking ov_core_lib ${thirdparty_libraries})
|
||||
#endif ()
|
||||
|
||||
add_executable(test_webcam src/test_webcam.cpp)
|
||||
ament_target_dependencies(test_webcam rclcpp cv_bridge)
|
||||
target_link_libraries(test_webcam ov_core_lib ${thirdparty_libraries})
|
||||
install(TARGETS test_webcam DESTINATION lib/${PROJECT_NAME})
|
||||
|
||||
# finally define this as the package
|
||||
ament_package()
|
||||
Reference in New Issue
Block a user