From 12e5d77afbf6a456008111e92a410d4d55cd3912 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:02:36 +0200 Subject: [PATCH 01/12] Bump version to 0.2.0 and update CMake configuration for installation and generated files --- CMakeLists.txt | 58 +++++++++++++++++++ Cargo.toml | 2 +- cmake/fluvio_client_cppConfig.cmake.in | 3 + fluvio_client_cppConfig.cmake | 10 ---- .../fluvio_client_c.h} | 0 .../fluvio_client_cpp/fluvio._client_cpp.hpp | 3 + tests/test_auth_c.c | 2 +- tests/test_c.c | 2 +- 8 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 cmake/fluvio_client_cppConfig.cmake.in delete mode 100644 fluvio_client_cppConfig.cmake rename include/{fluvio.h => fluvio_client_c/fluvio_client_c.h} (100%) create mode 100644 include/fluvio_client_cpp/fluvio._client_cpp.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e2327b..62aeae0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,21 @@ list(GET CXX_CORE_HEADER 0 CXX_CORE_HDR) get_filename_component(CXX_CORE_DIR ${CXX_CORE_HDR} DIRECTORY) get_filename_component(CXX_ROOT_DIR ${CXX_CORE_DIR} DIRECTORY) +set(GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated_include/fluvio_client_cpp) +file(MAKE_DIRECTORY ${GENERATED_INCLUDE_DIR}/rust) + +configure_file( + ${CXXBRIDGE_HEADER} + ${GENERATED_INCLUDE_DIR}/lib.rs.h + COPYONLY +) + +configure_file( + ${CXX_CORE_HDR} + ${GENERATED_INCLUDE_DIR}/rust/cxx.h + COPYONLY +) + # Producer Test add_executable(test_producer tests/test_producer.cpp ${CXXBRIDGE_SOURCES}) target_include_directories(test_producer PRIVATE @@ -95,3 +110,46 @@ target_link_libraries(test_auth_c PRIVATE stdc++ pthread dl m ) add_test(NAME fluvio_auth_c_test COMMAND test_auth_c) + +# Installation +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +install(DIRECTORY + include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}/generated_include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install(FILES + ${FLUVIO_STATIC_LIB} + DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(TARGETS fluvio_client_cpp + EXPORT fluvio_client_cppTargets +) + +install(EXPORT fluvio_client_cppTargets + FILE fluvio_client_cppTargets.cmake + NAMESPACE fluvio_client_cpp:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp +) + +configure_package_config_file( + cmake/fluvio_client_cppConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/fluvio_client_cppConfig.cmake + INSTALL_DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/fluvio_client_cppConfig.cmake + DESTINATION + ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp +) + diff --git a/Cargo.toml b/Cargo.toml index 20c6d23..8c592d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fluvio-client-cpp" -version = "0.1.0" +version = "0.2.0" edition = "2024" [lib] diff --git a/cmake/fluvio_client_cppConfig.cmake.in b/cmake/fluvio_client_cppConfig.cmake.in new file mode 100644 index 0000000..3e812b4 --- /dev/null +++ b/cmake/fluvio_client_cppConfig.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/fluvio_client_cppTargets.cmake") \ No newline at end of file diff --git a/fluvio_client_cppConfig.cmake b/fluvio_client_cppConfig.cmake deleted file mode 100644 index e29bd9d..0000000 --- a/fluvio_client_cppConfig.cmake +++ /dev/null @@ -1,10 +0,0 @@ -include(CMakeFindDependencyMacro) - -add_library(fluvio_client_cpp::fluvio_client_cpp STATIC IMPORTED) - -set_target_properties(fluvio_client_cpp::fluvio_client_cpp PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/target/debug/libfluvio_client_cpp.a" - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/include" -) - -set_property(TARGET fluvio_client_cpp::fluvio_client_cpp APPEND PROPERTY INTERFACE_LINK_LIBRARIES pthread dl m) diff --git a/include/fluvio.h b/include/fluvio_client_c/fluvio_client_c.h similarity index 100% rename from include/fluvio.h rename to include/fluvio_client_c/fluvio_client_c.h diff --git a/include/fluvio_client_cpp/fluvio._client_cpp.hpp b/include/fluvio_client_cpp/fluvio._client_cpp.hpp new file mode 100644 index 0000000..523a9e1 --- /dev/null +++ b/include/fluvio_client_cpp/fluvio._client_cpp.hpp @@ -0,0 +1,3 @@ +#pragma once + +#include "lib.rs.h" \ No newline at end of file diff --git a/tests/test_auth_c.c b/tests/test_auth_c.c index b48db4c..5e5f234 100644 --- a/tests/test_auth_c.c +++ b/tests/test_auth_c.c @@ -1,4 +1,4 @@ -#include "fluvio.h" +#include "fluvio_client_c/fluvio_client_c.h" #include int main() { diff --git a/tests/test_c.c b/tests/test_c.c index 00c4d78..82efcf5 100644 --- a/tests/test_c.c +++ b/tests/test_c.c @@ -1,4 +1,4 @@ -#include "fluvio.h" +#include "fluvio_client_c/fluvio_client_c.h" #include #include From 18e83a2ea53f01dddfd3a524e83ef6ecb061b1bb Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:25:19 +0200 Subject: [PATCH 02/12] Refactor CMake configuration to streamline test executables and link against fluvio_client_cpp --- CMakeLists.txt | 61 ++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 62aeae0..f4412b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ set(RUST_TARGET_DIR "target/debug") file(GLOB_RECURSE CXXBRIDGE_HEADERS "${RUST_TARGET_DIR}/build/*lib.rs.h") file(GLOB_RECURSE CXXBRIDGE_SOURCES_ALL "${RUST_TARGET_DIR}/build/*lib.rs.cc") file(GLOB_RECURSE CXX_CORE_HEADER "${RUST_TARGET_DIR}/build/*/cxx.h") -file(GLOB RUST_STATIC_LIB "${RUST_TARGET_DIR}/libfluvio*.a") +file(GLOB_RECURSE RUST_STATIC_LIB "${RUST_TARGET_DIR}/build/*/out/libfluvio*.a") list(GET RUST_STATIC_LIB 0 FLUVIO_STATIC_LIB) list(GET CXXBRIDGE_SOURCES_ALL 0 CXXBRIDGE_SOURCES) @@ -42,46 +42,37 @@ configure_file( COPYONLY ) -# Producer Test -add_executable(test_producer tests/test_producer.cpp ${CXXBRIDGE_SOURCES}) -target_include_directories(test_producer PRIVATE - ${CXXBRIDGE_HDR_DIR}/../.. - ${CXX_ROOT_DIR} -) -target_link_libraries(test_producer PRIVATE - ${FLUVIO_STATIC_LIB} - pthread dl m +add_library(fluvio_client_cpp STATIC ${CXXBRIDGE_SOURCES}) + +target_include_directories(fluvio_client_cpp + PUBLIC + $ + $ + $ + + PRIVATE + ${CXXBRIDGE_HDR_DIR}/../.. + ${CXX_ROOT_DIR} ) + +# Producer Test +add_executable(test_producer tests/test_producer.cpp) +target_link_libraries(test_producer PRIVATE fluvio_client_cpp) add_test(NAME fluvio_producer_test COMMAND test_producer) # Consumer Test -add_executable(test_consumer tests/test_consumer.cpp ${CXXBRIDGE_SOURCES}) -target_include_directories(test_consumer PRIVATE - ${CXXBRIDGE_HDR_DIR}/../.. - ${CXX_ROOT_DIR} -) -target_link_libraries(test_consumer PRIVATE - ${FLUVIO_STATIC_LIB} - pthread dl m -) +add_executable(test_consumer tests/test_consumer.cpp) +target_link_libraries(test_consumer PRIVATE fluvio_client_cpp) add_test(NAME fluvio_consumer_test COMMAND test_consumer) # Admin Test -add_executable(test_admin tests/test_admin.cpp ${CXXBRIDGE_SOURCES}) -target_include_directories(test_admin PRIVATE ${CXXBRIDGE_HDR_DIR}/../.. ${CXX_ROOT_DIR}) -target_link_libraries(test_admin PRIVATE - ${FLUVIO_STATIC_LIB} - pthread dl m -) +add_executable(test_admin tests/test_admin.cpp) +target_link_libraries(test_admin PRIVATE fluvio_client_cpp) add_test(NAME fluvio_admin_test COMMAND test_admin) # Config Test -add_executable(test_config tests/test_config.cpp ${CXXBRIDGE_SOURCES}) -target_include_directories(test_config PRIVATE ${CXXBRIDGE_HDR_DIR}/../.. ${CXX_ROOT_DIR}) -target_link_libraries(test_config PRIVATE - ${FLUVIO_STATIC_LIB} - pthread dl m -) +add_executable(test_config tests/test_config.cpp) +target_link_libraries(test_config PRIVATE fluvio_client_cpp) add_test(NAME fluvio_config_test COMMAND test_config) # Pure C Native Test @@ -94,12 +85,8 @@ target_link_libraries(test_c PRIVATE add_test(NAME fluvio_c_native_test COMMAND test_c) # Auth E2E CXX Test -add_executable(test_auth tests/test_auth.cpp ${CXXBRIDGE_SOURCES}) -target_include_directories(test_auth PRIVATE ${CXXBRIDGE_HDR_DIR}/../.. ${CXX_ROOT_DIR}) -target_link_libraries(test_auth PRIVATE - ${FLUVIO_STATIC_LIB} - pthread dl m -) +add_executable(test_auth tests/test_auth.cpp) +target_link_libraries(test_auth PRIVATE fluvio_client_cpp) add_test(NAME fluvio_auth_test COMMAND test_auth) # Auth E2E C Native Test From 72d96045534e68d32055fc9d0653f6ec65cec956 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:30:45 +0200 Subject: [PATCH 03/12] Update CMake configuration to install fluvio_client_cpp as ASTRAOS::fluvio_client_cpp --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f4412b2..cc2ba3d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ install(FILES DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -install(TARGETS fluvio_client_cpp +install(TARGETS ASTRAOS::fluvio_client_cpp EXPORT fluvio_client_cppTargets ) From c125758de34f72d9925cea65b876b1a9b3a61148 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:39:45 +0200 Subject: [PATCH 04/12] Add alias for fluvio_client_cpp and update installation targets --- CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc2ba3d..153c0b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,7 @@ configure_file( ) add_library(fluvio_client_cpp STATIC ${CXXBRIDGE_SOURCES}) +add_library(ASTRAOS::fluvio_client_cpp ALIAS fluvio_client_cpp) target_include_directories(fluvio_client_cpp PUBLIC @@ -117,13 +118,17 @@ install(FILES DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -install(TARGETS ASTRAOS::fluvio_client_cpp +install(TARGETS fluvio_client_cpp EXPORT fluvio_client_cppTargets + + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(EXPORT fluvio_client_cppTargets FILE fluvio_client_cppTargets.cmake - NAMESPACE fluvio_client_cpp:: + NAMESPACE ASTRAOS:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp ) From e5cc627f926c90fc71ca69588d7d64a5bc39d3d5 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:45:02 +0200 Subject: [PATCH 05/12] Rename fluvio._client_cpp.hpp to fluvio_client_cpp.hpp --- .../{fluvio._client_cpp.hpp => fluvio_client_cpp.hpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename include/fluvio_client_cpp/{fluvio._client_cpp.hpp => fluvio_client_cpp.hpp} (100%) diff --git a/include/fluvio_client_cpp/fluvio._client_cpp.hpp b/include/fluvio_client_cpp/fluvio_client_cpp.hpp similarity index 100% rename from include/fluvio_client_cpp/fluvio._client_cpp.hpp rename to include/fluvio_client_cpp/fluvio_client_cpp.hpp From 620f3cb0f516cd565b23d3c96c1ab57446b70c88 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:46:25 +0200 Subject: [PATCH 06/12] Update include statements to use new fluvio_client_cpp header structure --- tests/test_admin.cpp | 2 +- tests/test_auth.cpp | 3 +-- tests/test_auth_c.c | 2 +- tests/test_c.c | 2 +- tests/test_config.cpp | 2 +- tests/test_consumer.cpp | 3 +-- tests/test_producer.cpp | 3 +-- 7 files changed, 7 insertions(+), 10 deletions(-) diff --git a/tests/test_admin.cpp b/tests/test_admin.cpp index 95c6efa..e54b9c0 100644 --- a/tests/test_admin.cpp +++ b/tests/test_admin.cpp @@ -1,4 +1,4 @@ -#include "fluvio-client-cpp/src/lib.rs.h" +#include #include int main() { diff --git a/tests/test_auth.cpp b/tests/test_auth.cpp index 1d317e5..0cca3fc 100644 --- a/tests/test_auth.cpp +++ b/tests/test_auth.cpp @@ -1,6 +1,5 @@ -#include "fluvio-client-cpp/src/lib.rs.h" +#include #include -#include int main() { try { diff --git a/tests/test_auth_c.c b/tests/test_auth_c.c index 5e5f234..9aea09a 100644 --- a/tests/test_auth_c.c +++ b/tests/test_auth_c.c @@ -1,4 +1,4 @@ -#include "fluvio_client_c/fluvio_client_c.h" +#include #include int main() { diff --git a/tests/test_c.c b/tests/test_c.c index 82efcf5..0c69c90 100644 --- a/tests/test_c.c +++ b/tests/test_c.c @@ -1,4 +1,4 @@ -#include "fluvio_client_c/fluvio_client_c.h" +#include #include #include diff --git a/tests/test_config.cpp b/tests/test_config.cpp index 6f81809..4156b58 100644 --- a/tests/test_config.cpp +++ b/tests/test_config.cpp @@ -1,4 +1,4 @@ -#include "fluvio-client-cpp/src/lib.rs.h" +#include #include int main() { diff --git a/tests/test_consumer.cpp b/tests/test_consumer.cpp index 6a39f6f..c357bb9 100644 --- a/tests/test_consumer.cpp +++ b/tests/test_consumer.cpp @@ -1,5 +1,4 @@ -#include "fluvio-client-cpp/src/lib.rs.h" -#include "rust/cxx.h" +#include #include int main() { diff --git a/tests/test_producer.cpp b/tests/test_producer.cpp index e20efc8..cb934fc 100644 --- a/tests/test_producer.cpp +++ b/tests/test_producer.cpp @@ -1,5 +1,4 @@ -#include "fluvio-client-cpp/src/lib.rs.h" -#include "rust/cxx.h" +#include #include int main() { From f9a70ebeb9704a8bd137b1ab5c3cb459f47b68f5 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:24:22 +0200 Subject: [PATCH 07/12] Update C test executables to link against fluvio_client_cpp --- CMakeLists.txt | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 153c0b2..31b7a5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,11 +78,7 @@ add_test(NAME fluvio_config_test COMMAND test_config) # Pure C Native Test add_executable(test_c tests/test_c.c) -target_include_directories(test_c PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_link_libraries(test_c PRIVATE - ${FLUVIO_STATIC_LIB} - stdc++ pthread dl m -) +target_link_libraries(test_c PRIVATE fluvio_client_cpp) add_test(NAME fluvio_c_native_test COMMAND test_c) # Auth E2E CXX Test @@ -92,11 +88,7 @@ add_test(NAME fluvio_auth_test COMMAND test_auth) # Auth E2E C Native Test add_executable(test_auth_c tests/test_auth_c.c) -target_include_directories(test_auth_c PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) -target_link_libraries(test_auth_c PRIVATE - ${FLUVIO_STATIC_LIB} - stdc++ pthread dl m -) +target_link_libraries(test_auth_c PRIVATE fluvio_client_cpp) add_test(NAME fluvio_auth_c_test COMMAND test_auth_c) # Installation From 62bedb6f6fe92a90b22d6fc5f7a13b0493ab7d95 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:48:42 +0200 Subject: [PATCH 08/12] Update test executables to link against fluvio_client_cpp with static library --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 31b7a5f..d7736da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,37 +58,37 @@ target_include_directories(fluvio_client_cpp # Producer Test add_executable(test_producer tests/test_producer.cpp) -target_link_libraries(test_producer PRIVATE fluvio_client_cpp) +target_link_libraries(test_producer PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_producer_test COMMAND test_producer) # Consumer Test add_executable(test_consumer tests/test_consumer.cpp) -target_link_libraries(test_consumer PRIVATE fluvio_client_cpp) +target_link_libraries(test_consumer PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_consumer_test COMMAND test_consumer) # Admin Test add_executable(test_admin tests/test_admin.cpp) -target_link_libraries(test_admin PRIVATE fluvio_client_cpp) +target_link_libraries(test_admin PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_admin_test COMMAND test_admin) # Config Test add_executable(test_config tests/test_config.cpp) -target_link_libraries(test_config PRIVATE fluvio_client_cpp) +target_link_libraries(test_config PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_config_test COMMAND test_config) # Pure C Native Test add_executable(test_c tests/test_c.c) -target_link_libraries(test_c PRIVATE fluvio_client_cpp) +target_link_libraries(test_c PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_c_native_test COMMAND test_c) # Auth E2E CXX Test add_executable(test_auth tests/test_auth.cpp) -target_link_libraries(test_auth PRIVATE fluvio_client_cpp) +target_link_libraries(test_auth PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_auth_test COMMAND test_auth) # Auth E2E C Native Test add_executable(test_auth_c tests/test_auth_c.c) -target_link_libraries(test_auth_c PRIVATE fluvio_client_cpp) +target_link_libraries(test_auth_c PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) add_test(NAME fluvio_auth_c_test COMMAND test_auth_c) # Installation From 8518362ed3d8f926afccf83f01b230a4e89efc69 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 20:21:40 +0200 Subject: [PATCH 09/12] Update CMakeLists.txt to set static library path for fluvio_client_cpp --- CMakeLists.txt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7736da..c1c481b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,8 +17,7 @@ set(RUST_TARGET_DIR "target/debug") file(GLOB_RECURSE CXXBRIDGE_HEADERS "${RUST_TARGET_DIR}/build/*lib.rs.h") file(GLOB_RECURSE CXXBRIDGE_SOURCES_ALL "${RUST_TARGET_DIR}/build/*lib.rs.cc") file(GLOB_RECURSE CXX_CORE_HEADER "${RUST_TARGET_DIR}/build/*/cxx.h") -file(GLOB_RECURSE RUST_STATIC_LIB "${RUST_TARGET_DIR}/build/*/out/libfluvio*.a") -list(GET RUST_STATIC_LIB 0 FLUVIO_STATIC_LIB) +set(FLUVIO_STATIC_LIB "${CMAKE_CURRENT_SOURCE_DIR}/${RUST_TARGET_DIR}/libfluvio_client_cpp.a") list(GET CXXBRIDGE_SOURCES_ALL 0 CXXBRIDGE_SOURCES) list(GET CXXBRIDGE_HEADERS 0 CXXBRIDGE_HEADER) @@ -128,12 +127,11 @@ configure_package_config_file( cmake/fluvio_client_cppConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/fluvio_client_cppConfig.cmake INSTALL_DESTINATION - ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp + ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fluvio_client_cppConfig.cmake DESTINATION - ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp + ${CMAKE_INSTALL_LIBDIR}/cmake/fluvio_client_cpp ) - From 94ce00d2e28ef7c19fb0c7c45fe15002abda787d Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Wed, 8 Jul 2026 21:34:11 +0200 Subject: [PATCH 10/12] Update CMakeLists.txt to automatically provide the Rust static library to downstream repos --- CMakeLists.txt | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c1c481b..315f665 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,6 +44,14 @@ configure_file( add_library(fluvio_client_cpp STATIC ${CXXBRIDGE_SOURCES}) add_library(ASTRAOS::fluvio_client_cpp ALIAS fluvio_client_cpp) +target_link_libraries(fluvio_client_cpp + INTERFACE + $ + $ + pthread + ${CMAKE_DL_LIBS} +) + target_include_directories(fluvio_client_cpp PUBLIC $ @@ -57,37 +65,37 @@ target_include_directories(fluvio_client_cpp # Producer Test add_executable(test_producer tests/test_producer.cpp) -target_link_libraries(test_producer PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_producer PRIVATE fluvio_client_cpp) add_test(NAME fluvio_producer_test COMMAND test_producer) # Consumer Test add_executable(test_consumer tests/test_consumer.cpp) -target_link_libraries(test_consumer PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_consumer PRIVATE fluvio_client_cpp) add_test(NAME fluvio_consumer_test COMMAND test_consumer) # Admin Test add_executable(test_admin tests/test_admin.cpp) -target_link_libraries(test_admin PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_admin PRIVATE fluvio_client_cpp) add_test(NAME fluvio_admin_test COMMAND test_admin) # Config Test add_executable(test_config tests/test_config.cpp) -target_link_libraries(test_config PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_config PRIVATE fluvio_client_cpp) add_test(NAME fluvio_config_test COMMAND test_config) # Pure C Native Test add_executable(test_c tests/test_c.c) -target_link_libraries(test_c PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_c PRIVATE fluvio_client_cpp) add_test(NAME fluvio_c_native_test COMMAND test_c) # Auth E2E CXX Test add_executable(test_auth tests/test_auth.cpp) -target_link_libraries(test_auth PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_auth PRIVATE fluvio_client_cpp) add_test(NAME fluvio_auth_test COMMAND test_auth) # Auth E2E C Native Test add_executable(test_auth_c tests/test_auth_c.c) -target_link_libraries(test_auth_c PRIVATE fluvio_client_cpp ${FLUVIO_STATIC_LIB}) +target_link_libraries(test_auth_c PRIVATE fluvio_client_cpp) add_test(NAME fluvio_auth_c_test COMMAND test_auth_c) # Installation From e945740bc680f750c369dd99b923fe87c2b9fb65 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:16:26 +0200 Subject: [PATCH 11/12] Update README.md to include instructions for building fluvio_client_cpp from source --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 09fc2e9..d311765 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,20 @@ In your `CMakeLists.txt`, simply find the package and link it: ```cmake find_package(fluvio_client_cpp CONFIG REQUIRED) -target_link_libraries(main PRIVATE fluvio_client_cpp::fluvio_client_cpp) +target_link_libraries(main PRIVATE ASTRAOS::fluvio_client_cpp) +``` + +Alternatively, you can build the library from source by fetching it during the CMake configure step and building it as part of your project: + +```cmake +include(FetchContent) +FetchContent_Declare( + fluvio_client_cpp + GIT_REPOSITORY https://github.com/ASTRAOS-de/fluvio-client-cpp.git +) +FetchContent_MakeAvailable(fluvio_client_cpp) + +target_link_libraries(main PRIVATE ASTRAOS::fluvio_client_cpp) ``` # Example Usage From 4fec7cfce62fa131807ab537e23579293ce33792 Mon Sep 17 00:00:00 2001 From: KunoVonHagen <41991675+KunoVonHagen@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:22:47 +0200 Subject: [PATCH 12/12] Update README.md to clarify vcpkg installation status and provide alternative CMake FetchContent method --- README.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d311765..3208b83 100644 --- a/README.md +++ b/README.md @@ -18,20 +18,14 @@ The public API follows the same object-oriented layout as the original Fluvio cl ## Installation -You can install the client effortlessly without compiling the heavy Rust toolchain by using `vcpkg`. +### vcpkg -```bash -vcpkg install fluvio-client-cpp -``` - -In your `CMakeLists.txt`, simply find the package and link it: +> **Note** +> The vcpkg port is currently under development and is not yet available in the official vcpkg registry. -```cmake -find_package(fluvio_client_cpp CONFIG REQUIRED) -target_link_libraries(main PRIVATE ASTRAOS::fluvio_client_cpp) -``` +Until then, use the CMake FetchContent method below. -Alternatively, you can build the library from source by fetching it during the CMake configure step and building it as part of your project: +You can build the library from source by fetching it during the CMake configure step and building it as part of your project: ```cmake include(FetchContent)