470 Commits

Author SHA1 Message Date
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
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
0e27e967d0 configure: fix handling build_dir and prefix options 2018-11-29 22:06:36 -05:00
25b73ebd8f move logic to find an executable from ConfigureOp to Util 2018-11-29 21:51:30 -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
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
36643c1ab1 add Util module and Util.make_relative_path() 2018-11-25 21:17:11 -05:00
660d30558a remove Environment#to_h 2018-11-25 21:00:29 -05:00
e0b82d37af cache: remove obsolete "default_environment_vars" entry 2018-11-25 17:02:02 -05:00
7a90325b67 set Environment build root automatically - close #64 2018-11-25 16:58:19 -05:00
49116e6b59 store build_dir and prefix configuration options in cache 2018-11-25 16:06:36 -05:00
90300a1606 pass operation options via Hash instead of setting Application attributes 2018-11-25 16:02:04 -05:00
1eb07e9a22 use Rsconscript instead of Rsconsfile - close #62 2018-11-25 15:42:53 -05:00
9975eec165 add build test for check_cfg - close #59 2018-11-23 22:23:01 -05:00
04c0a6a86f colorize configure messages more consistently 2018-11-23 21:55:02 -05:00
bfdf3a12fd load configuration data when constructing a new Environment - close #60 2018-11-23 21:23:19 -05:00
6dd9c835ce store configuration data more opaquely in Cache 2018-11-23 20:15:39 -05:00
cfec0dcadc simplify Application/Script/ConfigureOp interaction with direct calls to configure methods 2018-11-23 19:59:47 -05:00
a1c1cc1855 check_cfg: print something 2018-11-15 17:14:11 -05:00
add9f9c50d save configured environment construction flags for separate build step - close #60 2018-11-15 17:04:04 -05:00
ba3d656110 consolidate some configure check reporting 2018-11-14 23:30:47 -05:00
ab4ca71ac7 implement ConfigureOp#check_cfg - not tested yet 2018-11-14 23:28:00 -05:00
aba11155a4 rename check_executable to check_program 2018-11-14 23:00:40 -05:00
3b586cb476 implement ConfigureOp#check_lib 2018-11-14 22:53:00 -05:00
88fd4bd405 robustify Ansi module a bit 2018-11-12 21:50:16 -05:00
7869d38dd8 implement ConfigureOp#check_executable 2018-11-07 22:22:07 -05:00
e8990199ef configure: output project name and build directory 2018-11-07 21:56:23 -05:00
6078cb0977 implement ConfigureOp#check_d_import 2018-11-07 21:49:44 -05:00
85b0111a6e implement ConfigureOp#check_cxx_header 2018-11-07 21:44:04 -05:00
6bb0a55a55 implement ConfigureOp#check_c_header 2018-11-07 21:39:42 -05:00
cd9fffd828 Script: change the way configuration arguments are stored 2018-11-07 20:52:39 -05:00
30511a3443 pass the Environment to configure to ConfigureOp; begin modifying it in the tests 2018-11-07 20:46:07 -05:00
d656df5407 implement ConfigureOp#check_d_compiler 2018-11-07 19:05:08 -05:00
d54d363a25 implement ConfigureOp#check_cxx_compiler 2018-11-07 18:53:06 -05:00
bdeaec11ba Ansi: add some other colors 2018-11-06 22:19:49 -05:00
7eeb6312ba check_c_compiler: print output; add a integration test 2018-11-06 22:16:38 -05:00
af033ee4e0 fill in ConfigureOp#test_c_compiler 2018-11-06 21:45:29 -05:00
c9de4f37e6 allow configure to fail; application should return error code from operation 2018-11-06 15:42:10 -05:00
64caaa9a53 add ConfigureOp class 2018-11-06 00:17:22 -05:00
d196845c85 parse 'configure' command-line options 2018-11-04 00:16:53 -04:00
b5a8b6f628 remove makefile target name check when parsing dependencies - close #57 2018-11-02 14:24:02 -04:00
michael.metivier
7edcef2b30 Environment.expand_varref has the same allowed parameter types and returns as Varset.expand_varref 2018-11-02 11:42:32 -04:00