546 Commits

Author SHA1 Message Date
935848c3b5 remove some builder-tracked fields from the build_operation Hash 2019-02-16 18:21:19 -05:00
d047a1bf29 JobSet only stores builders instead of build info hashes 2019-02-16 18:06:03 -05:00
016bf5eac7 use Builder instance variables as much as possible in #finalize 2019-02-16 17:53:21 -05:00
33504f586b pass Builder object to build hooks instead of build_operation Hash 2019-02-13 21:13:13 -05:00
86594c62b6 begin transitioning builders to using instance variables instead of #run options Hash fields 2019-02-11 22:53:41 -05:00
ea25f62f7c remove deprecated Environment#add_target parameter - #84 2019-02-10 22:20:34 -05:00
f2cfc25604 Remove Environment#run_builder :allow_delayed_execution option - #84 2019-02-10 22:13:37 -05:00
a1f5f022d1 test build hooks overwriting entire vars hash as a non-backwards-compatiblity test 2019-02-10 22:07:08 -05:00
7992450383 Drop support for 5-argument form of Builder#run - #84 2019-02-10 21:47:34 -05:00
b41a368da1 alphabetize Util public methods 2019-02-10 21:26:37 -05:00
1b63dc7503 move Environment.parse_makefile_deps to Util 2019-02-10 21:23:52 -05:00
db788cdd35 Move Environment#command_to_s to Util. 2019-02-10 21:16:56 -05:00
3f8b4d616f Remove BuildTarget, Builder#create_build_target, and Builder#setup - close #90 2019-02-10 18:24:49 -05:00
aac32d20b0 create Builder instance for each build operation - close #88 2019-02-10 17:27:40 -05:00
12f1909d35 remove a few deprecated methods - #84 2019-01-04 13:55:00 -05:00
31ef45258f make global CLI options available under subcommands - close #86 2019-01-03 13:50:01 -05:00
9f9b7f0bf4 preserve .mf dependency files - close #58 2019-01-01 21:17:28 -05:00
918c629435 add verbose CLI option to set Environment default echo mode - close #70 2019-01-01 16:15:22 -05:00
eaac473f44 provide Environment construction option to use stored configuration settings - close #78 2019-01-01 15:49:15 -05:00
fa5aa51daa Do not rebuild after building after auto-configuration. - close #80
Split Environment into BasicEnvironment and Environment.
2018-12-30 15:57:05 -05:00
347d651ab6 Add builder construction variables to Environments before the builder is added. 2018-12-29 17:57:41 -05:00
08085f09c4 libs found with check_lib should be added to LIBS - close #79 2018-12-17 23:05:18 -05:00
5915ac2b95 ConfigureOp: refactor some logic into #store_common 2018-12-17 22:54:34 -05:00
a98c111cd2 implement distclean operation - close #81 2018-12-17 22:47:00 -05:00
93ffed2eb2 Use "Environment" instead of "Rscons::Environment" in build tests 2018-12-17 22:14:35 -05:00
f8e6666a2c Add 'build' DSL method.
Disallow processing Environments until configuration is performed.
2018-12-17 22:14:35 -05:00
5720662b7c avoid mkdir() race conditions - close #75 2018-12-11 22:13:52 -05:00
432d221be2 remove build_dir functionality - close #65 2018-12-11 22:06:20 -05:00
John Lindgren
a1efb1c1b3 Reduce recursion of VarSet#expand_varref by expanding vars earlier.
It's common for a build command to contain a reference like:

    ${INCPREFIX}${CPPPATH}

Where ${INCPREFIX} is "-I" and ${CPPPATH} is an array of include
paths.  Without this change, Rscons expands ${INCPREFIX} (and then
tries to expand "-I") repeatedly, once for each path.

This change simply makes Rscons intelligent enough to expand
${INCPREFIX} only once, then join the expanded value to each path.

In a mid-sized rake project, ruby-prof shows that the number of
calls to expand_varref is reduced from ~80,000 to ~30,000., and the
total CPU time spent in expand_varref is reduced by about 30%.

In a larger project, the improvement in real build time is small
but consistent enough to be measurable (~0.5 seconds off a total
of ~20 seconds).
2018-12-09 21:20:44 -05:00
7c7ee142e0 implement autoconf - close #63, close #68, closes #67 2018-12-03 22:23:42 -05:00
ba69f05e99 remove backtrace from stderr for unknown CLI options - close #69 2018-11-30 23:29:19 -05:00
6180410cc4 add spec for Cache validating JSON contents 2018-11-30 23:11:52 -05:00
2d44a88fb6 add spec for unknown CLI operation 2018-11-30 23:08:16 -05:00
28e3781331 add configure spec testing --prefix 2018-11-30 23:05:41 -05:00
c0a28d0207 add configure spec to check multiple set_define's being stored 2018-11-29 22:14:10 -05:00
0e27e967d0 configure: fix handling build_dir and prefix options 2018-11-29 22:06:36 -05:00
1ecce7e99e add configure spec to check as much as possible 2018-11-29 22:02:42 -05:00
25b73ebd8f move logic to find an executable from ConfigureOp to Util 2018-11-29 21:51:30 -05:00
bca963af5c add configure spec for check_cfg not finding the specified program 2018-11-29 21:28:37 -05:00
ba5377a1ce add configure specs to check for unknown compiler names 2018-11-29 20:51:24 -05:00
8d7fd4bda8 test all known compiler invocation commands - close #66 2018-11-29 17:44:36 -05:00
e3e2e46d6e fix configure :set_define handling to append to CPPDEFINES array 2018-11-25 22:00:55 -05:00
9e0ce5a55c add spec for check_cfg with a :package argument 2018-11-25 21:58:22 -05:00
b88131eb2f add specs testing configure :set_define option and fix the same 2018-11-25 21:45:46 -05:00
dff80587ac move Rscons.absolute_path?() to Util 2018-11-25 21:31:48 -05:00
cd2696dd0b add Util specs 2018-11-25 21:22:37 -05:00
36643c1ab1 add Util module and Util.make_relative_path() 2018-11-25 21:17:11 -05:00
778d9ed8b2 add simplecov filters to filter out spec/dspec tests when the opposite spec task is executed 2018-11-25 21:11:00 -05:00
660d30558a remove Environment#to_h 2018-11-25 21:00:29 -05:00
82fbd34149 add dspec task to test dist file; revert spec task to normal behavior 2018-11-25 20:45:32 -05:00