Commit Graph

2745 Commits

Author SHA1 Message Date
Thomas Nagy c3fee6620c
Update protoc #2009 2017-08-16 19:45:03 +02:00
Thomas Nagy 03a3c604c4
Provide an example of build context sharding 2017-08-13 23:09:35 +02:00
Thomas Nagy 7874f8569f
Cache taskg_gen.idx by absolute path 2017-08-13 23:06:28 +02:00
Thomas Nagy 322f447e0a
Remove one Node class assumption in Task.py
Tasks cannot assume that additional dependency (deps_man) belong
to the same Node object class before obtaining their signatures
2017-08-13 09:03:54 +02:00
Thomas Nagy 28846d6f34
Remove one Node class assumption in Task.py
Tasks cannot assume that additional dependency (deps_man) belong
to the same Node object class before obtaining their signatures
2017-08-12 16:31:51 +02:00
Thomas Nagy 43d6363177 Re-enable the timestamp cache previously removed 2017-08-09 00:27:13 +02:00
Thomas Nagy e22390ee44
Obtain store timestamps in a dedicated structure 2017-08-08 22:21:54 +02:00
Thomas Nagy a28f9475f3 Fixup 2017-08-08 01:01:48 +02:00
Thomas Nagy dcc09cb0df
Obtain the exact wscript file path 2017-08-07 08:28:03 +02:00
Thomas Nagy 6ed9a9231f
Split fast_partial data storage from the main pickle file 2017-08-06 11:48:25 +02:00
Thomas Nagy ee3f706bb7
Encapsulate bld.producer.is_dirty behind an interface 2017-08-06 10:51:59 +02:00
Joshua Watt 174f66c523 syms: Improve symbol processing
The export symbol regular expression processing is updated to make
several improvements:
  * The export expression (export_symbols_regex) now applies to both
    functions and global variables
  * A named capture group is used to match symbols. This allows the
    export expression to contain capture groups without disrupting the
    expression matching
2017-08-05 23:17:54 +02:00
Thomas Nagy 194b6e85f5
docs 2017-08-05 23:17:27 +02:00
Thomas Nagy 1cade2ba13
docs 2017-08-05 23:15:50 +02:00
Joshua Watt 70e4c44080 syms: Improve symbol processing
The export symbol regular expression processing is updated to make
several improvements:
  * The export expression (export_symbols_regex) now applies to both
    functions and global variables
  * A named capture group is used to match symbols. This allows the
    export expression to contain capture groups without disrupting the
    expression matching
2017-08-03 08:23:43 +02:00
Thomas Nagy 6d96b245cc
Invalidate the cache if a file is missing in fast_partial 2017-08-02 20:05:00 +02:00
Thomas Nagy 24825b5575
waf-1.9.13 2017-08-02 19:46:33 +02:00
Thomas Nagy 66f1d5bc94
docs 2017-08-02 19:45:08 +02:00
Thomas Nagy 7003858752
Detect configuration changes 2017-08-02 01:23:32 +02:00
Thomas Nagy 5468e0031b
Typo process_uselib_vars -> propagate_uselib_vars #2005 2017-08-02 00:42:42 +02:00
Thomas Nagy f6eee2b041
Typo process_uselib_vars -> propagate_uselib_vars #2005 2017-08-02 00:38:11 +02:00
Simon fe1bb1b58a Fixed a crash when building a subset of xcode6 targets
E.g. when running 'waf xcode6 --targets=some-target'

  File "/waf/waflib/Scripting.py", line 167, in waf_entry_point
    run_commands()
  File "/waf/waflib/Scripting.py", line 268, in run_commands
    ctx = run_command(cmd_name)
  File "/waf/waflib/Scripting.py", line 252, in run_command
    ctx.execute()
  File "/waf/waflib/extras/xcode6.py", line 679, in execute
    self.post_group()
  File "/waf/waflib/Build.py", line 767, in post_group
    if self.current_group < self._min_grp:
AttributeError: 'xcode' object has no attribute '_min_grp'
2017-08-02 00:24:11 +02:00
Simon 73c276c11b Make xcode6 tool consider standard waf build flags
Build flags like 'cflags', 'cxxflags' passed to xcode6 builds
are now considered by the xcode6 tool. For example, running command 'waf xcode6'
with the following wscript:

cnf.env.CXXFLAGS = ['-std=c++11']
...
bld.program(..., cxxflags='-O3')

now sets the OTHER_CPLUSCPLUSFLAGS in Xcode to '-O3 -std=c++11'
2017-08-02 00:24:07 +02:00
Thomas Nagy 8289af2b98
Do not skip object-only targets 2017-08-02 00:22:33 +02:00
Simon bf14d0f340 Fixed a crash when building a subset of xcode6 targets
E.g. when running 'waf xcode6 --targets=some-target'

  File "/waf/waflib/Scripting.py", line 167, in waf_entry_point
    run_commands()
  File "/waf/waflib/Scripting.py", line 268, in run_commands
    ctx = run_command(cmd_name)
  File "/waf/waflib/Scripting.py", line 252, in run_command
    ctx.execute()
  File "/waf/waflib/extras/xcode6.py", line 679, in execute
    self.post_group()
  File "/waf/waflib/Build.py", line 767, in post_group
    if self.current_group < self._min_grp:
AttributeError: 'xcode' object has no attribute '_min_grp'
2017-08-02 00:10:42 +02:00
Simon 1d22579536 Make xcode6 tool consider standard waf build flags
Build flags like 'cflags', 'cxxflags' passed to xcode6 builds
are now considered by the xcode6 tool. For example, running command 'waf xcode6'
with the following wscript:

cnf.env.CXXFLAGS = ['-std=c++11']
...
bld.program(..., cxxflags='-O3')

now sets the OTHER_CPLUSCPLUSFLAGS in Xcode to '-O3 -std=c++11'
2017-08-02 00:10:42 +02:00
fedepell 44a9a1f026 qt5: minor correction of uic tool search error message (wrong versions printed) 2017-08-01 22:41:45 +02:00
fedepell 3e7ad303d2 qt5: minor correction of uic tool search error message (wrong versions printed) 2017-08-01 22:39:32 +02:00
Thomas Nagy 8da1662894
Example of optimizations for partial builds 2017-07-30 20:11:29 +02:00
Thomas Nagy 6cfd7239c6
Support for old gcc compilers #2003 2017-07-30 19:57:04 +02:00
Thomas Nagy 10a2b6bd04
Support for old gcc compilers #2003 2017-07-30 17:25:20 +02:00
Thomas Nagy 88bb8cc6a1
TypeError -> ValueError #2002 2017-07-30 00:14:19 +02:00
Thomas Nagy e3a8e49cf2
TypeError -> ValueError #2002 2017-07-30 00:13:42 +02:00
Thomas Nagy 549fe8cd42
Simplify BuilContext.post_group 2017-07-29 09:19:36 +02:00
Thomas Nagy 2dac65fea9
Document BuildContext.get_targets 2017-07-29 09:16:03 +02:00
Roman C. Podolski c6fb060710 Protoc: Fix bug in src-path
The tool was using an relative path for the includes, but an absolute
for the src-files. Protoc cannot distinguish between relative and
absolute paths and is not able to find sources when relative and
absolute paths are combined.

Tested with protoc 2.6.1, python 3.5.1
2017-07-23 13:25:05 +02:00
Roman C. Podolski a6f4ad6e1d Protoc: Fix bug in src-path
The tool was using an relative path for the includes, but an absolute
for the src-files. Protoc cannot distinguish between relative and
absolute paths and is not able to find sources when relative and
absolute paths are combined.

Tested with protoc 2.6.1, python 3.5.1
2017-07-23 13:24:28 +02:00
Karl Linden 213068dc99 Better default uselib_store and define_name in check_cfg.
* Let default uselib_store and define_name be upper case of the first
   word of package. This is a better default when package includes a
   version specified.
 * Remove undocumented *k argument extraction from check_cfg since it
   breaks when the first argument includes a version specifier.
2017-07-21 23:35:10 +02:00
Thomas Nagy df1767728f
WAF_PRINT_FAILURE_LOG #1930 2017-07-20 19:26:56 +02:00
Thomas Nagy 12fb29e8a5
WAF_PRINT_FAILURE_LOG #1930 2017-07-20 19:26:22 +02:00
Thomas Nagy 2fe4083f13
Do not force an encoding on config.log on python2 #1974 2017-07-19 22:39:15 +02:00
Thomas Nagy 8fedfef8a3
Do not force an encoding on config.log on python2 #1974 2017-07-19 22:38:12 +02:00
Karl Linden dd3a173e46 Simplify logic in validate_cfg
* Validate msg in only on block.
 * Reduce the number of places that set okmsg.
 * Require exactly one action to be requested.
 * Also print the detected version on successful modversion.
2017-07-17 21:26:40 +02:00
Sean Fisk 2c4ff3e28b Docs: Avoid Qt re-builds by sorting set of includes
Because Python's set type is unordered, storing include paths in it
can produce unnecessary re-builds by generating different compiler
command lines between successive builds. Avoid this by using the
sorted() function on the includes.

The documentation for Python ≥ 2.7 guarantees that sorted() is stable,
while for Python 2.5–2.6 it uses the same algorithm as list.sort(),
which is stable [1].

[1]: https://stackoverflow.com/a/1915418
2017-07-06 07:47:48 +02:00
Sean Fisk 963c3bfd0c Avoid Qt re-builds by sorting set of includes
Because Python's set type is unordered, storing include paths in it
can produce unnecessary re-builds by generating different compiler
command lines between successive builds. Avoid this by using the
sorted() function on the includes.

The documentation for Python ≥ 2.7 guarantees that sorted() is stable,
while for Python 2.5–2.6 it uses the same algorithm as list.sort(),
which is stable [1].

[1]: https://stackoverflow.com/a/1915418
2017-07-06 07:46:33 +02:00
Thomas Nagy cc9374b646
Assert against invalid inputs in Utils.run_prefork_process 2017-07-01 13:15:17 +02:00
Thomas Nagy cddc5552e4 Rename WindowsError to OSError in Python3 2017-06-23 16:51:54 +02:00
Thomas Nagy 0a1d47c7ec Initialize Parallel.processed at 0 not 1 2017-06-23 13:36:28 +02:00
Thomas Nagy c49a74dd16 Cleanup for #1984 2017-06-21 13:18:07 +02:00
fedepell 8c76bd89ef eclipse: code cleanups as by comment to #1984 2017-06-21 13:17:59 +02:00