You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2022/07/28 10:08:40 UTC
[rocketmq-clients] 01/01: Verify compile using CMake on Ubuntu
This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch cpp_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git
commit 4fddbba985c297dc20a514df1057cfe896330ffd
Author: Li Zhanhui <li...@gmail.com>
AuthorDate: Thu Jul 28 18:06:27 2022 +0800
Verify compile using CMake on Ubuntu
---
cpp/CMakeLists.txt | 1 +
cpp/README.md | 51 ++++++++++++++++++++++++++++++++++++++++-----
cpp/examples/CMakeLists.txt | 2 +-
3 files changed, 48 insertions(+), 6 deletions(-)
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 031130c..374466e 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -29,5 +29,6 @@ if (BUILD_EXAMPLES)
# Assume gflags is install in $HOME/gflags
list(APPEND CMAKE_PREFIX_PATH $ENV{HOME}/gflags)
find_package(gflags REQUIRED)
+ find_package(ZLIB REQUIRED)
add_subdirectory(examples)
endif ()
\ No newline at end of file
diff --git a/cpp/README.md b/cpp/README.md
index a0a04c4..8b7796b 100644
--- a/cpp/README.md
+++ b/cpp/README.md
@@ -65,11 +65,52 @@ if "com_google_googletest" not in native.existing_rules():
2. Following [gRPC installation instructions](https://grpc.io/docs/languages/cpp/quickstart/) to install grpc.
- Note: Remember to `export MY_INSTALL_DIR=$HOME/grpc` as our primary CMakeLists.txt hints
- ```cmake
- list(APPEND CMAKE_PREFIX_PATH $ENV{HOME}/grpc)
- ```
- If your grpc is installed somewhere else yet non-standard, please adjust accordingly.
+ Note:
+ * Remember to `export MY_INSTALL_DIR=$HOME/grpc` as our primary CMakeLists.txt hints
+
+ ```cmake
+ list(APPEND CMAKE_PREFIX_PATH $ENV{HOME}/grpc)
+ ```
+ If your grpc is installed somewhere else yet non-standard, please adjust accordingly.
+
+ * When configure grpc, use your pre-installed system package if possible;
+ ```shell
+ cmake -DCMAKE_INSTALL_PREFIX=$HOME/grpc -DgRPC_SSL_PROVIDER=package -DgRPC_ZLIB_PROVIDER=package
+ ```
+ A few more options are involved. Check CMakeLists.txt of grpc
+ ```cmake
+ # Providers for third-party dependencies (gRPC_*_PROVIDER properties):
+ # "module": build the dependency using sources from git submodule (under third_party)
+ # "package": use cmake's find_package functionality to locate a pre-installed dependency
+
+ set(gRPC_ZLIB_PROVIDER "module" CACHE STRING "Provider of zlib library")
+ set_property(CACHE gRPC_ZLIB_PROVIDER PROPERTY STRINGS "module" "package")
+
+ set(gRPC_CARES_PROVIDER "module" CACHE STRING "Provider of c-ares library")
+ set_property(CACHE gRPC_CARES_PROVIDER PROPERTY STRINGS "module" "package")
+
+ set(gRPC_RE2_PROVIDER "module" CACHE STRING "Provider of re2 library")
+ set_property(CACHE gRPC_RE2_PROVIDER PROPERTY STRINGS "module" "package")
+
+ set(gRPC_SSL_PROVIDER "module" CACHE STRING "Provider of ssl library")
+ set_property(CACHE gRPC_SSL_PROVIDER PROPERTY STRINGS "module" "package")
+
+ set(gRPC_PROTOBUF_PROVIDER "module" CACHE STRING "Provider of protobuf library")
+ set_property(CACHE gRPC_PROTOBUF_PROVIDER PROPERTY STRINGS "module" "package")
+
+ set(gRPC_PROTOBUF_PACKAGE_TYPE "" CACHE STRING "Algorithm for searching protobuf package")
+ set_property(CACHE gRPC_PROTOBUF_PACKAGE_TYPE PROPERTY STRINGS "CONFIG" "MODULE")
+
+ if(gRPC_BUILD_TESTS)
+ set(gRPC_BENCHMARK_PROVIDER "module" CACHE STRING "Provider of benchmark library")
+ set_property(CACHE gRPC_BENCHMARK_PROVIDER PROPERTY STRINGS "module" "package")
+ else()
+ set(gRPC_BENCHMARK_PROVIDER "none")
+ endif()
+
+ set(gRPC_ABSL_PROVIDER "module" CACHE STRING "Provider of absl library")
+ set_property(CACHE gRPC_ABSL_PROVIDER PROPERTY STRINGS "module" "package")
+ ```
3. Example programs uses [gflags](https://github.com/gflags/gflags) to parse command arguments. Please install it to $HOME/gflags
as CMakeLists.txt has the following find package statements
diff --git a/cpp/examples/CMakeLists.txt b/cpp/examples/CMakeLists.txt
index b19c65e..8d6b039 100644
--- a/cpp/examples/CMakeLists.txt
+++ b/cpp/examples/CMakeLists.txt
@@ -1,6 +1,6 @@
function(add_example name file)
add_executable(${name} ${file})
- target_link_libraries(${name} PRIVATE api gflags rocketmq)
+ target_link_libraries(${name} PRIVATE api gflags ZLIB::ZLIB rocketmq)
endfunction()
add_example(example_producer ExampleProducer.cpp)