Commit Graph

2212 Commits

Author SHA1 Message Date
Thomas Nagy d2060dfd8a Conceal imp warnings in Python3 2019-08-14 22:05:45 +02:00
Thomas Nagy 0c0916ebdb
Add a new file-based waf cache implementation 2019-08-01 21:23:46 +02:00
Thomas Nagy 2793fb7dbb
Improve endianness detection 2019-07-31 21:04:53 +02:00
Thomas Nagy 4a79f95aa4
Disable lto for the endianness configuration test #2250 2019-07-30 18:45:07 +02:00
Thomas Nagy ea17399be6
waf-2.0.18 2019-07-14 10:44:58 +02:00
ita1024 a91bb8fa63 Merge branch 'doxygen_order_fix' into 'master'
Fix doxygen task-gen. pars input before processing

See merge request ita1024/waf!2255
2019-07-11 16:58:08 +00:00
Thomas Nagy bbaa976ae0
Add executable arguments for configuration tests / execute=True
conf.check(..., execute=True, test_args=['--abc=def'])
2019-07-11 07:55:38 +02:00
Thomas Nagy 88fa1fab83
Make the configuration cache more accurate #2251 2019-07-08 19:23:50 +02:00
Philipp Spilger ab167f687d Fix doxygen task-gen. pars input before processing
* OUTPUT_DIRECTORY now is created for a present parameter in `pars`
  of the task.
2019-07-05 10:38:10 +00:00
David Stöckel 0c16ab4f65 Set resource-dir explicitly for genpybind-parse 2019-07-02 10:46:34 +02:00
Johann Klähn cc20b414b3 Add genpybind feature 2019-07-02 10:46:34 +02:00
Thomas Nagy 8cf982a766 Fix a deadlock with cython+subst tasks #2244 2019-06-27 09:38:49 +02:00
Thomas Nagy 2e9954e087 Add a dependency scanner for gas/yasm and nasm (incomplete) 2019-06-26 15:00:03 +02:00
ita1024 bdb4dd90f6 Merge branch 'distclean_no_locks_aware' into 'master'
Do not clean lock files in top and run dirs if no-lock opts are set

See merge request ita1024/waf!2252
2019-06-26 10:46:33 +00:00
Thomas Nagy 770910fcda Detect of assembly features in bld.program()/bld.shlib() 2019-06-26 12:03:29 +02:00
Adriano Scoditti 9e59917ee0 Do not clean lock files in top and run dirs if no-lock opts are set 2019-06-26 11:33:46 +02:00
Thomas Nagy b7a6114ac7 Limit fast_partial.py failures on configuration tests 2019-06-25 11:53:00 +02:00
Thomas Nagy 173f410e3f Improve the configuration cache accuracy 2019-06-25 11:51:44 +02:00
Thomas Nagy 9b3ab4b874 Improve fast_partial compatibility #2240 2019-06-23 08:45:18 +02:00
Thomas Nagy 497b875a89 Add -fno-strict-aliasing flags only if missing
https://gitlab.com/ita1024/waf/merge_requests/2248/diffs
2019-06-20 23:14:51 +02:00
ita1024 0178e6a692 Merge branch 'python_flat_install' into 'master'
Allow for flat install of python files via `py` feature

See merge request ita1024/waf!2249
2019-06-20 17:18:55 +00:00
Eric Müller e319a9c2c9 Allow for flat install of python files via `py` feature 2019-06-19 22:33:36 +02:00
ita1024 e9498c9ad7 Merge branch 'cross_prefix_objcopy' into 'master'
Use cross_prefix option for objcopy if available

See merge request ita1024/waf!2247
2019-06-19 20:29:27 +00:00
Eric Müller 97ab1e5a52 Use cross_prefix option for objcopy if available 2019-06-19 22:15:03 +02:00
Eric Müller 68ec2057b9 Fix local_rpath tool 2019-06-19 22:03:59 +02:00
fedepell 31c51501d7 javaw: bugfix outdir is always a node (since converted in apply_javac) 2019-06-06 15:06:41 +02:00
Thomas Nagy 36898e12af
waf-2.0.17 2019-06-02 09:45:17 +02:00
Thomas Nagy fa6496dbc4
Use a constant instead of a hard-coded number (Qt5) 2019-06-02 09:23:57 +02:00
Thomas Nagy 36a0c12b3b
Rework installation colors 2019-06-02 09:20:29 +02:00
Thomas Nagy 6bc6cb599c
Refactor javaw.py 066a051181 2019-06-02 08:50:06 +02:00
Thomas Nagy 66fafd876a
Improve Qt5 processing 1de43d82c0 2019-06-02 08:43:19 +02:00
ita1024 387f01750c Merge branch 'javac_dep_robust' into 'master'
javaw: make dependencies code introduced in !2232 more robust

See merge request ita1024/waf!2239
2019-06-02 06:39:50 +00:00
fedepell a2589b9ed4 qt5: ignore moc generation on uninstall target 2019-06-02 00:57:33 +02:00
fedepell 066a051181 javaw: make dependencies code introduced in !2232 more robust 2019-05-28 11:40:43 +02:00
Morten V. Pedersen 1da4160b47 Colors were missing when file already exists 2019-05-27 19:14:18 +00:00
Thomas Nagy 14b6f47a24
Do not attempt to close fds on Windows platforms 2019-05-27 18:31:34 +02:00
Thomas Nagy 92e9764f58
Optimize sub process startup with workers 2019-05-27 18:05:02 +02:00
ita1024 503b09c984 Merge branch 'sphinx' into 'master'
sphinx: adds a tool for Sphinx documentation.

See merge request ita1024/waf!2237
2019-05-27 04:25:58 +00:00
Thomas Nagy 8f0dd7c0b6
docs #2240 2019-05-26 12:20:34 +02:00
Piotr Szubiakowski 3ef3f3f39c sphinx: adds a tool for Sphinx documentation.
Signed-off-by: Piotr Szubiakowski <pkszub@gmail.com>
2019-05-24 14:29:35 +02:00
Miro Hrončok 38d1cbeba4 Python 3.8 has different flags for pyembed, needs --embed
As recommended in the docs, to support both 3.8 and
previous versions, we try to use python3-config --embed and
fallback to the previous behavior.

Fixes https://gitlab.com/ita1024/waf/issues/2239

See https://docs.python.org/dev/whatsnew/3.8.html#debug-build-uses-the-same-abi-as-release-build
2019-05-24 11:49:58 +02:00
Morten V. Pedersen 396117b4dd Update colors of install step 2019-05-17 05:46:17 +00:00
Thomas Nagy c295c0bcda
waf-2.0.16 2019-05-15 23:54:47 +02:00
Thomas Nagy 8cbc8da5ce
Undo parentheses escaping in ant_glob 2019-05-10 23:13:01 +02:00
ita1024 89146d9030 Merge branch 'ClangCross' into 'master'
Better support for cross compilation with clang v2

See merge request ita1024/waf!2233
2019-05-10 05:50:55 +00:00
Dragoon 6154a8de60 Better support for cross compiling with Clang 2019-05-10 00:30:58 +02:00
Michael Vincent 9caad8c3ba msvcdeps: use ant_glob() to get correct case of include paths
When using msvcdeps, header dependencies are not detected reliably for
generated source files. The root cause is a bug in versions of MSVC
prior to VS2019 16.0 in which it emits lower-case path prefixes when
resolving include paths relative to the containing file. Absolute paths
and paths relative to include directories passed in the MSVC command
line are, in contrast, case-correct.

Such a file-relative include directive with an incorrect lower-case
prefix derails waf's node hash signature handling and fails silently.

This change uses ant_glob() with the ignorecase keyword argument to
find the file on the filesystem with the correct case. The prior
case-correction code has been superseded and was removed.

See the following Visual Studio bug report for details on the issue:
https://developercommunity.visualstudio.com/content/problem/233871/showincludes-lowercases-some-path-segments.html
2019-05-08 17:22:00 -05:00
Michael Vincent 7c362340af msvcdeps: remove path_to_node()'s path list support
Make path_to_node() only accept a path as a string instead of also as a
list. That requires joining the list of path components in the relative
path case before calling path_to_node(). Also use path.pop(0) to remove
the first path component instead of copying the remainder of the path
using a slice operator.
2019-05-08 17:22:00 -05:00
Michael Vincent 8b5a2a2086 msvcdeps: refactor cache lock
Rework how msvcdeps' cached_nodes lock is used so acquiring the lock is
only necessary on a cache miss. Also use a "with" context manager to
simplify management of the lock lifecycle.
2019-05-08 17:22:00 -05:00
Michael Vincent e874342103 Node: escape parentheses in ant_glob()
ant_matcher() converts an ANT glob pattern to an equivalent regex
pattern. This commit adds support for escaping parenthesis in the
input pattern so they don't end up being treated as a regex capture
group.

Also add a unit test to verify ant_glob()'s ability to handle special
characters in the input pattern.
2019-05-08 17:22:00 -05:00
Federico Pellegrin b45634d380 javaw: add node dependencies for non-jar tasks to all generated class files 2019-05-08 05:18:31 +02:00
Federico Pellegrin b22b5636e9 javaw: also when using non-jar CLASSPATH has to be populated to use-d tasks. In this case we point to the directory instead of the JAR file 2019-05-08 05:06:29 +02:00
fedepell d9babce4ce javaw: set dependency between javac task and use-d generated jars nodes 2019-05-07 14:42:39 +02:00
fedepell 1837984e7e protoc: make sure output directory exists for java 2019-05-06 08:17:20 +02:00
fedepell 23b09f7493 pyqt5: bugfix, check the correct variable for RCC executable 2019-04-25 11:56:08 +02:00
fedepell d7f5b986c6 pyqt5: correct the spelling to PySide2 in all occourences 2019-04-25 11:55:31 +02:00
fedepell 6c1465a6ac pyqt5: add option to enable explicitly PyQt5 bindings
Previously one could explicitly state to use PySide2 or PyQt4 but not PyQt5 which was picked just by default. In this way the option can override local configurations and also this prevents to have mixed tools versions if we are sure we need PyQt5.
2019-04-25 11:53:00 +02:00
Thomas Nagy 4ed9af0ee9
Node.listdir outputs are already sorted, do not sort it again in Node.ant_glob 2019-04-23 07:13:02 +02:00
Thomas Nagy 8a32540045
Workaround for Issue 2232 2019-04-22 00:14:17 +02:00
Thomas Nagy 85c499b1cc
Describe how to load md5_tstamp - Issue 2231 2019-04-19 18:47:02 +02:00
ita1024 14ba605138 Merge branch 'doxy' into 'master'
doxygen: maintain order of lines in doxyfile

See merge request ita1024/waf!2223
2019-04-18 06:16:24 +00:00
ita1024 782ee0fcbc Merge branch 'msvcdeps-nostdout' into 'master'
msvcdeps: fix 'WafError' AttributeError

See merge request ita1024/waf!2226
2019-04-18 06:12:37 +00:00
ita1024 61c9415b30 Merge branch 'javadoc-optional' into 'master'
javaw: make javadoc optional

See merge request ita1024/waf!2225
2019-04-18 06:12:08 +00:00
Robert Herbst fc7648b386 javaw: make javadoc optional
Make javadoc optional to support builds on platforms that don't include
javadoc in their Java distribution.
2019-04-16 19:09:43 -05:00
Kevin Markussen cce984f77b msvcdeps: fix 'WafError' AttributeError
This patch corrects an error in the exec_response_command exception
handler which always assumed that the execution's stdout would be bound
to the the WafError exception object.

However, this assumption is only true when the execution completes with
a non-zero status code. For other exceptions, the stdout attribute is
not bound.

Now, when stdout is not available, the WafError msg will be used
instead.
2019-04-16 17:28:28 -05:00
Lucian Teodorescu 08723978e2 doxygen: maintain order of lines in doxyfile
The order of the lines in a doxyfile are important. This patch uses an
ordered dictionary to keep the keys of the doxyfile in the same order.

This is particularly important for doxyfiles that contain @INCLUDE
lines. In such cases, if the dictionary is not ordered, the @INCLUDE
line can end up in the middle of the generated doxyfile and thus
override all entries that were seen before it.
2019-04-15 18:01:49 -05:00
James Harris c083461978 msvc: add pdb_install_task with /DEBUG:* flags
Currently PDBs are only installed if the /DEBUG flag appears in the
current toolchain's LINKFLAGS attribute. This patch expands support
so that /DEBUG:FULL and /DEBUG:FASTLINK also cause PDBs to be
installed.
2019-04-15 17:52:03 -05:00
Thomas Nagy 5e90de89d8
Python 2 encoding enhancements - Issue 2230 2019-04-15 21:18:45 +02:00
William Light 944debb156 extras/syms: fix symbol regex on mac-o binaries
mac-o symbols are prefixed with an underscore. when specifying multiple
sub-regexes (e.g. 'sym1|sym2|sym3'), only the first will be matched
(since the expansion turns into '(?P<symbol>_?sym1|sym2|sym3)'). here,
this is remedied by wrapping the symbol regex in a paren group.
2019-03-31 19:32:39 +02:00
Alibek Omarov 62b935aec8 Add color_msvc tool, which colorizes MSVC output like GCC does by default 2019-03-20 01:25:48 +00:00
fedepell f903ad5f90 waf_unit_test: prevent error when dumping run to script and environment contains UTF-8 chars 2019-03-12 15:46:46 +01:00
Thomas Nagy 5f811ee018
waf-2.0.15 2019-03-10 16:22:03 +01:00
Matt Selsky d8f7fe165f Typos 2019-03-07 22:13:40 -05:00
Thomas Nagy b1baa2b8e1
Revert the args file threshold on non-win32 systems from #2214 2019-03-03 17:43:34 +01:00
Thomas Nagy b72fabf8e5
Do not expose Task.allow_argsfile and remove allow_argsfile from non-Task class #2216
The class waflib.Tools.winres.rc_parser is not a subclass of waflib.Task.Task:
rc_parser -> c_preproc.c_parser -> object
2019-03-03 17:04:53 +01:00
ita1024 e3c0c1b571 Merge branch 'add-allow_argsfile-to-tasks' into 'master'
task: winres: allow tasks to disable @argsfile

Closes #2224

See merge request ita1024/waf!2216
2019-03-03 15:15:36 +00:00
James Harris 84fd982f4b Utils: only use msys2 paths from msys2 python
This patch attempts to detects if, when we are running from within an
MSYS2 environement (MSYSTEM is set) we are also executing inside an
MSYS2 provided version of python. It does this by assuming that if we
are not in a cygwin environment and we are building on windows, If the
value of sys.executable is /usr/bin or /bin or /usr/local/bin (somethign
unixy) then we are running in an MSYS2 python interpreter and shoudl
compensate for msys2 root paths. Otherwise we shouldn't be doing extra
path manipulation.
2019-02-26 17:26:32 +00:00
Thomas Nagy 57377901fe
Fix 4046e48ac1 from #2214
TypeError: can only concatenate list
2019-02-24 10:50:44 +01:00
James Harris 9599cc532f task: winres: allow tasks to disable @argsfile
Not all tools executed by tasks support the '@argsfile' syntax for
shunting commandline arguments to a file. This means that if such
commands are shunted to a file early, he command will not work. On
windows the rc.exe command is such an example, but some tools on linux
have similar limitations. In the posix case, we artifically limit our
commandline size because it is difficult/variable to caluclate what the
actual limit is (it is partially dependent on environment size). This
could artifically cause commands to fail due to commandline length when
they otherwise wouldn't.

This patch fixes this issue by adding the 'allow_argsfile' flag to the
task. This way certain task instances will be able to specify if they
are compatible with the '@argsfile' syntax or not.
2019-02-19 12:48:04 -06:00
James Harris 17b69226c4 Address ntpath bug with empty prefix
This patch addresses the bug described in issue #2225 where in using
posix paths and an empty PREFIX value can result in files being
installed to the root of the drive specified by destdir instead of to
the desired prefix value.  This is a bug in the assumption that user
specified paths that are strings will contain directory separators that
match the target operating system.
2019-02-18 11:38:45 -06:00
James Harris 4046e48ac1 task: calculate correct cmdline bytes
The previous patches to workaround
http://support.microsoft.com/kb/830473 drastically over estimated the
number of characters in commands by treating the repr() version of the
command array as a reasonable estimator of commandline length. This
caused commands attempt to write argsfiles before they should have.

The new calculation calculates the number characters in the command
array and adds the number of spaces that would be added by ' '.join(cmd)
this provides a much closer estimate of the commandline length.

This also limits the CLI-length on non windows platforms to 200kB. This
prevents us hitting the much larger argument limits on Linux/BSD/MacOS
platforms.
2019-02-15 10:50:27 -06:00
fedepell 44046343c9 javaw: add quiet=True to ant_globs to suppress warnings of globbing in build
Most of the ant_globs used are explicitly and knowingly on build directory
(ie. javadoc, jar re) so the warning is quite spurious. The only one that
may be in doubt is the source re one: I added also here because if you use
a code generator (ie. protoc) then it is also correct to glob on builds and
the warning is misleading.
2019-01-31 07:03:26 +01:00
Adriano Scoditti 21ac17d510 Support multiple 'default_cmd' 2019-01-29 11:48:54 +01:00
xbreak 33208b3747 buildcopy: Added warning if buildcopy is used without any files to copy 2019-01-25 12:25:28 +00:00
Federico Pellegrin 429c4c88d9 protoc: simplify the java generation also solving problems with .proto input files generated during build 2019-01-20 10:41:51 +00:00
Thomas Nagy 2f3d5e5163
Prevent protoc errors on "waf list" 2019-01-19 09:40:11 +01:00
fedepell f876a7b18c protoc: fix filename generation for .java 2019-01-17 14:45:40 +01:00
Thomas Nagy 68997828c8
Fix a few deprecation warnings 2019-01-16 06:51:14 +01:00
Thomas Nagy 1c75284614
docs 2019-01-05 16:20:45 +01:00
Thomas Nagy 4bd0c72809
Rework the previous changes 2019-01-05 16:16:48 +01:00
Mickaël Schoentgen 412a9b819e Fix all DeprecationWarning: invalid escape sequence
Signed-off-by: Mickaël Schoentgen <contact@tiger-222.fr>
2019-01-05 12:02:42 +01:00
ita1024 e68dc88857 Merge branch 'cython' into 'master'
Cython enhancements

See merge request ita1024/waf!2196
2018-12-29 10:11:19 +00:00
Thomas Nagy 353ffefa21
waf-2.0.14 2018-12-23 12:12:15 +01:00
ita1024 a77deaebdb Merge branch 'features/fc_submodules' into 'master'
Support for Fortran 2008 submodules.

See merge request ita1024/waf!2205
2018-12-22 00:14:42 +00:00
Harald Klimach e0254f7a75 Missing bracket in submodule appending of fc_scan. 2018-12-21 23:13:35 +01:00
Harald Klimach 3dbf2ee7f8 Support for the Fortran Compiler of the NEC SX-Aurora TSUBASA system. 2018-12-21 20:18:12 +01:00
Harald Klimach e77a6561a1 Support for Fortran 2008 submodules. 2018-12-21 19:53:12 +01:00
Thomas Nagy 3d1744151f
Possible solution for Msys path issues #2217 2018-12-21 11:47:51 +01:00
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