|  | 8 Change Logv2.0.1Fixes
#112 - Install builder cannot replace a currently executing binary on Linux v2.0.0
convert rscons from a Ruby gem to a standalone scriptcompress rscons distributable scriptadd configure operation to detect compilers, check for headers/libraries, etc... (invoked automatically if needed)Environments store builder classes instead of instances of builder classesuse a separate Builder instance for each build operationload Rsconscript from Rsconscript/Rsconscript.rb instead of Rsconsfiledrop support for builder run methods using the old 5 parameter signatureremove Environment#build_dirset Environment build root in configure stepremove Builder#finalize (now #run called repeatedly until builder completes)remove Builder#setupremove Builder#features and Builder#produces?add functionality to allow builders to wait on Ruby threads or other buildersadd install/uninstall/distclean command-line operationspreserve makefile dependency files under build directoryremove a few deprecated methodspass a Builder instance to build hooks instead of a build operation Hashsupport a basic markup syntax in builder run messages to colorize target/source fileshide (but store) failed compilation command by default so the user doesn't have to scroll back as much to see compiler outputrefactor to remove some redundancy among built-in builderstrack object file source language (correctly determine linker when only passed object files previously built by particular toolchains)add barriersadd InstallDirectory builderchange Install builder to copy files on 'install' operationadd "prefix" construction variable based on configured installation prefixallow passing builder objects as sources to build targetsdifferentiate 'build' targets from 'install' targets in cache contentsadd verbose modeshow build progress as a percentage in builder output messagesvarious performance improvementswrote a new user guideadded new website (https://holtrop.github.io/rscons/)added new logo v1.17.0New Features
allow construction variable expansion on trueandfalsevalues.remove makefile target name check when parsing dependencies v1.16.0New Features
Add Rscons.globSupport command-line variablesimprove debuggability of cache.up_to_date?allow passing a VarSet into cache methods Fixes
generate dependencies for D builds v1.15.0v1.14.0New Features
#45 - Add Rscons::VarSet#values_at Fixes
#44 - Environment#print_builder_run_messageshould support string commands v1.13.0New Features
#43 - Add ability to record side-effect file production v1.12.0New 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.1Fixes
fix the circular build dependency detection logic v1.11.0New Features
Change default Environment :clone option to :all to clone all attributes#38 - raise error when circular dependencies are found#34 - Allow overriding n_threadson a per-Environment level Fixes
#35 - env.build_aftershould expand paths#36 - SHCFLAGSandSHCXXFLAGSshould inherit non-SH flags by default#37 - Fix non-blocking thread-wait if Rscons.n_threadsis set to 0 v1.10.0New 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 builderAlways 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 PROGSUFFIXhandling#32 - Pre-build hooks do not respect modified key values v1.9.3
Environment#parse_flagsshould 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 arraysadd various C++ file suffixesuse ${INCPREFIX} instead of hard-coded "-I" in Preprocess builder v1.9.0New Features
#6 - add Install and Copy builders#22 - allow overriding Command builder short description with CMD_DESCvariable#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 dependenciesfix Rscons.set_suffixto append the given suffix if the filename has noneremove ${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 commandsnew SimpleBuilder class
create new builders quickly by passing a block to Environment#add_builderimproved YARD documentationadd Environment#dump to debug Environment construction variables v1.7.0
allow build hooks to register new build targetsadd post-build hooks (register with Environment#add_post_build_hook)clear all build targets after processing an Environmentallow trailing slashes in arguments to Environment#build_dir v1.6.1
add DEPFILESUFFIX construction variable to override dependency file suffixfix 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 dependencyupdate construction variables to match SCons more closely
add CPPDEFPREFIX,INCPREFIX,CPPDEFINES,CCFLAGS,LIBDIRPREFIX, andLIBLINKPREFIXadd Environment#shelladd Environment#parse_flags,#parse_flags!,#merge_flagsunbuffer $stdoutby defaultadd PROGSUFFIXconstruction variable (defaults to.exeon MinGW/Cygwin)add Rscons::BuildTargetandBuilder#create_build_targetupdate specs to RSpec 3.x and fix to run on MinGW/Cygwin/Linuxadd YARD documentation to get to 100% coverage v1.4.3
fix builders properly using construction variable overridesexpand nil construction variables to empty strings v1.4.2
add Environment#expand_pathexpand 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 builderadd Disassemble builderadd Preprocess builderpass the Environment object to build hooks in the :env key of the build_op parameterexpand target/source paths beginning with "^/" to be relative to the Environment's build rootmany 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 cacheimplement copy-on-write semantics for construction variables when cloning Environmentsonly load the cache once instead of on each Environment#processonly write the cache when something has changedfix Cache#mkdir_pto 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 clonedallow nil to be passed in to Environment#build_root= v1.1.0
Change Cache#up_to_date?and#register_buildto accept a single target
file or an array of target file names |  |