cmake_minimum_required(VERSION 3.14) project(odomety VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) include(GNUInstallDirs) find_package(Boost REQUIRED) add_library(odom_differential src/odom_differential.cpp ) target_include_directories(odom_differential PUBLIC $ $ ${Boost_INCLUDE_DIRS} ) target_compile_options(odom_differential PRIVATE -Wall -Wextra -Wpedantic) add_executable(odomety_demo src/main.cpp ) target_link_libraries(odomety_demo PRIVATE odom_differential) target_compile_options(odomety_demo PRIVATE -Wall -Wextra -Wpedantic) enable_testing() add_executable(odomety_test test/odom_differential_test.cpp ) target_link_libraries(odomety_test PRIVATE odom_differential) target_compile_options(odomety_test PRIVATE -Wall -Wextra -Wpedantic) add_test(NAME odom_differential_test COMMAND odomety_test) # --------------------------------------------------------------------------- # Install # --------------------------------------------------------------------------- install(TARGETS odom_differential odomety_demo EXPORT odometyTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp" ) install(EXPORT odometyTargets FILE odometyTargets.cmake NAMESPACE odomety:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/odomety ) include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/odometyConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/odometyConfig.cmake" "include(CMakeFindDependencyMacro) find_dependency(Boost REQUIRED) include(\"\${CMAKE_CURRENT_LIST_DIR}/odometyTargets.cmake\") ") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/odometyConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/odometyConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/odomety )