Skip to content

Instantly share code, notes, and snippets.

@AndreasAZiegler
Created July 20, 2021 07:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndreasAZiegler/c1c8b7a88a02bcf87a88dcfd969e8fa6 to your computer and use it in GitHub Desktop.
Save AndreasAZiegler/c1c8b7a88a02bcf87a88dcfd969e8fa6 to your computer and use it in GitHub Desktop.
ball_tracker/CMakeLists.txt
cmake_minimum_required(VERSION 3.0.2)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
project(
ball_tracker
VERSION 0.1.0
DESCRIPTION ""
LANGUAGES CXX)
find_package(Eigen3 REQUIRED NO_MODULE)
find_package(catkin REQUIRED COMPONENTS prophesee_event_msgs)
add_library(
${PROJECT_NAME}
src/precomputed_bins.cpp src/particle.cpp src/particle_filter.cpp
src/region_of_interest.cpp src/ball_tracker.cpp)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
target_link_libraries(${PROJECT_NAME} Eigen3::Eigen ${catkin_LIBRARIES})
target_include_directories(
${PROJECT_NAME}
PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include> ${catkin_INCLUDE_DIRS}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
target_compile_options(
${PROJECT_NAME}
PRIVATE $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
-pipe
-march=native
-Wall
-Wextra
$<$<CONFIG:Release>:-O3>>
$<$<CONFIG:Debug>:-g
-ggdb3
-Og>>
$<$<CXX_COMPILER_ID:MSVC>:
$<$<CONFIG:Debug>:/Od
/Wall
/Zi>>)
include(GenerateExportHeader)
generate_export_header(${PROJECT_NAME})
set_target_properties(
${PROJECT_NAME}
PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include(GNUInstallDirs)
install(
TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ball_tracker
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
EXPORT ${PROJECT_NAME}-targets
FILE ${PROJECT_NAME}-targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ball_tracker)
include(CMakePackageConfigHelpers)
configure_package_config_file(
${CMAKE_SOURCE_DIR}/cmake/ball_tracker-config.cmake.in
${CMAKE_BINARY_DIR}/cmake/ball_tracker-config.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ball_tracker)
write_basic_package_version_file(
${CMAKE_BINARY_DIR}/cmake/ball_tracker-config-version.cmake
VERSION ${POLY_EXPLORATION_VERSION}
COMPATIBILITY AnyNewerVersion)
install(FILES ${CMAKE_BINARY_DIR}/cmake/ball_tracker-config.cmake
${CMAKE_BINARY_DIR}/cmake/ball_tracker-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ball_tracker)
export(
EXPORT ball_tracker-targets
FILE ${CMAKE_BINARY_DIR}/cmake/ball_tracker-targets.cmake
NAMESPACE ${PROJECT_NAME}::)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment