330 Commits

Author SHA1 Message Date
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
01851c2872 refactor into new Environment#command_to_s 2017-05-17 09:04:05 -04:00
5fe55a584e add short description field to ThreadedCommand 2017-05-17 08:49:53 -04:00
9c13634eaf start adding support for threaded commands in Environment#run_builder 2017-05-17 08:47:17 -04:00
e4adaab003 add Builder#finalize 2017-05-16 09:18:08 -04:00
6b8fda706d add ThreadedCommand class 2017-05-15 10:57:34 -04:00
ef4f9882cd change Builder#run base class method to new signature 2017-05-12 21:08:14 -04:00