336 Commits

Author SHA1 Message Date
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
d31b4725d2 add LEXSUFFIX, YACCSUFFIX construction variables - close #31 2017-05-29 11:03:01 -04:00
b5826bd7f4 use new Builder#run signature for Command builder 2017-05-25 17:06:34 -04:00
05bbea6fa1 add Environment#build_after 2017-05-25 17:00:21 -04:00
68468b6422 fully parallelize the Command builder 2017-05-25 16:03:05 -04:00
80a80a7cb0 fully parallelize the Preprocess builder 2017-05-25 15:54:33 -04:00
178940cd5d fully parallelize the CFile builder 2017-05-25 15:28:01 -04:00
145d51c825 fully parallelize the Disassemble builder 2017-05-25 14:59:51 -04:00
b454208117 fully parallelize the Library builder 2017-05-24 16:10:58 -04:00
df420fdf5c use ThreadsWait (only for blocking thread waits) 2017-05-24 16:02:25 -04:00
f815952ab3 add Builder#standard_threaded_build, #standard_finalize
parallelize Program builder command
2017-05-24 15:41:39 -04:00
1af3c5c9a4 pass Builder#run options into Builder#finalize also 2017-05-24 15:13:59 -04:00
dce88ece14 pass entire build_operation Hash to Builder#run 2017-05-24 14:32:43 -04:00
8a1dfb0785 do not catch NameError when looking up Builder#run method 2017-05-23 16:24:45 -04:00
18c6c69871 do not use ThreadsWait to wait for threads; it does not work properly 2017-05-23 15:24:52 -04:00
15e5d15424 Avoid Environment#process race condition
Race condition could have occurred if the last threaded command
was gathered in the non-blocking wait and then a blocking wait was
started because there was no job to run. Do not do a blocking wait
in this case.
2017-05-23 14:12:38 -04:00
a99e6e81b2 simplify Environment#process looping 2017-05-23 14:10:45 -04:00
1509c95176 remove Cache.reset! 2017-05-23 14:05:29 -04:00
2be738be4f Including trailing newline when printing failed command 2017-05-22 16:26:12 -04:00
2d8e08b493 add -j command-line option to set number of threads 2017-05-19 11:38:42 -04:00
5cef9896ac consistently print failed build command if a builder fails 2017-05-19 10:57:30 -04:00
6344692087 update Object builder to support parallelization; update Program and Library builders to register object builds from #setup 2017-05-19 10:49:16 -04:00
267fc7124d process threaded commands until they are all complete 2017-05-17 15:52:34 -04:00
e694199f33 delay building targets that depend on builds registered with Environment#register_builds 2017-05-17 15:45:04 -04:00
4ed584701a pass setup_info to the builder's #run method 2017-05-17 13:50:31 -04:00
5de52620e4 JobSet#get_next_job_to_run: take into account targets still building 2017-05-17 10:19:43 -04:00
9cc59a35f0 handle threaded commands in Environment#process 2017-05-17 10:07:15 -04:00
ca445f5733 add JobSet#size 2017-05-17 09:36:27 -04:00
7534b29e26 add Environment#wait_for_threaded_commands, use from #run_builder if delayed execution is not allowed 2017-05-17 09:34:19 -04:00
800e7a51a4 add Environment#start_threaded_command 2017-05-17 09:14:42 -04:00
5d36aa74a0 add more fields to ThreadedCommand 2017-05-17 09:07:51 -04:00