Thomas Nagy
80109eacbe
Improve error handling in the case of missing implicit dependencies
...
Avoid calling are_implicit_nodes_ready() twice.
Stop the build when files are missing or truncated.
Provide a better error message and avoid catching all exceptions.
2016-04-30 13:35:08 +02:00
Thomas Nagy
508b20679d
Do not truncate _task suffixes from Task class names
2016-04-26 18:33:03 +02:00
Thomas Nagy
b87a761ead
Tuples in startswith/endswith (Python 2.5 feature)
2016-04-21 22:30:35 +02:00
Thomas Nagy
8520dd65bb
Code cleanup
2016-04-19 22:00:21 +02:00
Thomas Nagy
fd2981f91f
Remove Task.dep_vars as it is unnecessary
2016-04-16 13:05:27 +02:00
Thomas Nagy
aeed691829
Fun with conditional expressions
2016-04-08 18:37:09 +02:00
Thomas Nagy
bd255ce641
Missing TaskBase.uid() method
2016-03-30 23:01:46 +02:00
Thomas Nagy
c2361d54bd
Removed TaskBase.attr as it is never used
2016-03-30 21:17:26 +02:00
Thomas Nagy
ca01ddb83a
Removed an unused variable in Task.py
2016-03-25 12:03:45 +01:00
Thomas Nagy
3cbd029cc9
Task.sig_vars, Task.sig_explit_deps and Task.sig_implicit_deps return None
2016-03-25 11:50:32 +01:00
Thomas Nagy
a08aff6bff
Format debug/info records lazily
2016-03-19 14:46:22 +01:00
Thomas Nagy
6768a4cb38
Unbind task.last_cmd when the command is successful
2016-03-06 17:23:24 +01:00
Thomas Nagy
b95db27d05
Micro-optimization
2016-03-05 11:05:43 +01:00
Thomas Nagy
1524d74301
Missing line
2016-02-28 10:34:32 +01:00
Thomas Nagy
df956ed5c5
Better task cleanup logic
2016-02-28 10:13:03 +01:00
Thomas Nagy
248d89e85b
Use deques
2016-02-28 10:01:43 +01:00
Thomas Nagy
8207a878a9
Enable multiprocessing for faster subprocess execution
2016-02-25 20:03:07 +01:00
Thomas Nagy
df8e144631
Smarter detection of programs passed to the command-line
2016-02-23 22:59:29 +01:00
Thomas Nagy
7e16c7cb1e
Removed bld.returned_tasks
2016-02-15 23:52:11 +01:00
Thomas Nagy
4be840bd7a
Reduced Task size (~700B/task)
2016-02-15 00:46:35 +01:00
Thomas Nagy
2897bcfd81
Reduced Task size (~600B/task)
2016-02-15 00:46:27 +01:00
Thomas Nagy
29cd350170
Use Node.exists when possible
2016-02-09 22:12:39 +01:00
Thomas Nagy
f1f2e8f8bc
Slightly better error message for inexisting nodes
2016-02-09 22:05:12 +01:00
Thomas Nagy
6124ee6975
Removed an old and unnecessary wrapper for objects in deps_man
2016-02-09 22:03:20 +01:00
Thomas Nagy
5b82ce528c
No more 'missing node signature' errors
2016-01-28 22:45:37 +01:00
Thomas Nagy
adc1ce1375
Simplification: added Task.get_cwd()
2016-01-11 05:25:46 +01:00
Thomas Nagy
c016a5761e
Missing variable dependency in compile_fun_shell for
2016-01-11 03:10:50 +01:00
Thomas Nagy
331dd9f96c
Commands executed without a shell will merge flags of the form
2016-01-06 17:53:55 +01:00
Thomas Nagy
d23490287a
Code simplifications - use enumerate
2016-01-06 14:53:18 +01:00
Thomas Nagy
f73d3f1a2f
Misleading attribute never_skip, replaced by always_run
2015-12-25 17:54:10 +01:00
Thomas Nagy
4fdd8a520d
Task cwd must be a node object
2015-12-24 23:10:56 +01:00
Thomas Nagy
5a3a89b4de
Stop adding incompatible task data into the same dict objects
2015-12-24 18:36:48 +01:00
Thomas Nagy
06c7c09681
Provide node.exists() to increase filesystem abstraction
2015-12-24 18:36:42 +01:00
Thomas Nagy
72fda8ae36
Reduce the size of the build pickle file
2015-12-24 18:36:38 +01:00
Thomas Nagy
281148b8eb
Removed the old __eq__ and __hash__ which are not useful anymore in recent interpreters
2015-12-23 19:16:31 +01:00
Thomas Nagy
7681bddfb7
Remove Node.sig and Node.cache_sig
2015-12-23 17:55:44 +01:00
Thomas Nagy
db31168eb6
New class attribute Task.never_skip to enable tasks to be always executed (the class decorator will be phased out)
2015-12-23 17:55:44 +01:00
Thomas Nagy
2ab00f7f49
Removed Node.cache_sig
2015-12-23 17:55:44 +01:00
Thomas Nagy
6c34e2a654
Force scanner functions to run after task failures - Issue 1660
2015-11-20 17:15:33 +01:00
Thomas Nagy
c2605e4dbb
Honor chmod on subst and rule when provided - Issue 1650
2015-11-07 00:29:03 +01:00
Thomas Nagy
084d9a215d
Calculate ${SRC} and ${TGT} from user-defined folders
...
The current working directory used for expanding ${SRC} and ${TGT} is
assumed to be bld.bldnode. This change enables changing the current
working directory globally so that commands can be executed from
the 'build' folder instead of the 'variant' folder:
def build(bld):
bld.cwdx = bld.bldnode.parent
bld.cwd = bld.cwdx.abspath()
print("building from %r instead of %r" % (bld.cwdx, bld.bldnode))
...
2015-11-01 14:09:47 +01:00
Thomas Nagy
1a47ae26c2
docs
2015-10-10 17:09:49 +02:00
Thomas Nagy
a6b467d73e
Moved the command hashing logic into a utility function
2015-10-03 09:12:08 +02:00
Thomas Nagy
201b8ac38f
Enable rules mixing functions with scriptlets
2015-10-01 19:25:29 +02:00
Thomas Nagy
0e76f676be
Let compile_fun process lists of string commands
2015-09-30 23:38:33 +02:00
Thomas Nagy
b45f52165b
docs
2015-05-03 10:22:28 +02:00
Thomas Nagy
02f4e0f1c0
Fortran errors lead to broken signatures - Issue 1546
2015-03-07 02:13:22 +01:00
Thomas Nagy
517578b5d2
Keep run_str on orig_run_str to help subclasses
2015-02-19 08:58:53 +01:00
Thomas Nagy
ae3c7ee7e1
Have 'waf -ppp' display no progress bar
2015-01-20 22:05:19 +01:00
Thomas Nagy
1551b070b2
Fix and test for class names containing utf-8 characters - Python 2.7 and 3.x
2015-01-06 12:29:06 +01:00