feat: add c++ common code#24
Merged
Merged
Conversation
Introduce a new CMake-based `lizardbyte::common` static library with cross-platform environment variable helpers (`get_env`, `set_env`, `append_env`, `unset_env`), packaging/export config, and install rules. Add C++ unit tests and wire them into CTest, then add a new multi-OS CMake job in CI to configure, build, test, and install the project. Update README and `.gitignore` to document and support the new C++ workflow.
Adds `third-party/googletest` as a new submodule and records its source URL in `.gitmodules`. The submodule is pinned to commit `52eb8108c5bdec04579160ae17225d66034bd723` for reproducible dependency state.
Registers `third-party/doxyconfig` in `.gitmodules` with the LizardByte `doxyconfig` repository on the `master` branch, and adds the submodule pointer at commit `e552f7c`.
Major improvements to the project's testing and CI/CD infrastructure: - Convert C++ tests from custom runner to GoogleTest framework - Add lizardbyte::test_support library with shared test fixtures (BaseTest, LinuxTest, MacOSTest, WindowsTest) - Expand CI/CD pipeline to test multiple compilers (GCC, Clang) and platforms (Linux, macOS, Windows with MinGW and MSVC) - Add OpenCppCoverage support for MSVC code coverage - Add separate codecov job for aggregating and uploading coverage reports - Add ReadTheDocs configuration and Doxygen documentation support - Add get_env() string overload to env API - Update documentation with GoogleTest support helpers and build instructions
Add a new `sonar-project.properties` file to define the repository Sonar project key and set `sonar.cfamily.reportingCppStandardOverride` to `c++17`, ensuring analysis aligns with the oldest C++ standard used across LizardByte projects.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #24 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 2 3 +1
Lines 166 213 +47
Branches 0 12 +12
=========================================
+ Hits 166 213 +47
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report in Codecov by Harness.
|
Drop the `LB_CAT_VA_ARGS` and `LB_MAKE_TEST` macro helpers from the testing support header and remove the matching test case that exercised them.
31dd1b1 to
8dac6d6
Compare
Update the Codecov flags for Python coverage and test uploads to use `RunnerOS-python`, separating them from other language reports.
|
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Screenshot
Issues Fixed or Closed
Roadmap Issues
Type of Change
Checklist
AI Usage