Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(bindings/c): replace the build system with CMake #5182

Merged
merged 4 commits into from
Oct 15, 2024

Conversation

PragmaTwice
Copy link
Member

@PragmaTwice PragmaTwice commented Oct 15, 2024

Which issue does this PR close?

Closes #3516.

Rationale for this change

As state in #3516, CMake works well for large project than makefile.
Also in CMake we can fetch the gtest from web and use it simply than depending on a system-level gtest.

What changes are included in this PR?

  • Added a new CMakeLists.txt for the C binding part.
  • Also fixed a build issue (compiler error) inside examples/basic.c.
  • Remove useless part of Makefile.
  • Change the zig build since it depends on c build.

Note that Valgrind part is removed and replaced by AddressSanitizer.

Are there any user-facing changes?

Users of C binding should be aware of this change, and should build from CMake instead of Makefile from now on.

cc @tisonkun

@PragmaTwice PragmaTwice marked this pull request as ready for review October 15, 2024 10:46
Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this!

@Xuanwo Xuanwo merged commit 737012f into apache:main Oct 15, 2024
36 checks passed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we can adopt Kvrocks' x.py flavor here now 🐶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat(bindings/C): managing building using CMake
3 participants