Skip to content

build: add explicit linux-x64-gcc-{debug,release} presets#1677

Open
gangulysiddhartha22-cmyk wants to merge 1 commit into
hiero-ledger:mainfrom
gangulysiddhartha22-cmyk:feature/linux-gcc-presets
Open

build: add explicit linux-x64-gcc-{debug,release} presets#1677
gangulysiddhartha22-cmyk wants to merge 1 commit into
hiero-ledger:mainfrom
gangulysiddhartha22-cmyk:feature/linux-gcc-presets

Conversation

@gangulysiddhartha22-cmyk

@gangulysiddhartha22-cmyk gangulysiddhartha22-cmyk commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Description:

Related issue(s):

Fixes #1621

Notes for reviewer:
Both linux-x64-release and linux-x64-gcc-release (and their debug counterparts) have been tested locally and produce equivalent builds.

Checklist

  • Documented (Code comments, README, etc.)
  • Tested (unit, integration, etc.)

Summary by CodeRabbit

  • Documentation

    • Expanded the Linux (x64) Quick Start with separate GCC-specific build commands alongside the default presets.
  • Chores

    • Updated Linux build presets to distinguish GCC-based configurations and kept user-friendly alias presets for local development.
    • Adjusted the build workflow and its messaging to reflect the new GCC preset naming.
    • Improved SDK header compatibility for threshold-related APIs by ensuring the required integer type is available.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 489dcf48-77a0-4471-ad32-f235606f753a

📥 Commits

Reviewing files that changed from the base of the PR and between 40056d8 and 69bbddb.

📒 Files selected for processing (5)
  • .github/workflows/on-schedule-builds.yaml
  • .github/workflows/zxc-build-library.yaml
  • CMakePresets.json
  • README.md
  • src/sdk/main/include/KeyList.h
✅ Files skipped from review due to trivial changes (2)
  • .github/workflows/on-schedule-builds.yaml
  • README.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • .github/workflows/zxc-build-library.yaml
  • CMakePresets.json

📝 Walkthrough

Walkthrough

This PR implements Linux GCC compiler preset architecture by adding explicit linux-x64-gcc-release and linux-x64-gcc-debug configure presets that set C/C++ compilers to GCC/G++, converting legacy linux-x64 presets to backward-compatible aliases, updating CI workflows and build documentation, plus fixing a missing cstdint include in KeyList.h.

Changes

Linux x64 GCC CMake Presets and CI Integration

Layer / File(s) Summary
GCC Configure Presets and Aliasing
CMakePresets.json
Added linux-x64-gcc-release and linux-x64-gcc-debug configure presets that explicitly set CMAKE_C_COMPILER=gcc and CMAKE_CXX_COMPILER=g++, inheriting from vcpkg-base. Introduced linux-x64-release and linux-x64-debug as thin alias presets that inherit from the GCC-specific presets, maintaining backward compatibility.
Build Presets Update and JSON Cleanup
CMakePresets.json
Added linux-x64-gcc-release and linux-x64-gcc-debug build presets targeting the new GCC configure presets with the install target. Removed the previous linux-x64-release and linux-x64-debug build preset entries. Adjusted JSON formatting at the end of the file.
CI Workflow Preset Reference
.github/workflows/zxc-build-library.yaml, .github/workflows/on-schedule-builds.yaml
Updated workflow header comments to clarify that Linux builds use explicit linux-x64-gcc-* presets. Changed the Linux build job matrix to reference linux-x64-gcc preset instead of legacy linux-x64. Added documentation distinguishing scheduled/nightly builds (using explicit GCC presets) from local development defaults (using aliases).
README Build Instructions
README.md
Expanded Linux (x64) build section in Quick Start to document both the default GCC preset (linux-x64-release) and explicit compiler-specific preset (linux-x64-gcc-release) usage.

KeyList Header Include Fix

Layer / File(s) Summary
Standard Library Include
src/sdk/main/include/KeyList.h
Added <cstdint> include to provide the uint32_t type definition used by KeyList threshold APIs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A rabbit hops through preset paths so fine,
GCC compilers now explicitly align,
Aliases bridge the old and new way,
CI workflows updated for a brighter day,
And one small #include made everything right! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and concisely describes the main change: adding explicit linux-x64-gcc-{debug,release} CMake presets.
Linked Issues check ✅ Passed All coding objectives from issue #1621 are met: explicit GCC presets added, existing presets converted to aliases, CI workflows updated, documentation updated, and missing include added.
Out of Scope Changes check ✅ Passed All changes are directly aligned with issue #1621 objectives: CMake preset refactoring, workflow updates, documentation, and the necessary cstdint include for GCC compatibility.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

Hey @gangulysiddhartha22-cmyk 👋 thanks for the PR!
I'm your friendly PR Helper Bot 🤖 and I'll be riding shotgun on this one, keeping track of your PR's status to help you get it approved and merged.

This comment updates automatically as you push changes -- think of it as your PR's live scoreboard!
Here's the latest:


PR Checks

DCO Sign-off -- All commits have valid sign-offs. Nice work!


GPG Signature -- All commits have verified GPG signatures. Locked and loaded!


Merge Conflicts -- No merge conflicts detected. Smooth sailing!


Issue Link -- Linked to #1621 (assigned to you).


🎉 All checks passed! Your PR is ready for review. Great job!

@github-actions github-actions Bot added the status: needs review The pull request is ready for maintainer review label Jun 11, 2026
@gangulysiddhartha22-cmyk

Copy link
Copy Markdown
Contributor Author

@rwalworth ready for review

Signed-off-by: Siddhartha Ganguly <gangulysiddhartha22@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: needs review The pull request is ready for maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Beginner]: Add linux-x64-gcc-{debug,release} presets and document linux-x64-{debug,release} as GCC defaults

1 participant