John Lindgren
fb5d107581
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-07 20:06:18 -05:00
d5c1a4b41a
v1.17.0
2018-11-02 17:01:52 -04:00
ce47bd3599
remove makefile target name check when parsing dependencies - close #57
2018-11-02 14:23:47 -04:00
michael.metivier
68cab5e24d
Environment.expand_varref has the same allowed parameter types and returns as Varset.expand_varref
2018-11-02 08:52:23 -04:00
michael.metivier
f92dd62ebd
Allow construction variable expansion on _true_ and _false_ literals
2018-11-02 00:03:54 -04:00
5cf77f1f58
v1.16.0
2018-08-24 09:24:03 -04:00
b4cc45c381
update documentation
2018-08-24 09:17:23 -04:00
284312a21c
support command-line variables - close #51
2018-08-23 14:58:08 -04:00
c7f66694ab
add Rscons.glob - close #50
2018-08-23 11:26:20 -04:00
57de94a3fb
improve debuggability of cache.up_to_date? - close #46
2018-08-23 10:10:05 -04:00
53ba7dad41
allow passing a VarSet into cache methods - close #47
2018-08-22 16:32:05 -04:00
8cb02a7e34
generate dependencies for D builds - close #49
2018-08-22 15:23:48 -04:00
0dc3a90660
v1.15.0
2017-09-08 15:13:04 -04:00
e900e74342
v1.14.0
2017-08-03 15:55:54 -04:00
099d26f33c
Add Rscons::VarSet#values_at - close #45
2017-08-03 15:54:24 -04:00
89562c584a
Environment#print_builder_run_message should support string commands - close #44
2017-08-03 14:10:53 -04:00
a9aeaf2356
v1.13.0
2017-07-14 16:24:27 -04:00
6d04500c13
Add ability to record side-effect file production - close #43
2017-07-14 16:17:01 -04:00
45e30662d2
add YARD comment for Rscons::Ansi to get to 100% coverage
2017-07-12 15:51:00 -04:00
8f7e044bfd
fix YARD @option tag
2017-07-12 15:50:13 -04:00
dbea6f0a26
v1.12.0
2017-07-11 16:16:01 -04:00
529d9aacaa
colorize a couple other builders' output messages
2017-07-11 16:12:38 -04:00
65c1bac4f9
be more colorful - close #41
2017-07-11 13:52:01 -04:00
775363ddbd
cloned Environments should inherit n_threads - close #42
2017-07-11 10:29:25 -04:00
2a96495e83
wait for in-progress subcommands to complete on build failure - close #39
2017-06-26 22:44:49 -04:00
15e52e488c
env.depends should imply env.build_after - close #40
2017-06-21 10:44:52 -04:00
9141cf91e7
v1.11.1
2017-06-14 09:57:11 -04:00
7f7e6ef3da
fix circular build dependency detection logic
2017-06-14 09:56:51 -04:00
5263ea03c6
v1.11.0
2017-06-14 08:56:21 -04:00
8deb1eb6f8
Change default :clone option to :all to clone all Environment attributes
2017-06-14 08:53:28 -04:00
694642dfbd
Allow overriding n_threads on a per-Environment level - close #34
2017-06-13 19:45:53 -04:00
6dd70ff65e
raise error when circular dependencies are found - close #38
2017-06-13 19:37:41 -04:00
eca01c38df
Fix non-blocking thread-wait if Rscons.n_threads is set to 0 - close #37
2017-06-13 19:07:04 -04:00
4ad6ce1d9c
SHCFLAGS and SHCXXFLAGS should inherit non-SH flags by default - close #36
2017-06-13 18:41:47 -04:00
a49ebc486e
env.build_after should expand paths - close #35
2017-06-13 18:38:47 -04:00
11864eb55b
v1.10.0
2017-06-10 00:50:43 -04:00
Michael Metivier
387c40176b
Pre-build hooks do not respect modified key values for old-style builders
2017-06-09 19:50:12 -04:00
f1b24ee8ba
minor formatting: replace missing space
2017-06-08 15:01:30 -04:00
010607d3b0
Rework builder features to be returned by Builder#features instead of taken into account by Builder#produces?
2017-06-08 11:07:01 -04:00
b7f609b7e8
add SHLIBPREFIX
2017-06-07 16:35:20 -04:00
aa192d7567
bugfix: Object and SharedObject should respect vars when checking source suffixes
2017-06-07 09:52:11 -04:00
ed5d6e9e49
homogenize slashes in Environment#expand_path()
2017-06-07 09:26:13 -04:00
3436dc3a64
Expand target and sources before calling Builder#create_build_target
2017-06-06 16:43:26 -04:00
df52a7e0e1
add SharedObject and SharedLibrary builders - close #8
2017-06-06 13:27:38 -04:00
6bd7e6f852
Object builder changes in preparation for adding SharedObject
2017-05-30 16:26:39 -04:00
19a23c2aa9
Create builder features
...
Pass desired features to Builder#produces?
Allow features to be passed in to Environment#register_builds.
Use features in Environment#get_build_fname to determine build file name.
2017-05-30 15:30:15 -04:00
c7e4e1ad9b
Always use a build root and default it to "build"
2017-05-30 11:06:32 -04:00
43df46018c
Support redirecting standard output using the Command builder - close #28
2017-05-29 12:50:34 -04:00
8cbb9fa30e
Place object files for absolute source paths under build_root - close #30
2017-05-29 12:16:46 -04:00
1880e6650e
fix PROGSUFFIX handling - close #29
2017-05-29 11:40:01 -04:00