beta-v2.2.2
Pre-release
Pre-release
·
43 commits
to master
since this release
CForge Release beta-v2.2.2
Cross-Compilation Profiles & Documentation Overhaul
CForge beta-v2.2.2 introduces reusable cross-compilation profiles for targeting multiple platforms, fixes a critical build cache bug, and brings the documentation up to date.
Bug Fixes
CMakeLists.txt Regeneration Fix
- Fixed issue where
CMakeLists.txtwas not being regenerated whencforge.tomlwas modified, even though the hash was changing - Root cause:
clone_git_dependencies()was saving thecforge.tomlhash beforegenerate_cmakelists_from_toml()could detect changes - Location:
src/core/command_build.cpp:352-353
New Features
Cross-Compilation Profiles
Define reusable cross-compilation configurations and switch between them with a single flag.
cforge build --profile android-arm64
cforge build -P raspberry-piFeatures:
- Reusable profiles via
[cross.profile.<name>]configuration - Environment variable expansion in toolchain paths (e.g.,
${ANDROID_NDK}) - Custom CMake variables per profile
Updated Cross-Compilation Configuration
New unified [cross] section format:
[cross]
enabled = true
[cross.target]
system = "Linux"
processor = "aarch64"
toolchain = "path/to/toolchain.cmake"
[cross.compilers]
c = "/usr/bin/aarch64-linux-gnu-gcc"
cxx = "/usr/bin/aarch64-linux-gnu-g++"
[cross.paths]
sysroot = "/path/to/sysroot"
find_root = "/path/to/find/root"
[cross.variables]
MY_VAR = "value"Documentation
GitHub Pages Workflow Fix
- Fixed
deploy-docs.ymlto usecforge-webdirectory instead ofdocs - Documentation now rebuilds when
README.mdorcforge-web/**changes
Updated Documentation Pages
| Page | Changes |
|---|---|
cross-compilation.md |
Complete rewrite with profiles, examples, and troubleshooting |
project-configuration.md |
Updated to match current config format (cpp_standard, binary_type, build.config.<name>) |
dependencies.md |
Added system dependencies (find_package, pkg_config, manual), subdirectory dependencies |
workspaces.md |
Updated workspace commands and project dependency format |
Files Changed
src/core/command_build.cpp— Cross-compilation profiles,--profileflag, hash fixsrc/core/command_init.cpp— Updated template with cross-compilation profilessrc/core/command_help.cpp— Added--profileflag to help text.github/workflows/deploy-docs.yml— Fixed to usecforge-webcforge-web/docs/*.md— Multiple documentation updates
Note: All existing workflows remain compatible.
Please report issues at [github.com/ChaseSunstrom/cforge/issues](https://github.com/ChaseSunstrom/cforge/issues)