Releases: 4lex1v/cbuild
Release r11
Improvements
- New
find_executablefunction added to the experimental API - New
run_system_commandfunction added to the experimental API cbuild cleancommand now respects multi-project configuration
Fixes
- Fixed a bug when the project's configuration was unloaded prematurely, which caused user-defined commands to crash
MD5: 5664a1ec8177a3314332247ea09a708c
SHA256: a761e68cb1ee13f589a2131e95102ae2fb61942e489ac99d7313834301412844
Release r10
Improvements
- Support for multiple project configurations with
-p/--project=option - New experimental API to install the binary
- New experimental API to include system headers
Fixes
- Fixed an issue on Windows that prevented CBuild to load compiled configuration
MD5: 15cb320575fd9d226956b7202e99bf35
SHA256: f71a00c853a67bf63b33f1832088b2d1927b99a23013df649dae268b0d2e42a9
Release r9
Improvements
- Exported API got some update for C++-based configurations, specifically all functions are
noexceptnow exclude_source_file(s)function has been moved to the core API- On Windows, CBuild is no longer restricted to a fixed name (i.e
cbuild.exe).
Fixes
- Fixed an issue with targeted builds (the
build targets=foo,...ones) that had an issue with wiping some information that caused an unnecessary rebuild of skipped targets on subsequence builds. - the API signature in the exported header is now a
const
SHA256: 0dc82f92c13be1d6b58bd82b0f7211a63dedf0cff07227b2412714f605824f8a
MD5: 7439a92930ae337487bca6fe22ba55fa
Release r8
Improvements
--silenceflag now hides more chatter from the program, producing a cleaner outputbuildcommand now takes thecacheoptionbuildcommand now can build specific target(s)
Fixes
- Some issues in the linker that may have caused freezes
- Assertion were removed from the release build
- No project root direction in dependency scanner by default
- Now the directory structure is what the user passes as includes search path for the compiler
SHA256: DD05C5EF78E78D9B882D229A0728626291B316DB99441742E7832ACFEEA4A4E7
MD5: 45E13528991CBCE52C9F5A88D4B9B94B
Release r7
API
- Added a series of global function to set project-wide options for the compiler, linker, archiver, include paths
- Added
exclude_source_filesfunctions to pair withadd_all_sources_from_directoryin case some files must be removed - Fixed an issue with the add_source_files wrapper for C++
Fixes
- Custom assert macro to remove assertions from the release build
- Fixed an issue when Visual Studio has been removed from the system and vswhere returned no output.
MD5: 028D364AF322DD6A9133EACA39B4891A
SHA256: 002673B546B71A475A9EDB8F9DB99DE974B091F6FF43D6A52219572A736A6EEA
Release r6
Improvements
- Added more checks to the public API to catch some obvious issues with the configuration faster
Fixes
- Revamped project builder implementation that should address various compilation/linking issues, correct the processing order and other minor improvements
- Fixed issues with some public API functions
MD5: D0F4EEE8804CA10268036F9E92BF42F7
SHA256: 4A9204F79984A27EA58131C66A63FD1CC71C6D9FB680C482F9612AAF6261E497
Release r5
Fixes
- Fixed
initcommand that expected atypeoption to be provided, while it being optional
Release r4
Fixes
- Fixed
run_system_commandfor Win32, for some reason it was hanging due to the sequence of handle closing operations - Fixed dependency iterator failing if the raw string's delimiter was present in the string's content
Release r3
Additions
- Support for
-s / --silencedflag to keep only the compiler's output. - Added
exclude_source_fileto the experimental API - Minor performance improvements
Fixes
- Pass user-defined include paths to the compiler
Release r2
Changes:
Automatically configures Win32/MSVC environment on Windows.
No longer need to call vcvarsall or run MSVC's command prompt to build the project.
Changed versioning scheme to a simpler version bump for the tool and the API.
The idea of semantic versioning never fully worked for me, the only part that should change is the minor version, which will become the counter for the API. Version of the tool would just signal a release version.
Rebuild project when configuration changes.
Perhaps not the best solution for a large-scale project, but since that's not a big concern at this point, it's a good enough solution to have at least something to avoid calling clean manually to force rebuild.
Return error code on build failure.
Would print more details about the error and properly communicate the status to the OS. Should improve the integration with other programs when the error happens.