Commit Graph

83 Commits

Author SHA1 Message Date
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