Releases: cwbaker/forge
Releases · cwbaker/forge
v0.10.7
- Use snprintf() to format anonymous target id in LuaGraph::anonymous()
- Qualify std::move() in Scheduler::dispatch_results()
- Implement assert for ARM-based macOS machines
- Bump version to 0.10 from 0.9
- Add script() function to return path of calling Lua script
- Only set outdated when timestamp > last write for cleanable targets
- Remove years from copyright notice shown with "forge --version"
- Error on non-string values in environment tables passed to execute()
- Allow mismatched types in apply()
- Make bootstrap scripts for Linux, macOS, and MinGW executable
- Read path to opened file correctly in forge_hooks_macos.cpp
- Test paths returned from hooks are correct full paths
- Allow MSVC compilation to specify PDB file explicitly
- Properly ignore temporary files from Linux file change hooks
- Return full path of accessed files to Forge from Windows hooks
- Return full path of accessed files to Forge from macOS hooks
- Return full path of accessed files to Forge from Linux hooks
- Use decode_access() in Toolset.dependencies_filter() etc
- Add decode_access() to decode file accesses output by hooks
- Ignore temporary files when hooking Windows processes for file changes
- Ignore temporary files when hooking Linux processes for file changes
- Remove unused Windows hooks
- Remove some unused filename conversion in Windows hooks
- Rename patterns in Toolset filters to ACCESS_PATTERN for clarity
- Remove duplicate Rule.prepare() item from "Rules"
- Revise "Commands" documentation
- Reorder commands, modules, and rules in "More Details" documentation
- Rename PatternPrototype() to PatternRule() in docs/index.md
- Describe search for highest level forge.lua in "Running Forge"
- Revert "Treat first directory with forge.lua as root not highest"
v0.9.7
- Count commits from last version change for patch version
- Default to Toolset.interpolate to identify FileRule targets
- Revise "Rules" documentation
- Update module example to define install() not initialize()
- Reference Forge v0.9.0 in Github Actions installation instructions
v0.9.0
- Add "More Details" documentation, revise everything else accordingly
- Update to Lua 5.4.4
- Pass identify as parameter to rule functions rather than as rule method
- Call build() instead of default() from install()
- Rename system() to run()
- Only iterate over binding dependencies for bind and postorder passes
- Remove unused Target::changed()
- Rename TargetPrototype to Rule and knock ons
- Rename PatternPrototype, etc to PatternRule, etc
- Delete local_settings.lua from cache directory in reconfigure()
- Create toolsets with identifiers, separate to the toolset settings
- Generate toolset ids from outside settings applied to toolset
- Allow yielding from preorder traversals
- Rely on transitive dependencies to link libraries into forge executable
- Treat first directory with forge.lua as root not highest
- Call forge:load() explicitly from forge.lua
- Accept cache directory in forge:load(), store local settings in cache dir.
- Simplify module install to toolset, make modules and toolsets independent
- Remove now unused ToolsetPrototype
- Simplify toolset/module interface to just module.install()
- Combine Settings into Toolset
- Store zero in __forge_hash before hashing to avoid infinite recursion
- Make forge:merge() a global function
- Make apply() a global function
ssive dependencies - Rename transitive dependencies to passive dependencies
v0.8.7
- Process assignments and commands in their order on the command line
- Remove unused
forge:reload() - Remove unused settings parameter from
forge:load()
v0.7.26
- Fix transitive dependencies broken in previous release
- Allow reordering of dependencies of the same and weaker types
- Prepare transitive dependencies in dependencies and namespace commands
- Ignore targets without scripts or working directories in
preorder()
v0.7.19
- Always visit root target in preorder traversal
- Fix crash and test files sometimes not being deleted
v0.7.12
- Collect transitive static library dependencies for executables
- Rename Lua binding
any_dependencies()toall_dependencies() - Remove Lua bindings for unused dependency iteration functions
- Add
preorder()to make a preorder traversal over the dependency graph - Add
prune()in preparation for preorder pruning - Iterate over all dependencies at once in
Graph::print_recursively() - Add transitive dependencies to
Target - Add
__tostringmetamethod forTargetPrototypesreturning id
v0.6.18
- Avoid closing write end of pipe when it matches user requested FD
- Close all file descriptors by default when spawning processes on Linux and macOS
- Use WIFEXITED() and WIFSIGNALED() macros when checking waitpid() on Linux
v0.6.11
- Build releases for generic x86-64 for better CI system support
v0.6.6
- Increase maximum error and output length to 8192 from 1024
- Hook NtCreateFile() on Windows to detect more dependencies
- Treat paths on separate drives as being outside the source tree
- Skip "\\?\" or "\??\" prefix on paths hooked in forge_hooks_windows.cpp
- Convert include directories to absolute paths for MSVC++
- LINT: Reduce indentation of declarations in System.hpp