josh
8cbb9fa30e
Place object files for absolute source paths under build_root - close #30
2017-05-29 12:16:46 -04:00
josh
1880e6650e
fix PROGSUFFIX handling - close #29
2017-05-29 11:40:01 -04:00
josh
d31b4725d2
add LEXSUFFIX, YACCSUFFIX construction variables - close #31
2017-05-29 11:03:01 -04:00
josh
6f242a1c64
Merge branch 'parallelization' - close #23
2017-05-29 10:58:55 -04:00
josh
c7943bc2cc
ignore .bundle
2017-05-29 10:57:27 -04:00
josh
b5826bd7f4
use new Builder#run signature for Command builder
2017-05-25 17:06:34 -04:00
josh
05bbea6fa1
add Environment#build_after
2017-05-25 17:00:21 -04:00
josh
68468b6422
fully parallelize the Command builder
2017-05-25 16:03:05 -04:00
josh
80a80a7cb0
fully parallelize the Preprocess builder
2017-05-25 15:54:33 -04:00
josh
178940cd5d
fully parallelize the CFile builder
2017-05-25 15:28:01 -04:00
josh
145d51c825
fully parallelize the Disassemble builder
2017-05-25 14:59:51 -04:00
josh
a11fab43cb
Update spec task to preserve simplecov coverage info for previous full spec runs when doing a partial spec run
2017-05-24 16:29:17 -04:00
josh
83226e894d
add backwards-compatibility test for Builder#standard_build
2017-05-24 16:16:53 -04:00
josh
b454208117
fully parallelize the Library builder
2017-05-24 16:10:58 -04:00
josh
df420fdf5c
use ThreadsWait (only for blocking thread waits)
2017-05-24 16:02:25 -04:00
josh
f3bf325c88
add a little more leeway in the multi-threading timing test
2017-05-24 15:58:11 -04:00
josh
f815952ab3
add Builder#standard_threaded_build, #standard_finalize
...
parallelize Program builder command
2017-05-24 15:41:39 -04:00
josh
1af3c5c9a4
pass Builder#run options into Builder#finalize also
2017-05-24 15:13:59 -04:00
josh
dce88ece14
pass entire build_operation Hash to Builder#run
2017-05-24 14:32:43 -04:00
josh
2655c119e4
add spec for Environment#find_finished_thread to fully cover
2017-05-23 16:47:00 -04:00
josh
221cde7e5f
update run_builder, build_sources integration tests for more coverage
2017-05-23 16:45:21 -04:00
josh
adcee373df
add integration test for Environment#build_sources
2017-05-23 16:28:13 -04:00
josh
e58b8bd109
add integration test for Environment#run_builder
2017-05-23 16:25:03 -04:00
josh
8a1dfb0785
do not catch NameError when looking up Builder#run method
2017-05-23 16:24:45 -04:00
josh
d315f86a36
remove unit tests for Environment#run_builder, #build_sources
2017-05-23 16:20:41 -04:00
josh
0d46d616dd
change user dependency test to use BuildTarget#depends
2017-05-23 16:09:29 -04:00
josh
032e6d5d0a
add some integration tests for the CLI
2017-05-23 16:06:21 -04:00
josh
c9946da193
integration tests: only pass -f when a specific rsconsfile is specified
2017-05-23 15:55:28 -04:00
josh
599d10b50f
add integration test for overriding PROGSUFFIX
2017-05-23 15:32:55 -04:00
josh
18c6c69871
do not use ThreadsWait to wait for threads; it does not work properly
2017-05-23 15:24:52 -04:00
josh
2ffdf82d9a
add multi-threading build test
2017-05-23 14:24:14 -04:00
josh
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
josh
a99e6e81b2
simplify Environment#process looping
2017-05-23 14:10:45 -04:00
josh
1509c95176
remove Cache.reset!
2017-05-23 14:05:29 -04:00
josh
c7bba77581
remove Program builder non-integration specs
2017-05-22 16:57:35 -04:00
josh
957fd8c86d
convert Library builder specs to integration tests
2017-05-22 16:54:10 -04:00
josh
7e707e7e3b
convert Object builder specs to integration tests
2017-05-22 16:38:57 -04:00
josh
2be738be4f
Including trailing newline when printing failed command
2017-05-22 16:26:12 -04:00
josh
7b3bffd329
update some non-integration-test specs
2017-05-22 16:25:49 -04:00
josh
06cb4b7a55
migrate some Cache tests to integration tests
2017-05-22 15:55:18 -04:00
josh
bfbbc19728
fix simplecov setup to get coverage for integration build tests
2017-05-22 11:19:55 -04:00
josh
28e56251dd
update build_tests_spec to invoke rscons in a subprocess for each test
2017-05-20 15:15:07 -04:00
josh
2d8e08b493
add -j command-line option to set number of threads
2017-05-19 11:38:42 -04:00
josh
5cef9896ac
consistently print failed build command if a builder fails
2017-05-19 10:57:30 -04:00
josh
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
josh
267fc7124d
process threaded commands until they are all complete
2017-05-17 15:52:34 -04:00
josh
e694199f33
delay building targets that depend on builds registered with Environment#register_builds
2017-05-17 15:45:04 -04:00
josh
4ed584701a
pass setup_info to the builder's #run method
2017-05-17 13:50:31 -04:00
josh
5de52620e4
JobSet#get_next_job_to_run: take into account targets still building
2017-05-17 10:19:43 -04:00
josh
9cc59a35f0
handle threaded commands in Environment#process
2017-05-17 10:07:15 -04:00
josh
ca445f5733
add JobSet#size
2017-05-17 09:36:27 -04:00
josh
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
josh
800e7a51a4
add Environment#start_threaded_command
2017-05-17 09:14:42 -04:00
josh
5d36aa74a0
add more fields to ThreadedCommand
2017-05-17 09:07:51 -04:00
josh
01851c2872
refactor into new Environment#command_to_s
2017-05-17 09:04:05 -04:00
josh
5fe55a584e
add short description field to ThreadedCommand
2017-05-17 08:49:53 -04:00
josh
9c13634eaf
start adding support for threaded commands in Environment#run_builder
2017-05-17 08:47:17 -04:00
josh
e4adaab003
add Builder#finalize
2017-05-16 09:18:08 -04:00
josh
6b8fda706d
add ThreadedCommand class
2017-05-15 10:57:34 -04:00
josh
ef4f9882cd
change Builder#run base class method to new signature
2017-05-12 21:08:14 -04:00
josh
7a31039e35
add @since tags for new methods
2017-05-12 21:07:25 -04:00
josh
3e4897c04b
store setup_info in the job
2017-05-12 16:30:30 -04:00
josh
d46dc2014c
update JobSet interface to just take a Hash of job parameters
2017-05-12 16:30:02 -04:00
josh
9cfc0c20b7
call Builder#setup
2017-05-12 16:27:43 -04:00
josh
19a00a7b84
prepare to call new Builder#run interface
2017-05-12 16:25:34 -04:00
josh
9b6d2c5111
add Environment#register_builds
2017-05-12 16:16:25 -04:00
josh
6a0ccad804
add Builder#setup; add new Builder#run signature
2017-05-12 16:16:07 -04:00
josh
dab870854a
add Rscons.n_threads
2017-05-12 14:38:18 -04:00
josh
695bf84092
expand target and source paths when registering a builder
2017-05-10 15:06:16 -04:00
josh
7cba8c8424
JobSet: target is already stored in job info
2017-05-10 14:57:04 -04:00
josh
551b8fa365
add integration test to verify cache is written if a builder fails
2017-02-16 19:27:18 -05:00
josh
3601359c08
process jobs from the JobSet
2017-02-16 19:27:18 -05:00
josh
e1d8dfbab6
add JobSet class
2017-02-16 19:27:18 -05:00
josh
c69da1044d
update README for v1.9.3
2016-09-30 14:04:58 -04:00
josh
f33be07a15
v1.9.3
2016-09-30 14:03:35 -04:00
josh
c4c2d5c128
Environment#parse_flags should put -std=XXX flags in CCFLAGS, not CFLAGS
2016-09-30 14:02:30 -04:00
josh
3065dc48ec
document passing multiple dependencies to env.depends()
2016-05-02 09:10:14 -04:00
josh
9ca2934695
document explicit dependencies
2016-03-02 13:33:00 -05:00
josh
3af6b6be1b
v1.9.2
2016-01-12 10:16:00 -05:00
josh
0442b876a5
allow phony targets in conjunction with a build root
2016-01-12 10:14:10 -05:00
josh
bab4641b6e
v1.9.1
2015-12-10 15:25:29 -05:00
josh
4698fc41b9
add v1.9.1 release notes
2015-12-10 15:25:16 -05:00
josh
952f423860
use ${INCPREFIX} instead of hard-coded "-I" in Preprocess builder
2015-12-10 15:19:41 -05:00
josh
d2da5f7b0d
bundle update
2015-12-10 15:18:59 -05:00
josh
ab14dc16ed
change *SUFFIX defaults to arrays; add various C++ file suffixes
2015-06-15 21:58:37 -04:00
josh
aa795eea85
v1.9.0
2015-03-15 20:56:37 -04:00
josh
7dffef6bd0
update README.md
2015-02-15 19:52:33 -05:00
josh
dce2114733
document Copy builder class
2015-02-15 18:42:37 -05:00
josh
0bbdda2d41
fix Command builder default short description
2015-02-15 18:41:41 -05:00
josh
3b8910075a
use class instance variables instead of class variables
2015-02-15 18:38:09 -05:00
josh
34beda844e
reorganize Rscons module class methods
2015-02-15 18:33:00 -05:00
josh
7a04bec2ff
support phony targets - close #25
2015-02-15 18:29:33 -05:00
josh
7698fbf618
add "rscons" binary - close #24
2015-02-08 18:04:37 -05:00
josh
4eedea2563
add Copy builder as a copy of Install
2015-02-07 09:57:44 -05:00
josh
f678803a5d
add Install builder - close #6
2015-02-07 09:49:29 -05:00
josh
9c49a09f69
update :spec rake task to allow example pattern as an argument
2015-01-29 09:58:09 -05:00
josh
859f87ddee
add a Directory builder - close #27
2015-01-29 09:31:00 -05:00
josh
73bc71a656
test expanding paths after a build target is registered from within a build hook
2015-01-28 17:15:55 -05:00
josh
29a8684f90
support registering multiple build targets with the same path - close #26
2015-01-28 17:10:36 -05:00
josh
02aff35222
allow overriding Command builder short description with CMD_DESC variable -- close #22
2015-01-24 09:40:07 -05:00