From 8c19029aef4d47288c06b98be43045a030fd33af Mon Sep 17 00:00:00 2001 From: "jay.narale" Date: Sun, 15 Feb 2026 05:52:12 +0000 Subject: [PATCH 1/2] [CPP] Modernize Protobuf CMake usage and add install rules --- cpp/CMakeLists.txt | 28 ++++++++++++++++++++++++++-- cpp/celeborn/proto/CMakeLists.txt | 2 +- cpp/celeborn/utils/CelebornUtils.h | 1 + 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index f24a8abff69..12ae4d91670 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -120,7 +120,7 @@ find_path(OPT_OPENSSL_DIR NAMES opt/openssl@1.1) set(OPENSSL_ROOT_DIR "${OPT_OPENSSL_DIR}/opt/openssl@1.1") find_package(OpenSSL REQUIRED) -find_package(Protobuf REQUIRED) +find_package(Protobuf CONFIG REQUIRED) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" @@ -156,7 +156,7 @@ set(ProtoGenSource "${CMAKE_BINARY_DIR}/celeborn/proto/TransportMessagesCpp.pb.c add_custom_command( OUTPUT ${ProtoGenSource} ${ProtoGenHeader} COMMAND mkdir -p ${CMAKE_BINARY_DIR}/celeborn/proto - COMMAND protoc --proto_path=${CMAKE_CURRENT_SOURCE_DIR}/celeborn/proto --cpp_out=${CMAKE_BINARY_DIR}/celeborn/proto ${ProtoFile} + COMMAND protobuf::protoc --proto_path=${CMAKE_CURRENT_SOURCE_DIR}/celeborn/proto --cpp_out=${CMAKE_BINARY_DIR}/celeborn/proto ${ProtoFile} DEPENDS ${ProtoFile} VERBATIM) add_custom_target( @@ -175,3 +175,27 @@ if(CELEBORN_BUILD_TESTS) endif() add_subdirectory(celeborn) + +# --------------------------------------------------------------------------- +# Install rules — headers + static libraries +# --------------------------------------------------------------------------- +# Install all public headers preserving directory structure. +install( + DIRECTORY celeborn/ + DESTINATION include/celeborn + FILES_MATCHING PATTERN "*.h" + PATTERN "tests" EXCLUDE +) + +# Install the generated proto header. +install( + FILES ${ProtoGenHeader} + DESTINATION include/celeborn/proto +) + +# Install static libraries. +install( + TARGETS client conf memory network proto protocol utils + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) diff --git a/cpp/celeborn/proto/CMakeLists.txt b/cpp/celeborn/proto/CMakeLists.txt index f83dafba880..00679bee9d6 100644 --- a/cpp/celeborn/proto/CMakeLists.txt +++ b/cpp/celeborn/proto/CMakeLists.txt @@ -14,4 +14,4 @@ # limitations under the License. add_library(proto STATIC ${ProtoGenSource} ${ProtoGenHeader}) add_dependencies(proto generate_proto_source) -target_link_libraries(proto ${Boost_LIBRARIES} ${PROTOBUF_LIBRARY}) +target_link_libraries(proto ${Boost_LIBRARIES} protobuf::libprotobuf) diff --git a/cpp/celeborn/utils/CelebornUtils.h b/cpp/celeborn/utils/CelebornUtils.h index f79f329a5ce..6d39226ce98 100644 --- a/cpp/celeborn/utils/CelebornUtils.h +++ b/cpp/celeborn/utils/CelebornUtils.h @@ -21,6 +21,7 @@ #include #include #include +#include #include #include "celeborn/memory/ByteBuffer.h" From a8415c9b6c514807069597dbb64f9a8cd087f9af Mon Sep 17 00:00:00 2001 From: "jay.narale" Date: Sun, 15 Feb 2026 20:02:01 +0000 Subject: [PATCH 2/2] fix ci proto --- cpp/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 12ae4d91670..8d54b62e3d6 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -120,7 +120,7 @@ find_path(OPT_OPENSSL_DIR NAMES opt/openssl@1.1) set(OPENSSL_ROOT_DIR "${OPT_OPENSSL_DIR}/opt/openssl@1.1") find_package(OpenSSL REQUIRED) -find_package(Protobuf CONFIG REQUIRED) +find_package(Protobuf REQUIRED) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake"