204 lines
5.7 KiB
Markdown
204 lines
5.7 KiB
Markdown
## ChangeLog
|
|
|
|
### v1.16.0
|
|
|
|
#### New Features
|
|
|
|
- Add `Rscons.glob`
|
|
- Support command-line variables
|
|
- improve debuggability of cache.up_to_date?
|
|
- allow passing a VarSet into cache methods
|
|
|
|
#### Fixes
|
|
|
|
- generate dependencies for D builds
|
|
|
|
### v1.15.0
|
|
|
|
- allow json 1.x or 2.x
|
|
|
|
### v1.14.0
|
|
|
|
#### New Features
|
|
|
|
- #45 - Add Rscons::VarSet#values_at
|
|
|
|
#### Fixes
|
|
|
|
- #44 - Environment#print_builder_run_message should support string commands
|
|
|
|
### v1.13.0
|
|
|
|
#### New Features
|
|
|
|
- #43 - Add ability to record side-effect file production
|
|
|
|
### v1.12.0
|
|
|
|
#### New Features
|
|
|
|
- #40 - env.depends should imply env.build_after
|
|
- #41 - be more colorful
|
|
|
|
#### Fixes
|
|
|
|
- #39 - wait for in-progress subcommands to complete on build failure
|
|
- #42 - cloned Environments should inherit n_threads
|
|
|
|
### v1.11.1
|
|
|
|
#### Fixes
|
|
|
|
- fix the circular build dependency detection logic
|
|
|
|
### v1.11.0
|
|
|
|
#### New Features
|
|
|
|
- Change default Environment :clone option to :all to clone all attributes
|
|
- #38 - raise error when circular dependencies are found
|
|
- #34 - Allow overriding n_threads on a per-Environment level
|
|
|
|
#### Fixes
|
|
|
|
- #35 - env.build_after should expand paths
|
|
- #36 - SHCFLAGS and SHCXXFLAGS should inherit non-SH flags by default
|
|
- #37 - Fix non-blocking thread-wait if Rscons.n_threads is set to 0
|
|
|
|
### v1.10.0
|
|
|
|
#### New Features
|
|
|
|
- #23 - add parallelization - builds are now parallelized by default
|
|
- #31 - add LEXSUFFIX, YACCSUFFIX construction variables
|
|
- #30 - place object files for absolute source paths under build_root
|
|
- #28 - support redirecting standard output using the Command builder
|
|
- Always use a build root and default it to "build"
|
|
- Add builder features
|
|
- #8 - add SharedObject and SharedLibrary builders
|
|
|
|
#### Fixes
|
|
|
|
- expand target and source paths before calling Builder#create_build_target
|
|
- #29 - fix PROGSUFFIX handling
|
|
- #32 - Pre-build hooks do not respect modified key values
|
|
|
|
### v1.9.3
|
|
|
|
- Environment#parse_flags should put -std=XXX flags in CCFLAGS, not CFLAGS
|
|
|
|
### v1.9.2
|
|
|
|
- allow phony targets in conjunction with build roots
|
|
|
|
### v1.9.1
|
|
|
|
- change *SUFFIX defaults to arrays
|
|
- add various C++ file suffixes
|
|
- use ${INCPREFIX} instead of hard-coded "-I" in Preprocess builder
|
|
|
|
### v1.9.0
|
|
|
|
#### New Features
|
|
|
|
- #6 - add Install and Copy builders
|
|
- #22 - allow overriding Command builder short description with CMD_DESC variable
|
|
- #24 - add "rscons" executable
|
|
- #25 - add support for phony targets given as Symbols instead of Strings
|
|
- #26 - support registering multiple build targets with the same target name
|
|
- #27 - add Directory builder
|
|
|
|
#### Fixes
|
|
|
|
- #20 - fix variable references that expand to arrays in build target sources
|
|
- #21 - rework Preprocess builder to consider deep dependencies
|
|
- fix Rscons.set_suffix to append the given suffix if the filename has none
|
|
- remove ${CFLAGS} from default CPP_CMD
|
|
|
|
### v1.8.1
|
|
|
|
- fix Environment#dump when construction variables are symbols
|
|
|
|
### v1.8.0
|
|
|
|
- new Command builder to execute arbitrary user commands
|
|
- new SimpleBuilder class
|
|
- create new builders quickly by passing a block to Environment#add_builder
|
|
- improved YARD documentation
|
|
- add Environment#dump to debug Environment construction variables
|
|
|
|
### v1.7.0
|
|
|
|
- allow build hooks to register new build targets
|
|
- add post-build hooks (register with Environment#add_post_build_hook)
|
|
- clear all build targets after processing an Environment
|
|
- allow trailing slashes in arguments to Environment#build_dir
|
|
|
|
### v1.6.1
|
|
|
|
- add DEPFILESUFFIX construction variable to override dependency file suffix
|
|
- fix Environment#depends to expand its arguments for construction variables
|
|
|
|
### v1.6.0
|
|
|
|
- support lambdas as construction variable values
|
|
|
|
### v1.5.0
|
|
|
|
- add "json" as a runtime dependency
|
|
- update construction variables to match SCons more closely
|
|
- add CPPDEFPREFIX, INCPREFIX, CPPDEFINES, CCFLAGS, LIBDIRPREFIX, and LIBLINKPREFIX
|
|
- add Environment#shell
|
|
- add Environment#parse_flags, #parse_flags!, #merge_flags
|
|
- unbuffer $stdout by default
|
|
- add PROGSUFFIX construction variable (defaults to .exe on MinGW/Cygwin)
|
|
- add Rscons::BuildTarget and Builder#create_build_target
|
|
- update specs to RSpec 3.x and fix to run on MinGW/Cygwin/Linux
|
|
- add YARD documentation to get to 100% coverage
|
|
|
|
### v1.4.3
|
|
|
|
- fix builders properly using construction variable overrides
|
|
- expand nil construction variables to empty strings
|
|
|
|
### v1.4.2
|
|
|
|
- add Environment#expand_path
|
|
- expand construction variable references in builder targets and sources before invoking builder
|
|
|
|
### v1.4.1
|
|
|
|
- fix invoking a builder with no sources while a build root defined
|
|
|
|
### v1.4.0
|
|
|
|
- add CFile builder
|
|
- add Disassemble builder
|
|
- add Preprocess builder
|
|
- pass the Environment object to build hooks in the :env key of the build_op parameter
|
|
- expand target/source paths beginning with "^/" to be relative to the Environment's build root
|
|
- many performance improvements, including:
|
|
- use JSON instead of YAML for the cache to improve loading speed (Issue #7)
|
|
- store a hash of the build command instead of the full command contents in the cache
|
|
- implement copy-on-write semantics for construction variables when cloning Environments
|
|
- only load the cache once instead of on each Environment#process
|
|
- only write the cache when something has changed
|
|
- fix Cache#mkdir_p to handle relative paths (Issue #5)
|
|
- flush the cache to disk if a builder raises an exception (Issue #4)
|
|
|
|
### v1.3.0
|
|
|
|
- change Environment#execute() options parameter to accept the following options keys:
|
|
- :env to pass an environment Hash to Kernel#system
|
|
- :options to pass an options Hash to Kernel#system
|
|
|
|
### v1.2.0
|
|
|
|
- add :clone option to Environment#clone to control exactly which Environment attributes are cloned
|
|
- allow nil to be passed in to Environment#build_root=
|
|
|
|
### v1.1.0
|
|
|
|
- Change Cache#up_to_date?() and #register_build() to accept a single target
|
|
file or an array of target file names
|