From 70cd59d1e9f831c8c0b5d0bd379218ff5db8314b Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 24 Dec 2025 16:53:50 +0100 Subject: feat: lib: add CMake build support. Signed-off-by: Amlal El Mahrouss --- CMakeLists.txt | 13 +++++++++++++ include/ocl/fix/parser.hpp | 13 ++++++++----- src/fix/parser_impl.cpp | 2 +- test/fix_basic/CMakeLists.txt | 4 ++-- 4 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..343aee1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,13 @@ +# PURPOSE: FIX module CMakeLists. + +cmake_minimum_required(VERSION 3.10) +project(ocl_fix) + +find_package(Boost REQUIRED) + +add_library(ocl_fix src/fix/parser_impl.cpp) +target_link_libraries(ocl_fix boost_core) +install(TARGETS ocl_fix DESTINATION lib) + +set_property(TARGET ocl_fix PROPERTY CXX_STANDARD 20) + diff --git a/include/ocl/fix/parser.hpp b/include/ocl/fix/parser.hpp index c288869..ffac652 100644 --- a/include/ocl/fix/parser.hpp +++ b/include/ocl/fix/parser.hpp @@ -26,7 +26,6 @@ namespace ocl::fix using tag_type = std::string; using value_type = std::string; - struct range final { char* bytes_{nullptr}; @@ -97,14 +96,18 @@ namespace ocl::fix /// @brief visitor object which returns a fix::range_buffer instance. class visitor final { - struct impl; - std::unique_ptr impl_; + struct impl; + std::unique_ptr impl_; + +#ifndef OCL_FIX_HAS_IMPL + struct impl {}; +#endif public: visitor(); - ~visitor(); + ~visitor(); - /// \brief Alias of visit. + /// \brief Alias of visit. range_buffer operator()(const std::string& in); /// @brief Visits a FIX message and parse it into a range_buffer object. diff --git a/src/fix/parser_impl.cpp b/src/fix/parser_impl.cpp index cc18035..b776dcd 100644 --- a/src/fix/parser_impl.cpp +++ b/src/fix/parser_impl.cpp @@ -78,7 +78,7 @@ namespace ocl::fix } }; - visitor::visitor() = default; + visitor::visitor() = default; visitor::~visitor() = default; /// \brief Alias of visit. diff --git a/test/fix_basic/CMakeLists.txt b/test/fix_basic/CMakeLists.txt index 6a92644..a173485 100644 --- a/test/fix_basic/CMakeLists.txt +++ b/test/fix_basic/CMakeLists.txt @@ -13,8 +13,8 @@ FetchContent_MakeAvailable(googletest) enable_testing() -add_executable(FIXTestBasic fix.test.cpp ../../src/fix/parser_impl.cpp) -target_link_libraries(FIXTestBasic gtest_main) +add_executable(FIXTestBasic fix.test.cpp) +target_link_libraries(FIXTestBasic gtest_main ocl_fix) set_property(TARGET FIXTestBasic PROPERTY CXX_STANDARD 20) target_include_directories(FIXTestBasic PUBLIC ../../include/ocl) -- cgit v1.2.3