diff --git a/CMakeLists.txt b/CMakeLists.txt index b800e66..da1950f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,13 +16,17 @@ endif() option(BUILD_SHARED_LIBS "Build shared libraries" ON) +include(GenerateExportHeader) add_library(rsl src/parameter_validators.cpp src/random.cpp ) add_library(rsl::rsl ALIAS rsl) target_compile_features(rsl PUBLIC cxx_std_17) -target_include_directories(rsl PUBLIC $) +target_include_directories(rsl PUBLIC + $ + $ +) target_link_libraries(rsl PUBLIC Eigen3::Eigen fmt::fmt @@ -30,6 +34,8 @@ target_link_libraries(rsl PUBLIC tcb_span::tcb_span tl_expected::tl_expected ) +set_target_properties(rsl PROPERTIES CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN YES) +generate_export_header(rsl EXPORT_FILE_NAME include/rsl/export.hpp) add_subdirectory(docs) @@ -41,7 +47,7 @@ endif() include(CMakePackageConfigHelpers) install( - DIRECTORY include/ + DIRECTORY include/ ${PROJECT_BINARY_DIR}/include/ DESTINATION include/rsl ) install( diff --git a/include/rsl/parameter_validators.hpp b/include/rsl/parameter_validators.hpp index 72404e5..1c8c702 100644 --- a/include/rsl/parameter_validators.hpp +++ b/include/rsl/parameter_validators.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -298,7 +299,7 @@ template /** * @brief Convert the result of a validator function into a SetParametersResult msg */ -[[nodiscard]] auto to_parameter_result_msg(tl::expected const& result) +[[nodiscard]] RSL_EXPORT auto to_parameter_result_msg(tl::expected const& result) -> rcl_interfaces::msg::SetParametersResult; } // namespace rsl diff --git a/include/rsl/random.hpp b/include/rsl/random.hpp index 293f403..e431d7f 100644 --- a/include/rsl/random.hpp +++ b/include/rsl/random.hpp @@ -1,5 +1,7 @@ #pragma once +#include + #include #include #include @@ -22,7 +24,7 @@ namespace rsl { * * @return Seeded random number generator */ -auto rng(std::seed_seq seed_sequence = {}) -> std::mt19937&; +RSL_EXPORT auto rng(std::seed_seq seed_sequence = {}) -> std::mt19937&; /** * @brief Get a uniform real number in a given range @@ -63,6 +65,6 @@ template * @brief Generate a random unit quaternion of doubles * @return Random unit quaternion */ -[[nodiscard]] auto random_unit_quaternion() -> Eigen::Quaterniond; +[[nodiscard]] RSL_EXPORT auto random_unit_quaternion() -> Eigen::Quaterniond; } // namespace rsl