Commit Graph

2264 Commits

Author SHA1 Message Date
fedepell 70f1522fa1 protoc: handle extra taskgen and out of project include directories 2018-12-21 06:16:08 +01:00
ita1024 b755748c4c Merge branch 'features/gccdeps' into 'master'
Use correct variable in gccdeps config

See merge request ita1024/waf!2203
2018-12-19 17:56:00 +00:00
ita1024 fe873242bc Merge branch 'protoc-eh-1' into 'master'
protoc: fix included protoc search on nested wscripts

See merge request ita1024/waf!2202
2018-12-19 17:44:23 +00:00
Daniel Welty 4b905773ea Use correct variable in gccdeps config
The global value gccdeps was appended to CFLAGS and CXXFLAGS instead of
the actual flags tested against the compiler.  This ignored
modifications to the GCCDEPS_FLAGS environment variable and complicated
adding support for additional compilers at the project level.
2018-12-19 11:14:43 -06:00
fedepell ba1947b113 protoc: fix included protoc search on nested wscripts
previously code was erroneously using tg.bld.path instead of tg.path
so for nested wscript calls the wrong directory was used in search.

added also better error handling with error message if an included
directory does not exist
2018-12-19 15:45:48 +01:00
Thomas Nagy 82679503eb
docs 2018-12-19 11:30:45 +01:00
Thomas Nagy 4fd4de389c
Fix the api documentation build 2018-12-15 19:45:47 +01:00
ita1024 6417d5129d Merge branch 'javaw-docs' into 'master'
javaw: add some documentation on tool usage

See merge request ita1024/waf!2200
2018-12-14 06:40:49 +00:00
fedepell 9cd14427c1 javaw: add possibility to enable recurse use also globally via env variable 2018-12-14 05:50:27 +01:00
James Harris 69bac69b5a ccroot.py: add skip_stlib_deps feature 2018-12-13 22:30:54 +00:00
fedepell ce8d103cf4 javaw: add some documentation on tool usage 2018-12-13 16:00:17 +01:00
fedepell 37a36eabf2 javaw: add recursive use processing if recurse_use=True 2018-12-12 07:07:17 +01:00
Thomas Nagy 1c7be35dc0
Fix broken cPython: md5.digest() is not supposed to raise exceptions #2213 2018-12-06 07:44:36 +01:00
Thomas Nagy bd15a9dce7
Try to load sha1 if md5 is unavailable
Also, the minimum version of Python required is 2.5, so hashlib is always present.
2018-12-05 20:35:19 +01:00
Thomas Nagy f70b5d062e
waf-2.0.13 2018-12-03 15:46:09 +01:00
Thomas Nagy 1607738e97
Fix the extra message "Broken revdeps" that may appear on certain build failures 2018-11-27 07:55:49 +01:00
Thomas Nagy 7d3c89e1b0
Print PriorityTasks contents 2018-11-27 07:42:34 +01:00
Romain Le Godais b3d974a0b9 cython: use a set for mods instead of a list.
There can be multiple imports of the same module in a single file, so
avoid evaluating them multiple times.
2018-11-24 12:59:35 +01:00
Thomas Nagy d7e701e4eb
Keep running configuration tests with parallel jobs
Passing "-j1" to "waf configure" already sets the maximum amount of jobs to 1,
so the change in a2105efc6f
is deemed unnecessary.
2018-11-21 22:01:20 +01:00
Romain Le Godais e1981e936f md5_tstamp: Fix documentation.
According to the code, file size is not taken into account to know is the
hash should be recomputed.
2018-11-21 15:02:58 +01:00
Thomas Nagy d02a15ae47
Always define the attribute "spawner" a2105efc6f 2018-11-18 11:52:34 +01:00
Romain Le Godais af74bbcbee cython: Enhance import regexp.
* avoid matching commented imports
* support `from foo.bar import baz` syntax.
2018-11-18 10:39:17 +01:00
Romain Le Godais 895191b5c4 Configure: Fix bug when build directory creation fails.
Seen thanks to pylint.
2018-11-18 09:32:39 +01:00
Stefan Metzmacher a2105efc6f Fixes for broken python threading on AIX 2018-11-18 01:03:16 +00:00
Romain Le Godais e74760c666 Fix description of `before` and `after` attributes of Task class.
Their descriptions were actually the opposite of what they really are.
2018-11-15 10:22:39 +01:00
Romain Le Godais b647ae76b2 Fix TaskGen idx attribution when 'path' argument is given.
When the 'path' argument was given at TaskGen creation, it was not taken
into account for attributing idx (the path of the build context was).

This is an issue when creating task generators from a waf tool because
their idxs were attributed as if they were in the project root directory,
even if another path was specified, which could lead to output files
collisions.
2018-11-11 14:32:22 +01:00
Adriano Scoditti 4611188e90 Restore original launch_dir on autoconfigure to correctly parse cli options 2018-11-06 18:16:18 +01:00
Thomas Nagy 314bd31e6a
Find more Swig dependencies - Issue 2206 2018-11-06 00:20:31 +01:00
Adriano Scoditti 9923a2e22e Removes hard-coded 'c4che' references using 'Build.CACHE_DIR' instead 2018-10-30 12:00:48 +01:00
Eric Müller 1efa74d38a Append python-config output only once 2018-10-23 12:38:41 +02:00
Thomas Nagy 88e9382f1b
waf-2.0.12 2018-10-07 20:05:42 +02:00
Thomas Nagy fc59ca785d
Limit sig_vars calls to super() to fix #2194 2018-10-03 21:28:42 +02:00
Adriano Scoditti 9f523216ea Update waf_unit_test command logging to be compatible with 'WAF_CMD_FORMAT' 2018-10-03 17:34:08 +02:00
jadoro 72ba2cff1e Interpret relative install paths relative to PREFIX 2018-09-25 13:24:51 +02:00
Thomas Nagy fe03c6fa47
waf-2.0.11 2018-09-02 02:36:14 +02:00
Thomas Nagy a97f6fb094
Do not raise an exception on check_cfg/mandatory=False/-vv #2193 2018-08-28 23:37:48 +02:00
Thomas Nagy f09a1c56ca
Fix #2191 2018-08-24 22:41:05 +02:00
mmooij 02c20b8e85 Check if sources/include are Nonde3 type 2018-08-21 17:52:09 +02:00
Thomas Nagy 57fc628d2b
Disable warnings on versioned library installation 2018-08-16 23:30:59 +02:00
Daniel Bartel ef90934434 spawn a subprocess for cpplint to avoid threading issue 2018-08-10 23:49:52 +02:00
Thomas Nagy 04e1b65ecb
waf-2.0.10 2018-07-29 13:24:16 +02:00
Thomas Nagy 31a5fa3829
Rework 3e06a0b9a2 2018-07-29 13:19:59 +02:00
Thomas Nagy 3f4acd6ff3
Add a new task semaphore system 2018-07-29 12:13:54 +02:00
Matt Selsky a10822f688 Fix typos 2018-07-28 19:47:10 -04:00
Thomas Nagy 3fc8c8c68a
Fix deadlocks affecting generated Fortran files #2187 2018-07-28 10:27:54 +02:00
Thomas Nagy 3e06a0b9a2
Fix --help when no wscript is supplied #2184 2018-07-27 11:17:06 +02:00
Thomas Nagy c543921e7d
waf-2.0.9 2018-07-09 16:43:40 +02:00
Matt Selsky 12b9f9aed1 Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04:00
Thomas Nagy 1f5e3e2d6c
Fix a regression caused by the previous change 2018-07-03 07:53:19 +02:00
Thomas Nagy 1787ec1f20
Add dependencies on scriptlet outputs 2018-07-02 19:15:09 +02:00
Jonathan Bendes 4b6ea4c7e8 Made options optional for cython waftool 2018-06-27 07:22:10 +02:00
fedepell 80aba755c1 doxygen: make error management if doxygen configuration file not found a bit more user friendly 2018-06-06 23:39:32 +02:00
fedepell 8b4d979dad doxygen: task_gen has no attribute generator, correct reference and make error message a bit more readable 2018-06-06 23:39:32 +02:00
Matt Selsky efea0378fd python docs: check_python_version also defines PYTHONARCHDIR 2018-05-24 18:02:03 +02:00
Thomas Nagy 656a30d364
waf-2.0.8 2018-05-22 23:07:04 +02:00
Thomas Nagy f78fbc32bb
Simplifications 2018-05-19 11:30:05 +02:00
Thomas Nagy 6873a1b4c6
Work around Python 3.6 console issues #2163 2018-05-19 11:23:46 +02:00
Mark Flanagan 5faa15a9f3 Don't quote or escape arg file lines for moc/rcc
Qt parses each argument line-by-line. Avoiding the quoting and escaping
from Task.quote_flag saves us from "too many files specified" moc/rcc error.
2018-05-17 00:00:49 +02:00
Federico Pellegrin 2a18ea239a eclipse: make all generated file utf-8 encoded (#2166)
Eclipse generates them by default in utf-8 (or will resave them
as such the moment they are touched) so this is more conformant
to eclipse format.
2018-05-11 16:13:06 +02:00
fedepell 974e4d0d0b eclipse: give a better name to waf variable indicating the waf executable path 2018-05-11 13:45:09 +02:00
Federico Pellegrin 48a4f6a765 eclipse: generate an external builder when no CDT is used in the project (#2164)
When CDT is not included in the project (ie. we just have Python and/or Java) the current implementation would not create automatically a call to waf
for the build stage. This patch adds in such cases an external builder that automates the call to waf without the need to manually configure one.
2018-05-11 12:16:04 +02:00
fedepell 30b883a32d eclipse: add generation of external jar dependencies for java projects to eclipse file 2018-05-09 22:37:58 +02:00
Thomas Nagy 55d975f25e
Fix the API docs 2018-05-09 07:23:37 +02:00
Thomas Nagy 8e40c98e0c
Docs: mention PYTHONIOENCODING for windows console users 2018-05-09 07:17:42 +02:00
Thomas Nagy 7bc3f787b2
Rework the vswhere.exe execution
- Do not shadow the encoding parameter for subprocess.Popen in Python 3.6
- Describe console settings
- Import ctypes only if available
2018-05-08 23:46:01 +02:00
Suzumizaki c2980e5090 Adhoc fix where waf cannot run under Japanese version of Windows. (#2155) 2018-05-08 22:55:19 +02:00
fedepell 64a582ecc2 eclipse: add support for generated files management for java and python
added support to search and add into source path also generated source
files for both java and python. this is useful when using generated code
(ie. protoc and pyqt5) so browsing in eclipse works correclty adding also
paths where generated code is done.

extended example in playground demostrating generated code
2018-04-22 00:40:28 +02:00
fedepell 4682f543ce eclipse: handle case where python install_from is a Node object 2018-04-17 07:20:20 +02:00
fedepell 891f3e809d eclipse: correct feature name to javac not java
it was actually working anyway if the features were passed as a string (as in the playground example) but not if passed as a list
2018-04-16 18:45:43 +02:00
Thomas Nagy f8c86e0895
Provide the 'def:' string through a variable #2148 2018-04-14 08:39:27 +02:00
Thomas Nagy bef6f1b4bf
Cleanup #2146 2018-04-07 10:35:07 +02:00
Eric Newberry fab94287f8 detect arch-specific library path for Boost on dpkg-based systems 2018-04-07 10:34:09 +02:00
voodoo66 f03040c960 fixed typo in documentation for Configure.find_program 2018-04-02 20:27:53 +02:00
Thomas Nagy 8abce6ddd3
docs 2018-04-02 12:06:54 +02:00
Thomas Nagy 9cf12afa62
docs 2018-04-01 23:31:45 +02:00
Thomas Nagy 4a71fef6f1
Missing code 2018-03-29 16:49:50 +02:00
Thomas Nagy 465a1c7b5c
waf-2.0.7 2018-03-29 15:00:58 +02:00
Daniel Vollmer a4b0b675cf swig: c(xx) task inherits weight from swig itself
If any weights (i.e. `weight` or `tree_weight`) are set on a swig task
then those weights are passed on to the task created to compile the
wrapper generated by swig.
2018-03-29 13:24:54 +02:00
Thomas Nagy c80722685c
Apply priorities when consuming tasks - Issue 2137 2018-03-29 11:09:39 +02:00
Thomas Nagy 90c80ea1ae
Apply priorities on dynamically-generated tasks #2137 2018-03-27 20:32:53 +02:00
Thomas Nagy 592136739b
Improve priority support in swig.py 2018-03-26 21:03:26 +02:00
Thomas Nagy 259b5468b8
Workaround for Swig priorities #2137 2018-03-26 20:52:11 +02:00
Thomas Nagy 2c640d8803
The cxx_hook override in slow_qt4 is missing a return bloack 2018-03-25 18:39:52 +02:00
fedepell bb458769ee protoc: add .proto dependencies also in include path otherwise protoc will fail if dependency is in another directory 2018-03-22 23:13:40 +01:00
Thomas Nagy 8404aa4d5c
Cosmetic changes on the gdbus/dbus tools 2018-03-21 23:56:48 +01:00
Thomas Nagy b806fe31d9
Moved gdbus to the playground area 2018-03-21 23:53:18 +01:00
Joshua Watt 922604492a gdbus: Add glib DBus bindings
Adds support for generating dbus bindings using the newer gdbus-codegen
tool that is designed to replace the deprecated dbus-binding-tool tool
2018-03-21 23:51:55 +01:00
Thomas Nagy facdc0b173
Python 3.7 fixes #2126 2018-03-12 20:42:55 +01:00
Thomas Nagy de992ea840
Enable Utils.lazy_generator in Python 2 2018-03-11 22:42:21 +01:00
Fangrui Song 5e4b86b81d Use "arguments" instead of "command" for compile_commands.json 2018-03-11 21:54:35 +01:00
fedepell adbee3f23a protoc: protoc (ver 2 and 3) strips underscores when generating .java file names. consider this in node name generation otherwise the generated java file will not be found 2018-03-09 17:39:55 +01:00
Alexander Afanasyev 9e2da12800 Correction of boost module detection of Boost.Log
The previous logic in #1709 made an incorrect assumption that the
filename of shared/static library indicates that it was build as
multi-threaded or single threaded. This assumption does not hold in many
Linux distributions.

In addition to that. Boost.Thread and Boost.Log require -pthread (or
some other) flags in order to properly link.
2018-03-09 08:49:42 +01:00
Alexander Afanasyev 4c79d0dda4 Fix strangle issue with precompiled headers and shared libraries
When shared library compiled with precompiled headers enabled, this
change prevents precompiled headers to activate on dependent targets.
Otherwise, there is an issue with -fPIC flag propagation.
2018-03-09 08:48:24 +01:00
Andrew Keller d525e2ccac xcode6: fix py3 support 2018-03-08 09:38:59 +01:00
fedepell e9eca13d92 protoc: fix generation of include directories when having nested wscripts 2018-03-06 09:14:10 +01:00
fedepell a02c6d8727 protoc: handle case of proto files in deep directories when output is generated with paths 2018-03-02 19:33:38 +01:00
Thomas Nagy 459ddf50b6
waf-2.0.6 2018-02-18 13:24:13 +01:00
Thomas Nagy ae907a859e
Provide an example of storage using extended filesystem attributes 2018-02-17 22:35:52 +01:00
Thomas Nagy 1a43b608ac
Enable deep input dependencies as a task decorator 2018-02-17 18:40:29 +01:00
Thomas Nagy a7546a2d22
Fix Python 3 encoding for unit tests #2108 2018-02-14 21:06:48 +01:00
Thomas Nagy 6b99cbfce2
waf-2.0.5 2018-02-10 20:50:13 +01:00
fedepell 23beecebf3 javaw: raise a build fatal error if manifest file not existing instead of crashing 2018-01-24 21:00:13 +01:00
Thomas Nagy deacb94c93
Force unit tests to depend on the executable creation time 2018-01-24 20:56:40 +01:00
fedepell 0c07d0d7fb eclipse: don't rely on Context.g_module.out as it may not be defined if default used, used bldnode instead 2018-01-19 00:40:00 +01:00
fedepell daa0c135e1 eclipse.py: support also if passed srcdir is a Node or a list of directories (which are valid inputs for javaw.py) 2018-01-19 00:40:00 +01:00
Thomas Nagy d21446ff71
Update docs for 2018 2018-01-01 20:53:49 +01:00
Thomas Nagy 7b36a52b4e
waf-2.0.4 2017-12-30 10:36:51 +01:00
Thomas Nagy 5996879673 Enable more advanced warnings of ant_glob on build folders in verbose mode 2017-12-23 20:36:14 +01:00
Thomas Nagy 2f27d6f52c Enable 'waf clean' to get the list of files to remove from bld.clean_files 2017-12-23 15:05:29 +01:00
Thomas Nagy c0e2e7f281 Defer node.ant_glob(..., generator=True) evaluation 2017-12-23 14:56:54 +01:00
Thomas Nagy 955e10291d Define the environment variable WAF_NO_PREFORK to skip pre-forking 2017-12-22 15:40:06 +01:00
Thomas Nagy aa361ee568 Fix Can't pickle local object '_createenviron.<locals>.encode' exceptions (Python 3.6) 2017-12-22 14:59:31 +01:00
Thomas Nagy d35cd0cf12 Improve the Erlang module #2095 2017-12-20 00:13:47 +01:00
Przemyslaw Rzepecki 69157c7b68 Udated Erlang support.
This adds a scaner method to track Erlang heders dependencies.
Support for EUnit tests
Support for EDocs
Support for ERL, ERLC, ERLC_FLAGS environment settings.
2017-12-19 22:03:41 +01:00
danbar fdf22b24c8 fix whitespaces 2017-12-19 16:27:15 +01:00
danbar 3dc4357ada use interface function of cpplint module 2017-12-19 16:27:15 +01:00
Thomas Nagy ca6fe005ef
Cosmetic changes 2017-12-13 22:09:12 +01:00
Przemyslaw Rzepecki c06a19b9d2 Added task target to output of parallel_debug.
Without the task name/target it is not obvious which steps in the build take
the most time.

Tested the SVG output with Firefox 52.
2017-12-13 22:06:22 +01:00
Thomas Nagy bda66f00c3
docs 2017-12-10 21:43:38 +01:00
Thomas Nagy 9effdff4c3
docs 2017-12-10 21:35:53 +01:00
Thomas Nagy f5f4218cda
Set task.stdout=task.stderr for long-running tasks 2017-12-10 21:27:09 +01:00
fedepell a6614586c7 javaw: skip adding empty entries in CLASSPATH 2017-12-04 20:14:55 +01:00
Thomas Nagy 2a4c4f0b66
Preparations for waf 2.0.3 2017-12-02 09:43:01 +01:00
Thomas Nagy 6a80016ad5
Warn for typo uses -> use 2017-12-02 09:39:51 +01:00
Thomas Nagy 05188b4c7f
Enable install_path=None for Python targets #2087 2017-12-02 09:26:17 +01:00
Thomas Nagy a5a3915b7a
Prevent duplicate paths when adding from user classpath #2084 2017-11-30 19:55:48 +01:00
Calle Rosenquist 384e8d85ba buildcopy: Create destination directories as needed. 2017-11-30 19:09:56 +01:00
Matt Selsky c98f8ba2ab Typos 2017-11-28 20:22:10 +01:00
Thomas Nagy 52a61c45e8
Docstring pytask -> pyc/pyo 2017-11-27 19:35:59 +01:00
Thomas Nagy 1f8eee88af
Remove subsystem cflags because those have no effect 2017-11-23 07:50:48 +01:00
Calle Rosenquist f336f0bf62 pytest: Improved documentation, removed assumption on Python only
dep-nodes and locality of link task outputs always in build.
2017-11-20 22:04:35 +01:00
Van de Bugger f4dca02af6 Unit test summary color scheme fixed to use green and red colors
Red color is used for failed tests, green color is used for passed
tests.
2017-11-12 11:35:04 +01:00
Thomas Nagy 96f4eec8ba Improve the deadlock error message 2017-11-11 10:34:04 +01:00
fedepell 731afed564 report from load_tool the used sys.path in ImportError so it can notified to the user correctly 2017-11-09 08:26:35 +01:00
fedepell eb6c205ad1 Revert "fix load_tool error messages and cover all occourences"
This reverts commit 0557256db454a6ab98e4b909be8fd5db9bbb49c2.

The solution is not viable for API change, let's remove this.
2017-11-09 08:26:35 +01:00
fedepell 5d3576af45 fix load_tool error messages and cover all occourences
When a tool cannot be loaded the wrong path was displayed on the error
message. sys.path was always displayed but the actual path used depends
on tooldir being passed and on the value of with_sys_path parameter.

I put the exception handling (raising the fatal) inside load_tool itself
as this is the only place where the exact path is known, without having
to recalculate it outside. To be able to use fatal there also the ctx
has to be passed from the various points.

In this way all load_tool exceptions are caught and reported, while before
an exception during configure was not caught for example, just during the
options.
2017-11-09 08:26:35 +01:00
fedepell 7d00ca7266 qt5: make also uic->h conversion parallel safe, assuming that all transformations are equal 2017-11-03 20:49:49 +01:00
Thomas Nagy 7d62fa411a
waf-2.0.2 2017-10-23 14:48:00 +02:00
DragoonX6 b1efcfa6ab Change DEST_OS to use underscores in order to find a correct gcc_modifier_ function. 2017-10-23 14:03:47 +02:00
Thomas Nagy 230096c378
Remove extra parenthesis in qt5.py 2017-10-23 13:59:20 +02:00
Thomas Nagy e6bd4c6609
Add --dnotooltip to parallel_debug for tooltip-free images 2017-10-23 13:55:04 +02:00
fedepell f5aa701f1f qt5: resolve concurrency issues when files such as qm and qrc are used by multiple build tasks 2017-10-23 13:51:45 +02:00
Thomas Nagy 4d481ab179
waf-2.0.2 2017-10-22 10:39:32 +02:00
Thomas Nagy f67d5309f1
Adjust the GAP for tasks from 20*njobs to 5*njobs 2017-10-21 23:21:29 +02:00
Thomas Nagy 40fe56abcd
Have the task count start at 1 (regression) 2017-10-20 20:25:24 +02:00
Thomas Nagy 002c1fa094
Move gather_wsdk_versions after the definition of 'target_compiler' 2017-10-20 20:15:16 +02:00
Thomas Nagy 2928db1c8c
Let ConfigurationContext.load description match more closely Context.load 2017-10-20 20:07:29 +02:00
Thomas Nagy ec356383e2
object.__getattr__ -> object.__getattribute__ 2017-10-20 20:05:06 +02:00
fedepell ffe88abe80 javatest: extra to integrate java unit testing into standard waf_unit_test environment 2017-10-19 08:28:53 +02:00
Matt Selsky 06f0390992 Typos 2017-10-19 08:27:57 +02:00
Schildkroete23 bef2cf13ec Use correct batch filed and function for Intel Fortran detection on Windows. (#2063) 2017-10-19 08:27:37 +02:00
Thomas Nagy 0be92e74ac
Cosmetic changes for #2055 2017-10-18 21:06:12 +02:00
Roland Puntaier 34e6fd922a Use DEST_OS in cfg_cross_gnu (#2055)
* use DEST_OS in cfg_cross_gnu
* add an example
* rename cfg_cross_gnu to cross_gnu
* add configure()
* xcheck_envar -> xcheck_var
* xcheck_var to look in environ only if not already set
2017-10-18 20:54:12 +02:00
Daniel Petró 3010e6a2c3 Fix for Intel Fortran Detection on Windows. 2017-10-17 19:19:15 +02:00
Sean Fisk 21d659b841 Fix incorrect documentation for cmd_and_log 2017-10-17 02:00:13 +02:00
Thomas Nagy 6d18a0e760
Update check_waf_version default bounds 2017-10-11 21:59:29 +02:00
Thomas Nagy 210874d297
Fix #2053 2017-10-04 20:41:21 +02:00
Roland Puntaier 2bbd4b62d5 normpath() to make a 'a/b' variant dir display as 'a\b' on windows 2017-09-30 21:33:41 +02:00
Thomas Nagy 3d64c32c2c
Do not expose the pdb option by default 2017-09-30 21:31:07 +02:00
Roland Puntaier 314240fec9 --pdb option to start pdb on exception 2017-09-30 21:28:55 +02:00
Federico Pellegrin a02b71a163 protoc: add java support for protobuffers (#2049)
* protoc: added java support

Modified protoc to support also .proto -> .java generation. the .java file
name generated is not obvious as in C++/Python but follows a couple of rules
that were implemented.

As cxx/python and javaw Tools are quite different the implementation is not
as clean as for cxx/python but is hopefully fine (ie. protoc still uses
sources for input files while javac uses src_dir).

In javaw a small detail was added: a new attribute was added (gencode) that
instructs javac to look for source files also in the build directory. This
are realistically generated code (and .proto -> .java is an example) and
are therefore in the build. Default is false keeping all the previous
behaviour.

* protoc for java enhanchments (protoc version, regex, docs)

In configure stage get protoc version as java naming changes depending on the
version. Implement the version differences between version < 2 and > 2

Improve regex for option catching and implement a mix of them in playground
to verify it.

Add some documentation on how java filenames and paths are generated.

* protoc: build dir with generated code is automatically added, so no need to explicitly use gencode in javac
2017-09-26 19:17:40 +02:00
Thomas Nagy dc6d584002
waf-2.0.1 2017-09-24 17:23:48 +02:00
Thomas Nagy 8134aed186
docs 2017-09-23 09:44:28 +02:00
Alan Ray 1e994e50fb Teach use_config to more gracefully fail during options() call #2043 2017-09-23 09:22:35 +02:00
Thomas Nagy f7833e73ff
Remove unnecessary global declarations 2017-09-23 09:22:24 +02:00
Calle Rosenquist 89c755e714 pytest: Also add in-source library dependencies to libpath. buildcopy: Renamed to_nodes to to_src_nodes to avoid any confusion. 2017-09-23 09:22:16 +02:00
Thomas Nagy c26f8c12c2
Accept task objects in Build.add_to_group for compatibility reasons 2017-09-23 09:21:51 +02:00
Thomas Nagy c113442738
Prevent xcode6 from overwriting features lists #2038 2017-09-23 09:21:41 +02:00
Thomas Nagy 31d32c3f49
Improve default preprocessor behaviour for gcc/msvc 2017-09-23 09:21:21 +02:00
Thomas Nagy e64467892c
Warn against loading gccdeps/msvcdeps options 2017-09-23 09:21:14 +02:00
Thomas Nagy b78ecf361c
Fix #2035 2017-09-23 09:21:04 +02:00
Thomas Nagy 4272c6b5ba
self.includes may come from a global variable #2035 2017-09-20 20:01:46 +02:00
Thomas Nagy 18955dd91d
Attempt to make the syms tool a little more backward-compatible #2032 2017-09-20 00:06:50 +02:00
Calle Rosenquist 69e45d1a71 Node.ant_glob: Do not ignore case by default, as specified by the documentation. 2017-09-19 22:46:16 +02:00
Calle Rosenquist 1354a37255 Set Logs.verbose from options (regression from be05b6ee8b) 2017-09-19 15:29:29 +02:00
Thomas Nagy 74204e57e0
waf-2.0.0 2017-09-16 20:34:02 +02:00
fedepell 5cc784aabd correct the documentation example for colon 2017-09-15 21:06:52 +02:00
Thomas Nagy 4e387de1ce
Follow-up on #2028 2017-09-15 21:00:15 +02:00
Federico Pellegrin 4df813941e protoc: extend extra to support also Python language (#2028)
* protoc: extend extra to support also Python language
* protoc: fix ext_out, unite c++/python generation, fix protoc_includes name
2017-09-15 21:00:08 +02:00
Thomas Nagy da3844b019
Obtain vala tasks directly 2017-09-14 22:47:27 +02:00
Thomas Nagy e68bc5d65b
docs 2017-09-14 22:20:31 +02:00
Thomas Nagy ddbc9726b0
Fixup: read the relevant lock file with --top 2017-09-12 20:22:13 +02:00
Adriano Scoditti f0c8b0c283 When '--top' is specified there is no reason to climb 2017-09-12 20:20:22 +02:00
Thomas Nagy ad5dd18408
Use the 'with' syntax whenever possible 2017-09-12 19:36:43 +02:00
Thomas Nagy dcefc468bb
Python3 fixes 2017-09-10 20:59:59 +02:00
Thomas Nagy be05b6ee8b
Accept relative prefix/bindir/libdir paths from launch_dir
Additionally:
- Scripting.parse_options is back for compatibility reasons
- The help message should only be displayed when this is intended
- OptionsContext is responsible for the full initialization, so
  the framework should be usable without requiring Scripting.py
- Make it clear that Options.options is an optparse.Values object
- Get rid of the state in Options.options
2017-09-10 20:59:29 +02:00
Adriano Scoditti 3cea04e829 Improve options management 2017-09-10 19:11:27 +02:00
Thomas Nagy 8c3a281746
Fix Configure.autoconfig='clobber' when no previous configuration is present 2017-09-09 17:49:48 +02:00
Mihai Moldovan 4f0c7dc44a Backport old gfortran compiler support. 2017-09-05 07:58:46 +02:00
Thomas Nagy 82df9d14fd
Remove an unused variable in buildcopy 2017-09-04 21:18:41 +02:00
Calle Rosenquist 82fd4054a7 pytest: Added better support for normal and pyext library dependencies.
This also includes the `buildcopy` feature that allows construction of complete Python packages in the build dir.
2017-09-04 21:08:10 +02:00
Karl Linden 01e017cfc2 Make unit testing interpreted scripts work. 2017-09-04 21:07:20 +02:00
Thomas Nagy 53af0cfaef
Remove unused traceback import 2017-09-02 23:34:58 +02:00
Thomas Nagy b5408091b3
Cleanup unused global statements 2017-09-02 23:34:15 +02:00
captainmalloc 5d4cd9e13c Default ignore Vim swap and Python Compiled files (#2020)
* Default ignore Vim swap and Python Compiled files

* Only Vim swap file accepted, removing Python compiled from default ignore
2017-08-31 20:25:18 +02:00
Thomas Nagy d390d5a5ce
Typo 2017-08-31 20:19:31 +02:00
Adriano Scoditti fa1a44c115 Fix 'shell' attribute on waf_unit_test:exec_command() Popen call using the same logic defined in Context:exec_command() 2017-08-28 20:23:41 +02:00
Adriano Scoditti 28594b3824 Fix Context.launch_dir init to point on user working directory 2017-08-28 20:13:13 +02:00
Thomas Nagy ff0b65ff14
Split unit test commands by shlex 2017-08-27 10:56:06 +02:00
Thomas Nagy 755a1bf6a5
Simplify task error handling 2017-08-27 10:11:56 +02:00
Thomas Nagy 5c15f6f39e
Prevent duplicates in c_preproc.py results 2017-08-26 12:24:22 +02:00
Thomas Nagy 5b935a1e6a
Optimize fast_partial.is_stale 2017-08-26 11:13:04 +02:00
Thomas Nagy b3e9ca89e6
Override the msvc linker through LINK_CXX 2017-08-25 20:23:16 +02:00
Thomas Nagy 0659657a8c
Remove old TODO notes 2017-08-25 20:22:46 +02:00
Thomas Nagy 4438aeadcb
Additional fixes for #2013 2017-08-19 12:58:40 +02:00
Thomas Nagy 57087471c1
Remove Utils.ex_stack - use traceback.format_exc() 2017-08-19 11:54:58 +02:00
Thomas Nagy d865bffd88
Change the .pickle file storage from waf 1.9 2017-08-19 10:21:40 +02:00
Thomas Nagy bfe1512a55
Exclude waf-2 folders in waf-2.0 2017-08-19 10:11:36 +02:00
Adriano Scoditti 0e06d4730e Add distclean compatibility with '--no-lock-in-top' command line option 2017-08-19 09:57:53 +02:00
Roman C. Podolski d2f48b5d89 Fix protoc #2009
Fix bug described in #2009 and extend example in playground to include
described scenario.
2017-08-17 19:56:07 +02:00
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 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 1cade2ba13
docs 2017-08-05 23:15:50 +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 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
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
fedepell 44a9a1f026 qt5: minor correction of uic tool search error message (wrong versions printed) 2017-08-01 22:41:45 +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 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
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 12fb29e8a5
WAF_PRINT_FAILURE_LOG #1930 2017-07-20 19:26:22 +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
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
fedepell 73dab83957 eclipse: query the compiler for standard include dirs and add them in eclipse search path, so standard includes can be found also with non standard compilers
if command doesn't succeed use hardcoded paths as before. tried with various gcc and llvm.
2017-06-21 13:17:52 +02:00
Thomas Nagy 872052e5c7 Dependencies added after the build starts no longer raise assertions #1982
It appears that quite a few builds use the swig tool technique
of setting build dependencies after the build starts. Missing
entries in Runner/revdeps can make builds non-terminating.
2017-06-20 16:31:08 +02:00
Thomas Nagy 4d7527b4c4 Clarify the exception type raised by cmd_and_log 2017-06-20 11:20:53 +02:00
Thomas Nagy 0c4b0592cd Update some old code in waflib/Tools/fc.py 2017-06-20 10:59:52 +02:00
Thomas Nagy 8795ebc302 Decode vswhere output as utf8/replace when cp1252 fails 2017-06-20 10:02:26 +02:00