From 9f5f3ce00812b0a07e7648fac66bc4a01c1048d9 Mon Sep 17 00:00:00 2001 From: Twice Date: Wed, 16 Oct 2024 13:44:13 +0800 Subject: [PATCH] docs(bindings/c): update docs for CMake replacing (#5186) --- bindings/c/CMakeLists.txt | 4 ++-- bindings/c/CONTRIBUTING.md | 12 ++++++++---- bindings/c/README.md | 31 +++++++++++-------------------- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt index 3c5a54019f4e..a6fe41ebd4c6 100644 --- a/bindings/c/CMakeLists.txt +++ b/bindings/c/CMakeLists.txt @@ -49,8 +49,8 @@ if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") set(CARGO_DIST_DIR "${PROJECT_SOURCE_DIR}/target/release") endif() -set(OPENDAL_STATIC_LIB "${CARGO_DIST_DIR}/libopendal_c.a") -set(OPENDAL_SHARED_LIB "${CARGO_DIST_DIR}/libopendal_c.so") +set(OPENDAL_STATIC_LIB "${CARGO_DIST_DIR}/libopendal_c${CMAKE_STATIC_LIBRARY_SUFFIX}") +set(OPENDAL_SHARED_LIB "${CARGO_DIST_DIR}/libopendal_c${CMAKE_SHARED_LIBRARY_SUFFIX}") message(NOTICE "-- OpenDAL C static lib: ${OPENDAL_STATIC_LIB}") message(NOTICE "-- OpenDAL C shared lib: ${OPENDAL_SHARED_LIB}") diff --git a/bindings/c/CONTRIBUTING.md b/bindings/c/CONTRIBUTING.md index 2fa5659c274f..1d2e914de011 100644 --- a/bindings/c/CONTRIBUTING.md +++ b/bindings/c/CONTRIBUTING.md @@ -22,7 +22,7 @@ The fastest way is: To build OpenDAL C binding, the following is all you need: -- **A C++ compiler** that supports **c++14**, _e.g._ clang++ and g++ +- A compiler that supports **C11** and **C++14**, _e.g._ clang and gcc - To format the code, you need to install **clang-format** @@ -55,7 +55,9 @@ sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a To build the library and header file. ```shell -make build +mkdir build && cd build +cmake .. +make ``` - The header file `opendal.h` is under `./include` @@ -64,7 +66,8 @@ make build To clean the build results. ```shell -make clean +cargo clean +cd build && make clean ``` ## Test @@ -72,7 +75,8 @@ make clean To build and run the tests. (Note that you need to install GTest) ```shell -make test +cd build +make tests && ./tests ``` ## Documentation diff --git a/bindings/c/README.md b/bindings/c/README.md index 398f1a1f198b..19bf72839b34 100644 --- a/bindings/c/README.md +++ b/bindings/c/README.md @@ -27,7 +27,7 @@ int main() }; /* Write this into path "/testpath" */ - opendal_error *error = opendal_operator_write(op, "/testpath", data); + opendal_error *error = opendal_operator_write(op, "/testpath", &data); assert(error == NULL); /* We can read it out, make sure the data is the same */ @@ -56,14 +56,13 @@ For more examples, please refer to `./examples` To build OpenDAL C binding, the following is all you need: -- **A C++ compiler** that supports **c++14**, _e.g._ clang++ and g++ +- A compiler that supports **C11** and **C++14**, _e.g._ clang and gcc - To format the code, you need to install **clang-format** - The `opendal.h` is not formatted by hands when you contribute, please do not format the file. **Use `make format` only.** - If your contribution is related to the files under `./tests`, you may format it before submitting your pull request. But notice that different versions of `clang-format` may format the files differently. -- **GTest(Google Test)** need to be installed to build the BDD (Behavior Driven Development) tests. To see how to build, check [here](https://github.com/google/googletest). - (optional) **Doxygen** need to be installed to generate documentations. For Ubuntu and Debian: @@ -83,19 +82,6 @@ sudo apt-get install cmake # install Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - -# If you run the tests, install additional components - -# install Valgrind -sudo apt-get install Valgrind - -# install GTest -cd /usr/src/gtest -sudo cmake CMakeLists.txt -sudo make -sudo cp lib/*.a /usr/lib -sudo ln -s /usr/lib/libgtest.a /usr/local/lib/libgtest.a -sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a ``` ## Makefile @@ -103,7 +89,9 @@ sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a - To **build the library and header file**. ```sh - make build + mkdir build && cd build + cmake .. + make ``` - The header file `opendal.h` is under `./include` @@ -113,19 +101,22 @@ sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a - To **clean** the build results. ```sh - make clean + cargo clean + cd build && make clean ``` - To build and run the **tests**. (Note that you need to install Valgrind and GTest) ```sh - make test + cd build + make tests && ./tests ``` - To build the **examples** ```sh - make examples + cd build + make basic error_handle ``` ## Documentation