Skip to content

🔧 👷 Refactor LLVM toolchain for native builds and improved CI#37

Merged
kammce merged 14 commits intomainfrom
env-variables
Jan 27, 2026
Merged

🔧 👷 Refactor LLVM toolchain for native builds and improved CI#37
kammce merged 14 commits intomainfrom
env-variables

Conversation

@kammce
Copy link
Copy Markdown
Member

@kammce kammce commented Jan 26, 2026

Enable the LLVM toolchain package to build applications for native
platforms (Linux, macOS, Windows) in addition to cross-compilation
targets. Previously, the toolchain only configured itself when
settings_target was present (cross-compilation). Now it properly
detects and configures for native builds as well.

Key changes:

  • Add comprehensive build environment variables (CC, CXX, AR, LD, NM,
    OBJCOPY, OBJDUMP, RANLIB, STRIP, ADDR2LINE, etc.) for better
    toolchain integration
  • Add CMAKE_SYSTEM_NAME configuration for each platform to ensure
    CMake correctly identifies the target OS
  • Extend CMake extra_variables with compiler and utility tool paths
  • Refactor llvm-20 profile to use Jinja2 templating with host/build
    context separation and auto-detection of OS/arch
  • Remove redundant platform-specific profiles (linux_arm, linux_x86_64,
    macos_arm, macos_x86_64, windows_arm, windows_x86_64)

CI workflow improvements:

  • Add display_name parameter for clearer job naming in GitHub Actions
  • Rename demo_profile to host_profile for semantic clarity
  • Add workflow concurrency control to cancel in-progress runs
  • Simplify verify workflow with separate native/cross build steps
  • Add ninja build verification step using LLVM toolchain

Demo and test updates:

  • Rename test_package to test_package_skip to prevent auto-execution
  • Update demo conanfiles to explicitly require ninja and cmake
  • Add CMakeToolchain generator configuration in demos
  • Enable CMAKE_CXX_SCAN_FOR_MODULES and CMAKE_COLOR_DIAGNOSTICS

Documentation:

  • Update README with the changes

@kammce kammce force-pushed the env-variables branch 2 times, most recently from 65dd9fb to b84a698 Compare January 26, 2026 03:48
- Add ar, ld, nm, objcopy, objdump, ranlib, strip to cpp_info executables
- Expand CMake variables to include all compiler and utility tools
- Define standard environment variables (CC, CXX, AS, AR, LD, NM, etc.) in buildenv
- Add README section documenting how to build tools for platforms using the toolchain
@kammce kammce force-pushed the env-variables branch 3 times, most recently from 61befe9 to 0ddbaad Compare January 26, 2026 15:11
- Deleted build profiles as the llvm-X profiles will include the default
  profile by default

We need to update the readme next
@kammce kammce force-pushed the env-variables branch 5 times, most recently from 8a27dec to c496e80 Compare January 26, 2026 20:47
@kammce kammce force-pushed the env-variables branch 12 times, most recently from 7067d27 to fe0e434 Compare January 27, 2026 00:37
@kammce kammce changed the title 🐛 Fix missing env & cmake definitions for native builds 🔧 👷 Refactor LLVM toolchain for native builds and improved CI Jan 27, 2026
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.

1 participant