From cb87b65d4cb99e43507a7bd90840d49133077208 Mon Sep 17 00:00:00 2001 From: sanson-robotics Date: Thu, 10 Feb 2022 20:15:18 +0100 Subject: [PATCH 1/3] Added CMakeLists to the project --- CMakeLists.txt | 69 +++++++++++++++++++++++++++++++++++++ cmake/splineConfig.cmake.in | 6 ++++ {src => include}/spline.h | 0 3 files changed, 75 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/splineConfig.cmake.in rename {src => include}/spline.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..93c3570 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,69 @@ +cmake_minimum_required(VERSION 3.8 FATAL_ERROR) +project(spline LANGUAGES CXX) + +include(GNUInstallDirs) +set(PACKAGE_NAME spline) +set(USING_PYTHON3 True) +set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) +set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries") +set(INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables") +set(INSTALL_INCLUDE_DIR include CACHE PATH + "Installation directory for header files") + +foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + +# Library target +add_library(spline INTERFACE) +target_include_directories(spline + INTERFACE + $ + $ +) +target_compile_features(spline INTERFACE cxx_std_17) +target_link_libraries(spline INTERFACE) + + + +install(TARGETS spline + EXPORT spline-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/spline" +) + +# Install targets file +install(EXPORT spline-targets + FILE ${PACKAGE_NAME}Targets.cmake + DESTINATION ${INSTALL_CMAKE_DIR}/cmake/spline +) + +# Install splineConfig.cmake +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PACKAGE_NAME}Config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake + INSTALL_DESTINATION ${INSTALL_CMAKE_DIR}/cmake/spline +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake + DESTINATION ${INSTALL_CMAKE_DIR}/cmake/spline +) + +export(TARGETS spline + FILE ${PACKAGE_NAME}Config.cmake) + +# Install headers +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/spline.h" + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + + + +set(CMAKE_EXPORT_PACKAGE_REGISTRY ON) +export(PACKAGE spline) diff --git a/cmake/splineConfig.cmake.in b/cmake/splineConfig.cmake.in new file mode 100644 index 0000000..a5cc6e6 --- /dev/null +++ b/cmake/splineConfig.cmake.in @@ -0,0 +1,6 @@ +get_filename_component(spline_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + +include("${spline_CMAKE_DIR}/splineTargets.cmake") + +get_target_property(spline_INCLUDE_DIRS spline INTERFACE_INCLUDE_DIRECTORIES) + diff --git a/src/spline.h b/include/spline.h similarity index 100% rename from src/spline.h rename to include/spline.h From 90d5b441f674f38042ba4cb3e179b335ea49ed0f Mon Sep 17 00:00:00 2001 From: sanson-robotics Date: Thu, 10 Feb 2022 20:25:03 +0100 Subject: [PATCH 2/3] Removed extra ; --- include/spline.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/spline.h b/include/spline.h index e5b186d..75eb92f 100644 --- a/include/spline.h +++ b/include/spline.h @@ -597,7 +597,7 @@ std::vector spline::solve(double y, bool ignore_extrapolation) const } return x; -}; +} #ifdef HAVE_SSTREAM From 1b5d4bad29082997076b264de84ca6d46c2ae6ab Mon Sep 17 00:00:00 2001 From: sanson-robotics Date: Fri, 11 Feb 2022 04:04:55 +0100 Subject: [PATCH 3/3] Added destructor --- include/spline.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/spline.h b/include/spline.h index 75eb92f..bedf2a4 100644 --- a/include/spline.h +++ b/include/spline.h @@ -109,6 +109,7 @@ class spline this->make_monotonic(); } } + ~spline() = default; // modify boundary conditions: if called it must be before set_points()