8f0f320a07
v3.0.2
2022-03-14 00:36:17 -04:00
12f6936084
Update CHANGELOG for v3.0.2
2022-03-14 00:36:05 -04:00
866b40d872
Configure parameters should not be stored as unscoped construction variables - close #160
2022-03-14 00:34:52 -04:00
f06d37c8b9
Compiler check configure methods should respect :use flag - close #159
2022-03-14 00:27:02 -04:00
21f8e2435e
v3.0.1
2022-03-13 22:27:16 -04:00
97c4f7c757
Update CHANGELOG for v3.0.1
2022-03-13 22:27:16 -04:00
b3df37e9ea
Do not configure for clean tasks when not yet configured - close #158
2022-03-13 22:27:16 -04:00
1bf1c30242
Load configure task arguments before early configure operations - close #157
2022-03-13 20:16:01 -04:00
b932380b3b
Avoid running configure operation twice - close #156
2022-03-11 21:17:07 -05:00
e3ea429253
Fix running dspec task with argument
2022-03-11 21:13:52 -05:00
dca4c49770
Avoid trailing spaces in distributable script
2022-03-07 21:08:17 -05:00
b068fe7574
Test that custom clean task action blocks are execution
2022-02-28 11:59:52 -05:00
ecd91e1171
v3.0.0
2022-02-27 20:55:16 -05:00
f36b71af3f
Fix ARCMD spec for Linux and MacOS
2022-02-27 19:16:59 -05:00
90c3867cae
Tweak specs to all pass cleanly on MacOS
2022-02-27 19:10:18 -05:00
20b5020284
bundle update
2022-02-27 18:06:39 -05:00
cb540741a4
Clarify task parameter construction variable names
2022-02-27 17:44:01 -05:00
bc17a9b38f
Test that clean task does not process environments
2022-02-27 17:34:48 -05:00
cec1331054
Rename build specs from operation to task
2022-02-27 17:34:38 -05:00
bb4657e465
Process environments created during task execution phase
2022-02-27 16:55:59 -05:00
29ca9b3f13
Fix YARD warnings
2022-02-27 16:40:09 -05:00
5ab982b84c
Add GCC Cross Compiler example build script
2022-02-27 16:28:09 -05:00
e6e860e3c1
Document download build script method
2022-02-27 16:27:24 -05:00
3cfffed7ec
Document spawn options to sh method
2022-02-27 16:07:35 -05:00
b2d47cd439
Document ^^/ prefix
2022-02-27 16:05:28 -05:00
6a10d68fac
Expand CLI usage printout
2022-02-27 16:02:00 -05:00
88a8f2395d
Update user guide for v3.0.0
...
Document variants
2022-02-27 15:51:20 -05:00
b82d6f2e62
Include user guide Overview section in README.md
2022-02-27 12:56:23 -05:00
150943f23f
Update CHANGELOG.md for v3.0.0
2022-02-27 12:52:59 -05:00
59f1a89f4f
Add -A CLI flag to show all tasks
2022-02-27 12:41:47 -05:00
ea66501311
Show variants in -T output
2022-02-22 15:46:19 -05:00
e9e3c6711f
Add build_dir script method - close #155
2022-02-20 18:13:59 -05:00
8269a98d01
Add variants - close #137
2022-02-20 08:54:33 -05:00
19dee2b2a5
Add variants - #137
...
Add build script methods: variant, variant_group, with_variants
2022-02-16 12:23:30 -05:00
5b6353395d
Store configure task parameters in configuration cache data - close #151
2022-02-14 21:52:35 -05:00
7e5c6e6b12
Store task parameter values in a Hash
2022-02-13 12:46:26 -05:00
44f61da571
Only configure if necessary - close #131
2022-02-12 23:18:00 -05:00
5c28e557bd
Sort task output with -T
2022-02-12 22:14:10 -05:00
ef7e9259cb
Add shortcut method for creating environments - close #149
...
Add env() method to create environments.
Process all environments created at build script top level before
executing any autoconf-enabled tasks, or if no tasks are specified by
the user.
2022-02-12 21:59:52 -05:00
6d5f44d4e5
Allow passing spawn options to sh - close #153
2022-02-06 14:02:26 -05:00
8b2387f7a3
Add download script method - close #152
2022-02-05 16:51:52 -05:00
7b746db64e
Tweak user guide styling; remove gradient border
2022-01-30 22:04:04 -05:00
3aca248e9d
Minor CHANGELOG fix
2022-01-30 22:03:43 -05:00
3914dd896c
Remove references to build operation in the user guide
2022-01-30 21:56:42 -05:00
df120af953
Add env.expand() shortcut method to expand paths and construction variables - close #150
2022-01-30 15:00:59 -05:00
b745ae1153
Add license/copyright to distributable script - close #148
2022-01-30 13:49:22 -05:00
693f8cec64
Update LICENSE copyright
2022-01-30 13:46:42 -05:00
e12acccd33
Fix large project generated script
2022-01-30 13:46:23 -05:00
bd9cf55b85
Add tasks - close #139
2022-01-30 13:45:06 -05:00
f5ab51c477
Add ^^/ shortcut to top-level build directory - close #146
2022-01-21 20:45:05 -05:00
b0f2bbb7d5
Support environment variable to set rscons build directory - close #145
2022-01-17 18:02:58 -05:00
c1dcfa297f
Add FileUtils class methods to script DSL - close #144
2022-01-17 16:41:36 -05:00
034dbcd9a6
Update ruby-doc.org URL
2022-01-17 16:03:08 -05:00
b5d5fe7a7b
Add 'sh' script DSL method - close #142
2022-01-17 15:57:34 -05:00
610b8f1266
Add Size builder - close #143
2022-01-17 12:50:38 -05:00
a316c4f922
Support naming environments - close #140
2022-01-13 12:56:23 -05:00
97dbaeb82d
Move rsconscache into build directory - close #136
2022-01-09 23:08:28 -05:00
a2f72c6b87
v2.3.0
2021-12-04 09:43:03 -05:00
7055cad73c
Add v2.3.0 release notes
2021-12-04 09:27:24 -05:00
4548f4e3c9
Document phony targets - close #141
2021-12-01 23:00:12 -05:00
19dbab3426
Run subsidiary rscons binary from rscons() method if found - close #129
2021-11-28 22:36:24 -05:00
69f5bea2b2
Fix specs for dependency file moving - #135
2021-11-28 15:10:25 -05:00
2ee9dda49d
Write dependency file to build directory when user invokes Object builder directly - close #135
2021-11-18 20:18:19 -05:00
f011b23499
Add PATH manipulation methods - close #126
2021-11-17 21:39:58 -05:00
80d52f25b8
Document CMD_STDOUT variable for Command builder - close #134
2021-11-15 21:52:11 -05:00
0face546e3
Clarify failed command error message indicating to run -F - close #133
2021-11-15 21:45:18 -05:00
ca747232cd
Support passing a directory to rscons() method - close #128
2021-11-13 11:36:25 -05:00
a7b46093e9
Document -f command line option - close #130
2021-11-13 11:07:15 -05:00
09892eed63
Add DEVELOPING.md
2021-11-07 21:09:42 -05:00
117df43f64
Document rscons() build script method for subsidiary build scripts
2021-10-27 23:02:04 -04:00
acc12822b6
Add description for user_guide task
2021-10-27 22:42:31 -04:00
8c7b43f60c
Show a message when entering/leaving a subsidiary script directory
2021-10-22 16:48:44 -04:00
7c8becc3f9
env.depends() does not work with build-root-relative "^/" paths - close #121
2021-10-22 16:03:10 -04:00
d1a35501ef
Support subsidiary Rsconscript files - close #125
2021-10-22 13:58:38 -04:00
28a245f0ab
build_dist: Remove lines marked just for specs
2021-10-22 13:58:38 -04:00
87a6d9f04f
Do not run simplecov on dspec specs
2021-10-22 13:58:38 -04:00
556c821cc6
Commonize error handling across all operations
2021-10-21 18:35:58 -04:00
441fc9bc65
bundle update
2021-09-02 15:37:33 -04:00
1861874f5c
bundle update
2021-01-11 15:15:42 -05:00
dependabot[bot]
6d51c5cbde
Bump redcarpet from 3.5.0 to 3.5.1
...
Bumps [redcarpet](https://github.com/vmg/redcarpet ) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/vmg/redcarpet/releases )
- [Changelog](https://github.com/vmg/redcarpet/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vmg/redcarpet/compare/v3.5.0...v3.5.1 )
Signed-off-by: dependabot[bot] <support@github.com>
2021-01-11 19:21:14 +00:00
73af83803a
add v2.2.0 release notes
2020-10-13 19:04:29 -04:00
353f4f45bc
v2.2.0
2020-10-13 18:59:18 -04:00
5bac91f92f
add failure messages for failed configuration checks - close #119
2020-10-12 21:01:04 -04:00
bbe9563ceb
compiler checks should support cross-compilers and freestanding compilers - close #118
2020-10-08 19:23:17 -04:00
5ec74604c6
improve support for MSYS2 - close #120
2020-10-08 19:04:50 -04:00
8e06efe61e
v2.1.0
2020-04-16 16:52:58 -04:00
0756874ddb
update CHANGELOG for v2.1.0
2020-04-16 16:51:16 -04:00
dded5e2648
ruby 2.7 compatibility - #117
2020-04-16 15:48:45 -04:00
fbe60f6ba2
stick with simplecov 0.15.x for now
2020-04-16 15:02:01 -04:00
8dd9799666
Revert "update simplecov"
...
This reverts commit 01ca86de8b02ef7db222eb5db2598762ba9a516b.
2020-04-16 15:02:01 -04:00
f2c755c8bb
update bundle
2020-04-16 13:07:20 -04:00
01ca86de8b
update simplecov
2020-02-29 14:27:21 -05:00
943fabd0d1
update some gems
2020-02-29 10:47:46 -05:00
d08e2f6b5c
v2.0.2
2019-12-16 21:36:38 -05:00
90365dd197
update CHANGELOG for v2.0.2
2019-12-16 21:36:22 -05:00
8d05516c40
distinguish object files built from multiple sources with the same base name but different extensions - close #113
2019-12-14 00:10:42 -05:00
db49d86866
show a configuration failed message on stderr on configuration failure
2019-10-14 22:57:49 -04:00
e667455c32
user guide: fix configure script example
2019-10-14 22:49:34 -04:00
e62332aba6
avoid backtrace when configuring fails during autoconf
2019-10-14 22:23:18 -04:00
397639849d
call print_run_message() in json_to_yaml build test
2019-10-12 17:59:08 -04:00
96d5caf2e5
user guide: fix print_run_message() examples
2019-10-12 17:57:58 -04:00
f4b10a30af
update CHANGELOG for v2.0.1
2019-10-02 21:10:29 -04:00
cf52c3fc6f
v2.0.1
2019-10-02 20:59:58 -04:00
5378afb6f8
Install builder cannot replace a currently executing binary on Linux - close #112
2019-09-28 23:18:31 -04:00
48d9273cc6
v2.0.0
2019-09-11 23:32:27 -04:00
efea4f1181
user guide: Installation: mention marking rscons executable
2019-09-11 23:29:25 -04:00
b4fa6d965c
CHANGELOG - add logo
2019-09-11 23:25:19 -04:00
ac56ad34f6
add rscons logo to README
2019-09-11 23:24:20 -04:00
2fd533a32a
clobber large_project directory
2019-09-11 23:20:22 -04:00
c938ed71d1
add "all" rake task
2019-09-11 23:19:46 -04:00
ec60201a62
user guide: add rscons logo
2019-09-11 23:18:38 -04:00
0cafb8c5b3
user guide: stylize as "Rscons"
2019-09-11 23:15:16 -04:00
004810386b
clobber should remove "gen" directory
2019-09-11 23:15:02 -04:00
a15ee9daaf
add logo images
2019-09-11 23:02:17 -04:00
cd33405697
user guide: add FreeBSD compatibility
2019-09-01 21:52:32 -04:00
efa77066bf
allow ConfigureOp#log_and_test_command to be passed standard input data - close #111
2019-09-01 21:50:57 -04:00
a1bb9d81fd
check_program: do not fail on Windows for non-existent PATH entries
2019-08-27 19:47:21 -04:00
0344f02cb1
build tests: use -m instead of -lc for mingw
2019-08-27 19:32:36 -04:00
d52bdaf046
build tests: do ldc2 tests even if omit_gdc_tests set
2019-08-27 18:51:56 -04:00
ad7ccb771d
update build test for gdc fix
2019-08-27 18:50:01 -04:00
044ee343ca
Use OBJSUFFIX of .obj for ldc2 on Windows.
2019-08-26 19:10:19 -04:00
eb54a2b64a
fix specs create_exe() on Windows
2019-08-26 18:51:03 -04:00
2dd1ce9f1d
Use base64 encoding for compressed script to avoid encoding issues.
2019-08-26 18:33:42 -04:00
1e157c79ec
fix dependency parsing with ldc2 - close #110
2019-08-19 22:56:54 -04:00
2385874f4a
v2.0.0beta2
2019-08-17 17:07:59 -04:00
c5c42e6f4a
user guide: document a couple missing configure flags and link to YARD some places
2019-08-17 17:00:36 -04:00
9a627b2150
add YARD comments to get to 100% YARD coverage
2019-08-17 16:42:14 -04:00
937c964c3e
document :use better
2019-08-17 16:35:06 -04:00
a2a1d08014
user guide: document Custom Configuration Checks
2019-08-17 16:35:06 -04:00
0ccf43cc96
custom config checks - close #108
2019-08-17 16:06:37 -04:00
d202e15a57
user guide: document direct mode for Program/SharedLibrary builders
2019-07-29 21:57:38 -04:00
94f808b1fc
user guide: add Barriers section
2019-07-29 21:32:04 -04:00
51a9dd365f
add :check_libpath option to check_lib configuration method - #107
2019-07-29 21:00:52 -04:00
6e590b62a6
add :check_cpppath option to check_c_header and check_cxx_header
...
configuration methods
add :check_d_import_path option to check_d_import configuration method - #107
2019-07-09 23:53:17 -04:00
3aac190ad6
configure checks: compile instead of link when looking for C/C++ header files and D imports
2019-07-09 23:41:51 -04:00
d6b9487e65
user guide: document -F command-line flag
2019-07-09 23:06:45 -04:00
66d2700faa
clarify -F command-line option usage more
2019-07-09 23:06:45 -04:00
ba98af1424
default configure checks :fail option to false if :set_define is specified
2019-07-09 22:00:50 -04:00
cf4f80c9ae
user guide: document first compiler found is used
2019-07-09 21:47:45 -04:00
d74785d579
Add v2.0.0 changes to CHANGELOG.md
2019-07-07 22:15:44 -04:00
4fd822fb95
user guide: add warning when viewing markdown source file directly
2019-07-07 21:38:17 -04:00
b39fd80d8c
user guide: add ./configure && make Appendix section
2019-07-07 21:29:30 -04:00
ef00c9f377
add link to github.io site from README.md
2019-07-02 22:39:33 -04:00
1ddc03b285
v2.0.0beta1
2019-07-02 22:31:27 -04:00
f686f9e787
user guide: rename Reference -> Appendix
...
add YARD API Documentation link
2019-07-02 22:27:11 -04:00
b6c19b7f00
generate YARD docs to gen/yard
2019-07-02 22:04:06 -04:00
4fc18e5d91
remove README.md content that was moved to user guide
2019-07-02 22:00:03 -04:00
cda5584448
user guide: import some content from README.md
2019-07-02 21:59:22 -04:00
30d82392b5
user guide: fill in Default Construction Variables section
2019-07-02 21:25:16 -04:00
63d875da7f
bundle update
2019-07-02 19:44:12 -04:00
8593c5e219
user guide: fill in a lot of Adding Custom Builders section
2019-06-23 19:07:20 -04:00
9bf0abbece
user guide: fix inter-page links
2019-06-23 17:29:50 -04:00
02ef6e0846
user guide updates
2019-06-23 17:27:16 -04:00
f97ee94e44
user guide: fix single-page TOC links
2019-06-14 21:53:57 -04:00
55a2ea6d6b
user guide: fill in Adding New Languages section
2019-06-14 21:48:27 -04:00
59ab8e46c4
user guide: change page navigation to a table
2019-06-14 17:24:31 -04:00
baebe744b3
user guide: fixed page width
2019-06-14 16:51:14 -04:00
0ad3f815c5
user guide: include section numbers in page navigation links
2019-06-14 16:47:54 -04:00
ca6336c715
user guide: add page navigation links
2019-06-14 16:45:59 -04:00
a11c27f415
user guide: break more sections into separate pages
2019-06-14 16:23:09 -04:00
5c77cac354
user guide: turn on multi-page generation
2019-06-14 16:16:02 -04:00
46294b2a88
user guide: add Page class to prepare for multi-page output
2019-06-14 16:09:44 -04:00
5f71781806
user guide: preparing for multi-page generation
2019-06-14 16:04:14 -04:00
22b007df3a
user guide: create render_toc() and render_section() methods
2019-06-14 15:55:55 -04:00
4339d358f8
user guide: Builders comment about starting path with "^/"
2019-06-14 15:44:06 -04:00
e4b96b759f
user guide: implement section links
2019-06-14 15:42:21 -04:00
fcb686ac5f
user guide: keep track of page for sections
2019-06-14 15:34:01 -04:00
e5c690a4fc
user guide: expand Builders section
2019-06-14 15:16:22 -04:00
5b67ad88d3
user guide: document an Environment a bit more
2019-06-14 15:16:12 -04:00
dbd8b47bf9
add Getting Started section
2019-06-14 14:52:56 -04:00
8222958ae3
promote CHANGELOG.md section levels
2019-06-14 14:47:59 -04:00
56f104b5e7
user guide: improve changelog handling
2019-06-14 14:44:00 -04:00
947a65a75e
user guide: fix section anchors
2019-06-09 22:45:26 -04:00
66fac4f982
remove link underlines
2019-06-09 22:43:44 -04:00
254584435f
user guide: indent table of contents
2019-06-09 22:40:07 -04:00
f74d8202d3
user guide: add table of contents
2019-06-09 22:31:47 -04:00
bbf2319da6
user guide: generate section numbers
2019-06-09 22:17:00 -04:00
812b1cbe9c
user guide: put borders on body content
2019-06-09 15:34:41 -04:00
0d2fe02b9c
user guide updates for code sections
2019-06-09 13:22:01 -04:00
c7fb88db82
rename rake task gen_user_guide -> user_guide
2019-06-09 13:04:12 -04:00
49f4367125
update LICENSE.txt
2019-06-09 13:01:30 -04:00
c4d062752d
quote some CHANGELOG entries to avoid Markdown processing
2019-06-09 12:58:35 -04:00
5b3e10ff72
add Ruby syntax highlighting to user guide generator
2019-06-08 22:56:26 -04:00
5f1ad78e8c
continue on user guide generator
2019-06-08 22:27:19 -04:00
9f00063d57
add gen_user_guide task
2019-06-08 21:46:04 -04:00
6328ceee2a
start on user guide html generator
2019-06-05 00:13:27 -04:00
26a9307533
User Guide: add a couple ${include}'s
2019-06-05 00:06:34 -04:00
90886ed9ad
User Guide: add glob() and Builders documentation
2019-06-04 22:59:04 -04:00
8df73e9d11
User Guide: add Build Operations section
2019-06-02 12:20:23 -04:00
f239b27c3a
add user guide section: Writing the Build Script / configure Block
2019-05-26 19:47:44 -04:00
5e6b83411b
User Guide: clarify Build Correctness section
2019-05-22 23:42:49 -04:00
54e77f235f
finish documentation for command-line operations
2019-05-22 23:31:37 -04:00
4e08de9043
pull in redcarpet and syntax gems
2019-05-21 23:50:26 -04:00
0d8aec0eb1
fill in a couple links
2019-05-21 23:36:58 -04:00
573a542f84
add doc/user_guide.md
2019-05-21 23:20:45 -04:00
ef2a9084db
allow --help CLI option with no Rsconscript present - close #106
2019-05-19 12:13:03 -04:00
bfcd0c0b05
generate yard docs to /yard instead of /doc
2019-05-14 21:35:56 -04:00
215f5e4b51
move Environment#shell to BasicEnvironment; clean up a few yard warnings
2019-05-09 22:41:28 -04:00
6229cef015
remove @since tags for 2.0.0
2019-05-09 22:33:26 -04:00
6be0d322a7
store expanded .rscons script next to rscons script - close #105
2019-05-09 22:30:20 -04:00
89e43fea1c
use 10000 sources for large project instead of 1000
2019-05-09 22:22:14 -04:00
458eeaf93d
Add VarSet#get_var and Environment#get_var - #92
2019-05-09 21:52:07 -04:00
dd3d468a28
minor clarification to Environment#process_step behavior
2019-05-09 21:36:31 -04:00
a4dec210ae
slightly reorder VarSet#deep_dup to optimize - #92
2019-05-08 23:16:22 -04:00
fa14102ba5
Reorder VarSet#expand_varref class checks so the more common ones match earlier - #92
2019-05-08 22:50:34 -04:00
87a15b3868
Do not calculate checksums for side-effect files - #92
2019-05-08 22:39:50 -04:00
f23fbcd6d1
clear file checksum cache less frequently - #92
2019-05-08 22:30:41 -04:00
b02a7573b9
speed up handling of registered side-effect files - #92
2019-05-08 22:15:44 -04:00
d0cd0a14a4
remove Cache#validate_json_object - #92
2019-04-30 22:30:24 -04:00
5cb895f465
add gen_large_project rake task for testing rscons performance on a large project
2019-04-30 22:25:45 -04:00
cd1c54bf0d
update output coloring with highlighting for target and source filenames - close #104
2019-04-30 21:05:44 -04:00
a4fead7dc6
show build progress - close #98
2019-04-28 22:40:50 -04:00
59a3cb4e10
verbose mode should list operations and their execution times - close #103
2019-04-27 22:29:18 -04:00
785e8e18fd
a clean operation should preserve install target cache info - close #101
2019-04-27 21:39:52 -04:00
49e1bca1f7
uninstall operation should list removed entities in verbose mode - close #102
2019-04-27 21:28:56 -04:00
fd054a07c4
implement install and uninstall operations - close #82
...
add "prefix" construction variable - close #99
add InstallDirectory builder - close #100
2019-04-23 22:01:09 -04:00
328babe1f4
imbue Cache with knowledge of whether a target or directory is for a build or install operation
2019-04-22 22:19:39 -04:00
c60589a9c9
move a few Install builder tests to Copy builder
2019-04-19 14:32:25 -04:00
04fc9866c4
recurse to configure before build rather than calling configure() directly
2019-04-19 14:15:33 -04:00
7a807575b2
only use build_tests/typical/install.rb for Install builder specs
2019-04-19 14:12:33 -04:00
787b3249a7
raise error if user constructs an Environment before configuration is complete
2019-04-14 20:45:31 -04:00
3115e55739
move Application#determine_n_threads -> Util.determine_n_threads
2019-04-14 15:49:46 -04:00
0c07ea0437
compress rscons script like waf - close #76
2019-04-14 15:26:28 -04:00
0e7c976089
fix inconsistent type handling in VarSet#expand_varref - #73
2019-04-14 14:11:48 -04:00
921f0d2cb1
expose glob method directly to Rsconscript - close #97
2019-04-14 12:51:37 -04:00
c23426c5aa
remove SharedObject special handling in Environment#get_build_fname - close #96
2019-04-14 12:41:12 -04:00
ea2b1e73d1
add direct mode to Program builder - close #61
2019-04-14 12:35:28 -04:00
9bf4b8fa96
add barriers - close #53
2019-04-09 22:29:22 -04:00
008fa4844d
allow passing Builder objects as sources to build targets - close #95
2019-04-09 20:35:46 -04:00
568b78e2e2
test tracking object file source language - #87
2019-04-09 19:52:25 -04:00
3b00016278
Program builder cleanup, track object file source language - #94 , #87
2019-04-09 19:41:13 -04:00
a655d04541
Add Depfile builder mixin - #94
2019-04-09 18:41:02 -04:00
5534878f68
Object builder cleanup - #94
2019-04-09 18:28:42 -04:00
1efee50b2c
add Builders::Mixins::ObjectDeps to commonize some builder functionality
2019-03-16 22:34:07 -04:00
3ff09978f4
remove Builder.features and Builder.produces?
2019-03-16 21:54:20 -04:00
ac1fc6d106
move default construction variables into one place
2019-03-13 21:17:37 -04:00
06b9c98ed0
support false :use value for configure operations - close #93
2019-02-28 21:09:56 -05:00
f58744d31f
mv build_dist.rb -> rb/build_dist.rb
2019-02-28 21:00:39 -05:00
bf136e79f2
rework showing failed command - close #89
2019-02-26 06:52:43 -05:00
ab2fa1662f
Replace specialized Cache accessors with general #[]/#[]= methods.
2019-02-25 21:22:54 -05:00
68118c2707
Remove Cache dirty-tracking
...
It really wasn't necessary since Cache#write is not called often.
2019-02-25 21:16:48 -05:00
6ce3d59ad9
Add integration test for copying multiple sources with Copy builder
2019-02-25 21:13:57 -05:00
983862a528
update builder messages - close #77
2019-02-18 22:30:11 -05:00
658b73e4de
add build test for a builder waiting on another builder
2019-02-17 22:20:51 -05:00
b882f8de99
Rework builder interface to only use #run method - close #91
...
The builder's #run method will be called repeatedly until it returns
true or false. The Builder#wait_for method can be used to cause a
builder to wait for a Thread, Command, or another Builder.
2019-02-17 22:08:39 -05:00
8426a54a57
replace JobSet with BuilderSet
2019-02-17 14:17:31 -05:00
ee1640008c
simplify JobSet logic a little
2019-02-17 13:59:03 -05:00
7cfd23e16f
remove :builder and :cache from build_operation
2019-02-16 19:12:33 -05:00
5c3b615aee
remove unused :which parameter to Environment#wait_for_threaded_commands
2019-02-16 18:36:44 -05:00
935848c3b5
remove some builder-tracked fields from the build_operation Hash
2019-02-16 18:21:19 -05:00
d047a1bf29
JobSet only stores builders instead of build info hashes
2019-02-16 18:06:03 -05:00
016bf5eac7
use Builder instance variables as much as possible in #finalize
2019-02-16 17:53:21 -05:00
33504f586b
pass Builder object to build hooks instead of build_operation Hash
2019-02-13 21:13:13 -05:00
86594c62b6
begin transitioning builders to using instance variables instead of #run options Hash fields
2019-02-11 22:53:41 -05:00
ea25f62f7c
remove deprecated Environment#add_target parameter - #84
2019-02-10 22:20:34 -05:00
f2cfc25604
Remove Environment#run_builder :allow_delayed_execution option - #84
2019-02-10 22:13:37 -05:00
a1f5f022d1
test build hooks overwriting entire vars hash as a non-backwards-compatiblity test
2019-02-10 22:07:08 -05:00
7992450383
Drop support for 5-argument form of Builder#run - #84
2019-02-10 21:47:34 -05:00
b41a368da1
alphabetize Util public methods
2019-02-10 21:26:37 -05:00
1b63dc7503
move Environment.parse_makefile_deps to Util
2019-02-10 21:23:52 -05:00
db788cdd35
Move Environment#command_to_s to Util.
2019-02-10 21:16:56 -05:00
3f8b4d616f
Remove BuildTarget, Builder#create_build_target, and Builder#setup - close #90
2019-02-10 18:24:49 -05:00
aac32d20b0
create Builder instance for each build operation - close #88
2019-02-10 17:27:40 -05:00
12f1909d35
remove a few deprecated methods - #84
2019-01-04 13:55:00 -05:00
31ef45258f
make global CLI options available under subcommands - close #86
2019-01-03 13:50:01 -05:00
9f9b7f0bf4
preserve .mf dependency files - close #58
2019-01-01 21:17:28 -05:00
918c629435
add verbose CLI option to set Environment default echo mode - close #70
2019-01-01 16:15:22 -05:00
eaac473f44
provide Environment construction option to use stored configuration settings - close #78
2019-01-01 15:49:15 -05:00
fa5aa51daa
Do not rebuild after building after auto-configuration. - close #80
...
Split Environment into BasicEnvironment and Environment.
2018-12-30 15:57:05 -05:00
347d651ab6
Add builder construction variables to Environments before the builder is added.
2018-12-29 17:57:41 -05:00
08085f09c4
libs found with check_lib should be added to LIBS - close #79
2018-12-17 23:05:18 -05:00
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
93ffed2eb2
Use "Environment" instead of "Rscons::Environment" in build tests
2018-12-17 22:14:35 -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
6180410cc4
add spec for Cache validating JSON contents
2018-11-30 23:11:52 -05:00
2d44a88fb6
add spec for unknown CLI operation
2018-11-30 23:08:16 -05:00
28e3781331
add configure spec testing --prefix
2018-11-30 23:05:41 -05:00
c0a28d0207
add configure spec to check multiple set_define's being stored
2018-11-29 22:14:10 -05:00
0e27e967d0
configure: fix handling build_dir and prefix options
2018-11-29 22:06:36 -05:00
1ecce7e99e
add configure spec to check as much as possible
2018-11-29 22:02:42 -05:00
25b73ebd8f
move logic to find an executable from ConfigureOp to Util
2018-11-29 21:51:30 -05:00
bca963af5c
add configure spec for check_cfg not finding the specified program
2018-11-29 21:28:37 -05:00
ba5377a1ce
add configure specs to check for unknown compiler names
2018-11-29 20:51:24 -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
9e0ce5a55c
add spec for check_cfg with a :package argument
2018-11-25 21:58:22 -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
cd2696dd0b
add Util specs
2018-11-25 21:22:37 -05:00
36643c1ab1
add Util module and Util.make_relative_path()
2018-11-25 21:17:11 -05:00
778d9ed8b2
add simplecov filters to filter out spec/dspec tests when the opposite spec task is executed
2018-11-25 21:11:00 -05:00
660d30558a
remove Environment#to_h
2018-11-25 21:00:29 -05:00
82fbd34149
add dspec task to test dist file; revert spec task to normal behavior
2018-11-25 20:45:32 -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
95d5ada865
specs: run each build test from separate directory; keep directory if test fails
2018-11-07 21:33:28 -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
697db2a987
specs: check_c_compiler: also test when no arguments are given
2018-11-06 22:39:13 -05:00
daa90e431c
check_c_compiler: add integration test for finding second listed C compiler
2018-11-06 22:28:23 -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
07d9b97ddc
set default rake task back to spec
2018-11-06 22:14:34 -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
5288a47bfb
start on specs for configure command
2018-11-03 23:19:54 -04:00
9bd9abcad1
update CHANGELOG.md for v1.17.0
2018-11-02 17:02:46 -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
michael.metivier
c34821864e
Allow construction variable expansion on _true_ and _false_ literals
2018-11-02 00:57:20 -04:00
97c24eec6b
specs: fix Application#determine_n_threads specs
2018-10-30 17:39:43 -04:00
053df2360f
add Rscons.vars back again at least for now
2018-10-30 17:36:30 -04:00
8d766e4804
specs: fix cache_varset.rb builder message
2018-10-30 17:36:30 -04:00
e29ec5a126
move clean logic to Application
2018-10-30 17:36:30 -04:00
de46bb0cc1
specs: remove usage test when no operation given
2018-10-30 17:00:57 -04:00
084080a682
specs: do not run separate 'configure' step before main build test
2018-10-30 17:00:10 -04:00
3a564c0ca2
add Dsl and ConfigureDsl
2018-10-26 21:17:04 -04:00
ac89a122d8
add Application class; update CLI and Script for new architecture
2018-10-21 01:24:15 -04:00
ea6ae1be10
remove unneeded OptionParser separators
2018-10-12 17:20:34 -04:00
a649c7f4cb
add Script class
2018-10-12 17:18:04 -04:00
2f83f36659
start adding subcommand interface to Cli module
2018-09-10 20:35:00 -04:00
a46936bc0b
change default task to build_dist
2018-09-04 16:04:58 -04:00
95ee63292e
Rscons is no longer a gem.
...
Run specs against the combined distributable standalone script.
2018-09-03 19:32:53 -04:00
bcd33fe098
add build_dist.rb to create dist/rscons as a standalone script
2018-09-01 17:00:04 -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
750506201f
add github URL to README.md
2018-08-23 15:37:18 -04:00
284312a21c
support command-line variables - close #51
2018-08-23 14:58:08 -04:00
d081a4695f
add shebang line to bin/rscons
2018-08-23 11:30:18 -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
dbbce9e476
update a few dependencies
2018-05-24 15:32:39 -04:00
0dc3a90660
v1.15.0
2017-09-08 15:13:04 -04:00
d48c7587d6
add v1.15.0 release notes
2017-09-08 15:06:55 -04:00
70d4740a69
split CHANGELOG.md out of README.md
2017-09-08 15:06:23 -04:00
aaae845d60
allow json 1.x or 2.x
2017-09-08 15:04:40 -04:00
e900e74342
v1.14.0
2017-08-03 15:55:54 -04:00
62ae3f162d
add v1.14.0 release notes
2017-08-03 15:55:38 -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
5409b3cb34
add v1.13.0 release notes
2017-07-14 16:24:04 -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
c923eb5c7c
add v1.12.0 release notes
2017-07-11 16:14:49 -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
c0b12132f0
1.11.1 release notes
2017-06-14 09:58:09 -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
60b3fdbcac
update YARD documentation link
2017-06-14 09:12:13 -04:00
5263ea03c6
v1.11.0
2017-06-14 08:56:21 -04:00
6c91823ce2
v1.11.0 release notes
2017-06-14 08:54:57 -04:00
8deb1eb6f8
Change default :clone option to :all to clone all Environment attributes
2017-06-14 08:53:28 -04:00
6d6319799a
add v1.10.1 release notes
2017-06-13 19:47:58 -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
74d19ea235
fix construction variable reference table OBJSUFFIX entries
2017-06-12 09:33:52 -04:00
d7a6d69a92
update v1.10.0 release notes
2017-06-12 09:33:13 -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
ef3150db0f
document construction variables and their default values in README.md
2017-06-08 14:58:55 -04:00
ed4fb8b681
expand README.md a bit
2017-06-08 14:10:42 -04:00
3a3f6d6d27
add v1.10.0 release notes
2017-06-08 12:02:13 -04:00
20affc0e1d
fix SHLD spec for Windows
2017-06-08 12:01:50 -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
10d4c647b9
add spec for building a shared library using D
2017-06-07 15:22:20 -04:00
db2ec82a25
Add more integration tests for SharedLibrary and backwards compatibility
2017-06-07 13:02:51 -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
6f242a1c64
Merge branch 'parallelization' - close #23
2017-05-29 10:58:55 -04:00
c7943bc2cc
ignore .bundle
2017-05-29 10:57:27 -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
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
83226e894d
add backwards-compatibility test for Builder#standard_build
2017-05-24 16:16:53 -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
f3bf325c88
add a little more leeway in the multi-threading timing test
2017-05-24 15:58:11 -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
2655c119e4
add spec for Environment#find_finished_thread to fully cover
2017-05-23 16:47:00 -04:00
221cde7e5f
update run_builder, build_sources integration tests for more coverage
2017-05-23 16:45:21 -04:00
adcee373df
add integration test for Environment#build_sources
2017-05-23 16:28:13 -04:00
e58b8bd109
add integration test for Environment#run_builder
2017-05-23 16:25:03 -04:00
8a1dfb0785
do not catch NameError when looking up Builder#run method
2017-05-23 16:24:45 -04:00
d315f86a36
remove unit tests for Environment#run_builder, #build_sources
2017-05-23 16:20:41 -04:00
0d46d616dd
change user dependency test to use BuildTarget#depends
2017-05-23 16:09:29 -04:00
032e6d5d0a
add some integration tests for the CLI
2017-05-23 16:06:21 -04:00
c9946da193
integration tests: only pass -f when a specific rsconsfile is specified
2017-05-23 15:55:28 -04:00
599d10b50f
add integration test for overriding PROGSUFFIX
2017-05-23 15:32:55 -04:00
18c6c69871
do not use ThreadsWait to wait for threads; it does not work properly
2017-05-23 15:24:52 -04:00
2ffdf82d9a
add multi-threading build test
2017-05-23 14:24:14 -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
c7bba77581
remove Program builder non-integration specs
2017-05-22 16:57:35 -04:00
957fd8c86d
convert Library builder specs to integration tests
2017-05-22 16:54:10 -04:00
7e707e7e3b
convert Object builder specs to integration tests
2017-05-22 16:38:57 -04:00
2be738be4f
Including trailing newline when printing failed command
2017-05-22 16:26:12 -04:00
7b3bffd329
update some non-integration-test specs
2017-05-22 16:25:49 -04:00
06cb4b7a55
migrate some Cache tests to integration tests
2017-05-22 15:55:18 -04:00
bfbbc19728
fix simplecov setup to get coverage for integration build tests
2017-05-22 11:19:55 -04:00
28e56251dd
update build_tests_spec to invoke rscons in a subprocess for each test
2017-05-20 15:15:07 -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
7a31039e35
add @since tags for new methods
2017-05-12 21:07:25 -04:00
3e4897c04b
store setup_info in the job
2017-05-12 16:30:30 -04:00
d46dc2014c
update JobSet interface to just take a Hash of job parameters
2017-05-12 16:30:02 -04:00
9cfc0c20b7
call Builder#setup
2017-05-12 16:27:43 -04:00
19a00a7b84
prepare to call new Builder#run interface
2017-05-12 16:25:34 -04:00
9b6d2c5111
add Environment#register_builds
2017-05-12 16:16:25 -04:00
6a0ccad804
add Builder#setup; add new Builder#run signature
2017-05-12 16:16:07 -04:00
dab870854a
add Rscons.n_threads
2017-05-12 14:38:18 -04:00
695bf84092
expand target and source paths when registering a builder
2017-05-10 15:06:16 -04:00
7cba8c8424
JobSet: target is already stored in job info
2017-05-10 14:57:04 -04:00
551b8fa365
add integration test to verify cache is written if a builder fails
2017-02-16 19:27:18 -05:00
3601359c08
process jobs from the JobSet
2017-02-16 19:27:18 -05:00
e1d8dfbab6
add JobSet class
2017-02-16 19:27:18 -05:00
c69da1044d
update README for v1.9.3
2016-09-30 14:04:58 -04:00
f33be07a15
v1.9.3
2016-09-30 14:03:35 -04:00
c4c2d5c128
Environment#parse_flags should put -std=XXX flags in CCFLAGS, not CFLAGS
2016-09-30 14:02:30 -04:00
3065dc48ec
document passing multiple dependencies to env.depends()
2016-05-02 09:10:14 -04:00
9ca2934695
document explicit dependencies
2016-03-02 13:33:00 -05:00
3af6b6be1b
v1.9.2
2016-01-12 10:16:00 -05:00
0442b876a5
allow phony targets in conjunction with a build root
2016-01-12 10:14:10 -05:00
bab4641b6e
v1.9.1
2015-12-10 15:25:29 -05:00
4698fc41b9
add v1.9.1 release notes
2015-12-10 15:25:16 -05:00
952f423860
use ${INCPREFIX} instead of hard-coded "-I" in Preprocess builder
2015-12-10 15:19:41 -05:00
d2da5f7b0d
bundle update
2015-12-10 15:18:59 -05:00
ab14dc16ed
change *SUFFIX defaults to arrays; add various C++ file suffixes
2015-06-15 21:58:37 -04:00
aa795eea85
v1.9.0
2015-03-15 20:56:37 -04:00
7dffef6bd0
update README.md
2015-02-15 19:52:33 -05:00
dce2114733
document Copy builder class
2015-02-15 18:42:37 -05:00
0bbdda2d41
fix Command builder default short description
2015-02-15 18:41:41 -05:00
3b8910075a
use class instance variables instead of class variables
2015-02-15 18:38:09 -05:00
34beda844e
reorganize Rscons module class methods
2015-02-15 18:33:00 -05:00
7a04bec2ff
support phony targets - close #25
2015-02-15 18:29:33 -05:00
7698fbf618
add "rscons" binary - close #24
2015-02-08 18:04:37 -05:00
4eedea2563
add Copy builder as a copy of Install
2015-02-07 09:57:44 -05:00
f678803a5d
add Install builder - close #6
2015-02-07 09:49:29 -05:00
9c49a09f69
update :spec rake task to allow example pattern as an argument
2015-01-29 09:58:09 -05:00
859f87ddee
add a Directory builder - close #27
2015-01-29 09:31:00 -05:00
73bc71a656
test expanding paths after a build target is registered from within a build hook
2015-01-28 17:15:55 -05:00
29a8684f90
support registering multiple build targets with the same path - close #26
2015-01-28 17:10:36 -05:00
02aff35222
allow overriding Command builder short description with CMD_DESC variable -- close #22
2015-01-24 09:40:07 -05:00
897d31ebe0
fix Command builder example invocation
2015-01-21 14:07:28 -05:00
76610a07a9
fix variable references that expand to arrays in build target sources - fix #20
2015-01-20 21:26:45 -05:00
cb3cc9a0de
update 1.9.0 release notes
2015-01-20 21:18:19 -05:00
0ea842fffe
rework Preprocess builder to consider deep dependencies - fix #21
2015-01-20 21:16:21 -05:00
d28722a4bb
fix Rscons.set_suffix to append the given suffix if the filename has none
2015-01-20 21:13:27 -05:00
8142d0bbc8
add v1.8.1 release notes
2015-01-20 21:12:57 -05:00
a8023ae03c
v1.8.1
2014-10-22 14:30:32 -04:00
99ba015630
fix Environment#dump when construction variables are Symbols
2014-10-22 14:30:14 -04:00
dcf90cc12b
v1.8.0
2014-10-22 10:36:28 -04:00
f93ca62c07
add v1.8.0 release notes
2014-10-22 10:31:52 -04:00
d9e3129ad5
add Environment#dump
2014-10-22 10:30:57 -04:00
d5e0475e6c
minor documentation improvements
2014-10-21 17:00:38 -04:00
b05eed36eb
add VarSet#to_h
2014-10-21 16:06:15 -04:00
7ea0721cc2
add a Builder#run method which raises an error unless overridden
2014-10-16 16:52:26 -04:00
e654df008d
add rdoc to bundle
2014-10-16 16:42:03 -04:00
Michael D. Lowis
92d4dd8396
Implemented SimpleBuilder and updated Environment#add_builder method to support it
2014-10-16 16:37:37 -04:00
Michael D. Lowis
e279959d79
Added a command builder to the list of default builders
2014-10-13 12:27:05 -04:00
469f575564
v1.7.0
2014-09-25 11:35:00 -04:00
07725581e9
add v1.7.0 release notes
2014-09-25 11:34:37 -04:00
ebb69cedc2
add @since tag to Environment#add_post_build_hook
2014-09-25 11:31:18 -04:00
c98b377ce8
use "rake/clean" module now that it isn' so noisy; clean .yardoc folder
2014-09-25 11:14:39 -04:00
a0874e7cf1
add tests for *SUFFIX variables containing Arrays - close #9
2014-09-25 11:12:11 -04:00
0b04229e3d
fix Environment#build_dir documentation
2014-09-25 10:47:21 -04:00
20f3da3b04
allow trailing slashes to be passed to env.build_dir()
2014-09-25 10:45:52 -04:00
a6a79b8ef1
test cloning post-build hooks
2014-09-23 12:44:02 -04:00
6d4f27602e
update README.md notes about build hooks
2014-09-19 12:41:54 -04:00
453295a49b
add post-build hooks - close #14
2014-09-19 12:36:57 -04:00
dee2b98f6e
allow build hooks to register new build targets - close #15
2014-09-19 11:10:59 -04:00
b186b3102c
clear build targets after processing an Environment - close #17
2014-09-19 10:45:49 -04:00
23c94f7841
fix YARD curly brace escapes
2014-09-11 13:53:10 -04:00
6acb209ef4
v1.6.1
2014-08-19 09:12:35 -04:00
43e12819d7
update .gitignore, version Gemfile.lock
2014-08-19 09:12:21 -04:00
1bfb7dd100
add v1.6.1 release notes
2014-08-19 09:09:37 -04:00
df1e3be829
fix #12 - allow overriding dependency file suffix with DEPFILESUFFIX construction variable
2014-08-18 15:53:02 -04:00
851adae66f
fix #13 - Environment#depends should expand its arguments for construction variables
2014-08-18 15:39:33 -04:00
eb28e09d8c
add v1.6.0 release notes
2014-07-10 14:34:35 -04:00
01a84e8819
v1.6.0
2014-06-18 10:45:05 -04:00
28bedfce11
Support lambdas as construction variable values
2014-06-18 10:43:35 -04:00
e792fd473b
add v1.5.0 release notes
2014-06-18 09:15:49 -04:00
9f738ee175
v1.5.0
2014-06-16 22:20:06 -04:00
912615535a
added more documentation to get to 100% YARD coverage; fix YARD warnings
2014-06-16 15:33:22 -04:00
d87c4990b1
add redcarpet to bundle
2014-06-16 14:40:43 -04:00
6a17cbcd54
remove unnecessary rspec dependencies
2014-06-16 14:37:24 -04:00
8fc95b5d69
change Builder#create_build_target and BuildTarget#initialize to accept a Hash of options
2014-06-16 12:17:33 -04:00
d9eea10363
update D build test for Linux
2014-06-12 16:00:41 -04:00
5045e2e336
fix build test for Linux
2014-06-12 15:59:49 -04:00
31968e7e32
complete spec updates for RSpec 3 using only :expect syntax
2014-06-12 15:52:15 -04:00
5783ed993a
update more rspec expectations
2014-06-12 15:43:50 -04:00
0778f043ee
update many specs to RSpec 3 format
2014-06-12 15:39:20 -04:00
42597b2dac
use new rspec expect syntax
2014-06-12 13:54:35 -04:00
7b13d51d23
environment spec updates for Windows
2014-06-12 13:41:46 -04:00
c2d4ece957
build test spec fix for running on Windows
2014-06-12 13:38:15 -04:00
3ab9c8723b
fix a build test for MinGW
2014-06-12 13:35:11 -04:00
1b50a9dd3c
add Rscons::BuildTarget
...
Return a BuildTarget object from Environment#method_missing when a build target is registered.
2014-06-12 13:31:17 -04:00
87b25d7bfd
add PROGSUFFIX construction variable and default it to ".exe" for mingw/cygwin platforms
2014-06-12 13:02:53 -04:00
da457b9138
fix spec typo
2014-06-12 11:31:56 -04:00
0cbf05da49
retry directory removal to work around Windows' inability to remove directories when you ask
2014-06-12 11:31:17 -04:00
08b8a2e6be
update gemspec, do not use git to determine files
2014-06-12 11:13:56 -04:00
9f75ea9d21
add Rscons.command_executer to determine command executer
...
Use "env" to execute commands when in MSYS on Windows
2014-06-12 11:07:09 -04:00
ef18c9da35
Environment: add #parse_flags, #parse_flags!, and #merge_flags
2014-06-12 10:40:01 -04:00
7c9e7e833a
Unbuffer $stdout
2014-06-12 09:36:24 -04:00
eb9aa476b7
update default construction variables to match SCons a little more closely
2014-06-11 16:54:32 -04:00
7f2b685bfb
shorten Environment#shell code a bit
2014-06-11 15:31:13 -04:00
ae9021a505
add Environment#shell - close #11
2014-06-11 14:59:31 -04:00
a1a4cc18cd
change json to a runtime gem dependency
2014-06-05 09:19:59 -04:00
f5a3b448d3
test supported construction variable types when cloning
2014-05-15 15:54:02 -04:00
9abb47ffe7
v1.4.3
2014-05-14 15:53:52 -04:00
f78d13b648
add v1.4.3 release notes
2014-05-14 15:53:33 -04:00
ab1ea34941
add specs testing construction variable overrides for built-in builders
2014-05-14 15:48:00 -04:00
08f2248ed7
fix up builders to properly use variable overrides
2014-05-14 15:15:08 -04:00
9d61fa0276
merge Environment#build_command and #expand_varref
2014-05-14 14:33:09 -04:00
c0adb64c5d
v1.4.2
2014-05-09 10:32:22 -04:00
95da14e029
add release notes in README.md
2014-05-09 10:31:54 -04:00
58b41df426
expand target and sources for construction variable references before invoking builder
2014-05-09 09:45:29 -04:00
bd525e2742
rename Environment#clean_target_paths! -> #expand_paths!
2014-05-09 09:19:40 -04:00
c08a2243b9
add Environment#expand_path
2014-05-05 16:22:07 -04:00
0de1e8e970
v1.4.1
2014-04-17 12:03:29 -04:00
6f20a1da3f
bugfix: support invoking builders with no sources and a build root defined
2014-04-17 12:03:09 -04:00
03ffb39956
v1.4.0
2014-04-15 16:19:19 -04:00
0a10af3f5e
update README.md for v1.4.0 release notes
2014-04-15 16:18:58 -04:00
ddf00d08a7
shortcut all of Environment#process if @targets is empty
2014-04-15 16:18:33 -04:00
8be1842cf8
update documentation for new builders
2014-04-15 16:06:00 -04:00
d424facf7f
Add Preprocess and Disassemble builders
2014-04-15 15:21:55 -04:00
ee5aca275d
Write Cache to disk if an exception occurs while processing the Environment - fix #4
2014-04-15 14:20:30 -04:00
ea30b0b5ee
Fix Cache#mkdir_p to handle absolute paths - fix #5
2014-04-15 14:15:32 -04:00
5a0d80b781
Cache: implement "dirty" attribute to only re-serialize when necessary
2014-04-15 14:11:10 -04:00
a2653a77d1
shortcut Environment#process if @targets is empty
2014-04-15 14:04:59 -04:00
160434b903
Cache: change to a Singleton object so it is only loaded from disk once
2014-04-15 14:02:26 -04:00
5ce8940d54
stop encoding Cache contents
2014-04-15 13:39:45 -04:00
1a5e9ddaa6
Implement copy-on-write semantics for VarSet, speeding up Environment cloning
2014-04-15 11:21:15 -04:00
5924154229
speed up VarSet#deep_dup a bit
2014-04-15 09:47:05 -04:00
5beda54374
do not clone @varset when appending to the cloned environment since appending will do its own clone
2014-04-15 09:36:30 -04:00
ae0ad98075
use @varset.append() instead of @varset.send(:append)
2014-04-15 09:32:35 -04:00
f5be3a3571
VarSet: implement deep copying ourselves instead of using Marshal for a speed increase
2014-04-15 09:16:30 -04:00
fdc5c8773c
Issue #7 - store MD5 of build command instead of the full command in the cache
2014-04-14 17:17:54 -04:00
c61380b354
Issue #7 - change .rsconscache from using YAML to JSON to speed up parsing
2014-04-14 16:52:21 -04:00
d8dda291a5
ensure that Dir[] results are predictable in build tests
2014-04-14 13:13:43 -04:00
1fe2c6401d
expand ^/ in target paths to be relative to the build root
2014-03-27 13:30:11 -04:00
4818fd10fe
README.md: add more details about Environment cloning
2014-03-27 12:02:46 -04:00
5989e24ee6
update some documentation
2014-03-27 11:57:45 -04:00
1875a2ea66
Pass the Environment object to build hooks in the :env key of the build_op parameter
2014-03-27 10:44:10 -04:00
cbd5816b4b
add VarSet#include?
2014-03-27 10:39:46 -04:00
b2c970c9ca
add Environment#add_target and use it from Environment#method_missing
2014-03-26 11:29:02 -04:00
92a9982988
use #super from #method_missing instead of method aliasing
2014-03-26 11:23:32 -04:00
533ee9c16c
add CFile builder to create C/C++ sources from lex/yacc input files
2014-03-18 21:57:53 -04:00
831b9bf2c7
v1.3.0
2014-02-25 12:18:02 -05:00
031395bb57
add v1.3.0 release notes
2014-02-25 12:17:49 -05:00
e3aeb7f4d7
Change Environment#execute() options Hash to contain :env and :options keys for Kernel#system()
2014-02-25 12:14:52 -05:00
6aa5037234
v1.2.0
2014-02-20 16:42:10 -05:00
0d8f661fd4
add :clone option to Environment#clone to control exactly which Environment attributes are cloned
2014-02-19 15:02:46 -05:00
e5ca8776a9
allow nil to be passed in to Environment#build_root=
2014-02-19 15:02:18 -05:00
2dde39a0ec
standardize on "Rscons" capitalization
2014-02-18 16:14:44 -05:00
af0679708c
v1.1.0
2014-02-17 16:37:59 -05:00
4b0d0c3957
README: add Release Notes section
2014-02-17 16:15:49 -05:00
202f10b86f
README: add example for custom builder with multiple output files
2014-02-17 16:14:10 -05:00
1d47db3144
support passing multiple targets to Cache#up_to_date? and #register_build
2014-02-17 16:10:15 -05:00
f7b7a4fefa
v1.0.0
2014-02-14 10:46:31 -05:00
00b038ef50
use require_relative instead of require
2014-02-14 10:37:41 -05:00
98f8f38715
remove String#set_suffix monkey patch
2014-02-14 10:36:15 -05:00
2ffb5d525a
remove String#absolute_path? monkey patch
2014-02-14 10:32:57 -05:00
fa7d17675b
remove String#has_suffix? monkey-patch; use String#end_with?
2014-02-14 10:20:32 -05:00
b43c473762
README: add link to API documentation at rubydoc.info
2014-02-14 09:57:46 -05:00
f278b211f7
README: add more information about custom builders
2014-02-14 09:50:39 -05:00
c897bcf06e
README.md fixes/tweaks
2014-02-14 09:42:04 -05:00