Skip to content

Refactor CMake and CI to support FetchContent, vcpkg, and system dependencies with modern packaging#90

Merged
atimin merged 111 commits into
mainfrom
refactor-cmake
Aug 12, 2025
Merged

Refactor CMake and CI to support FetchContent, vcpkg, and system dependencies with modern packaging#90
atimin merged 111 commits into
mainfrom
refactor-cmake

Conversation

@victor1234
Copy link
Copy Markdown
Contributor

@victor1234 victor1234 commented Jun 27, 2025

To modernize the build system, support multiple dependency integration methods, and improve CI coverage while removing outdated scripts.

  • Added unified support for FetchContent, vcpkg, and system-installed dependencies by refactoring InstallDependencies.cmake and introducing new CMake options (REDUCT_CPP_USE_FETCHCONTENT, RCPP_INSTALL) with vcpkg detection via CMAKE_TOOLCHAIN_FILE.

  • Modernized CMake with target-based linking, namespace alias (reductcpp::reductcpp), centralized dependency list (RCPP_DEPENDENCIES), and fixed include paths for concurrentqueue depending on integration method.

  • Updated minimal dependency versions (fmt 9.1.0, cpp-httplib 0.14.3, OpenSSL 3.0.13) and added pkg-config fallback for cpp-httplib.

  • Added vcpkg configuration files (vcpkg.json, vcpkg-configuration.json) and implemented modern package config generation with configure_package_config_file and versioned CMake config.

  • Refactored CI into separate workflows (build-package-system, build-package-vcpkg, build-package-conan) and updated unit tests to cover all dependency modes on ubuntu-24.04 and Windows.

  • Updated examples to build with either FetchContent or find_package, and reorganized README with new integration instructions.

  • Removed obsolete files and scripts, including old CMake config templates and outdated Conan logic.

@victor1234 victor1234 changed the title Refactor CMake Refactor CMake and CI to support FetchContent, vcpkg, and system dependencies with modern packaging Aug 11, 2025
@victor1234 victor1234 requested a review from atimin August 11, 2025 21:29
@victor1234 victor1234 self-assigned this Aug 11, 2025
@victor1234 victor1234 marked this pull request as ready for review August 11, 2025 21:29
Copy link
Copy Markdown
Member

@atimin atimin left a comment

Choose a reason for hiding this comment

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

Perfect! Thank you!

@atimin atimin merged commit 33c07f6 into main Aug 12, 2025
20 checks passed
@atimin atimin deleted the refactor-cmake branch August 12, 2025 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants