Releases: 4lex1v/cbuild
Release r11
Improvements
- New
find_executable
function added to the experimental API - New
run_system_command
function added to the experimental API cbuild clean
command 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
noexcept
now 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
--silence
flag now hides more chatter from the program, producing a cleaner outputbuild
command now takes thecache
optionbuild
command 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_files
functions to pair withadd_all_sources_from_directory
in 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
init
command that expected atype
option to be provided, while it being optional
Release r4
Fixes
- Fixed
run_system_command
for 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 / --silenced
flag to keep only the compiler's output. - Added
exclude_source_file
to 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.