Commit Graph

759 Commits

Author SHA1 Message Date
Federico Pellegrin 0c843e5d40 sphinx: fix installation phase (as generated files are unknown until build) 2020-07-20 22:35:28 +02:00
Thomas Nagy 6c99c7cb0b Add a configuration test for pthread detection #2264 2020-05-02 21:04:28 +02:00
Michael Vincent d3c0017d21 msvcdeps: Tweak debug output
Print out which source file waf is gathering dependencies for and leave
the leading spaces in the dependency debug output because it can be
helpful to see the dependency hierarchy.
2020-05-02 19:09:34 +02:00
Mathieu Courtois 2a6817fa1c boost: ignore version number from library name 2020-05-02 19:09:22 +02:00
Mathieu Courtois 186f627203 boost: fix removal of lib extension 2020-04-09 16:55:14 +02:00
Michael Vincent b7549d33ed gccdeps: Add support for gas
Add support for generating and using gcc's native dependency files with
the GNU Assembler in addition to the existing C/C++ support.

When the gas and gccdeps tools are loaded, the configure step will test
whether gcc operating on an assembly file supports the -MMD argument.
If so, waf will pass the -MMD argument to .S files assembled with gcc
which will cause it to generate .d dependency files. Waf will then parse
those files for dependency information.

Note: This will only work for assembly files compiled through the gcc
frontend, not with GNU as directly. It also requires assembly files to
use the uppercase .S file extension.
2020-03-27 20:19:35 +01:00
Federico Pellegrin 405c322489 doxygen: add ext_int to force build ordering 2020-03-27 20:19:25 +01:00
Federico Pellegrin 0c855b0aa2 javatest: add dependency management for jar/java taskgens 2020-01-04 11:31:25 +01:00
Morten V. Pedersen 3204e2597c Using suggested self.cmd.startswith approach 2020-01-02 19:58:25 +01:00
Morten V. Pedersen 058b5d3793 Fix detection of build context when a custom context is used 2020-01-02 19:58:18 +01:00
Thomas Nagy 35617abe5e Remove another sys.platform == win32 2019-12-11 19:51:49 +01:00
Thomas Nagy 015a51a7cf Split llvm-lib path discovery into its own function 2019-12-11 07:42:02 +01:00
Thomas Nagy 52a49960c1 Improve extras/clang_cl 2019-12-10 07:53:23 +01:00
Rafaël Kooi 32c2a49bf0 Support pure clang-cl builds on not Windows
A.k.a. I just tested it on Linux.
2019-12-10 05:07:35 +01:00
Rafaël Kooi 7310ade7c3 Initial clang-cl support 2019-12-10 05:07:35 +01:00
Thomas Nagy b27afc7bbc
Use task.get_cwd() in clang_compilation_database 2019-11-10 19:01:38 +01:00
Rafaël Kooi 5343e8547a Add back an accidentally deleted line clang_compilation_database.py 2019-11-10 15:45:36 +01:00
Thomas Nagy 394f3cdac8
Typo 2019-11-10 12:34:36 +01:00
Thomas Nagy 16dbeb73e8
Fix relative path comparisons in clang_compilation_database 2019-11-10 12:32:20 +01:00
Thomas Nagy 38b6f24d73
Update msvc_pdb.py from the master branch 2019-11-10 10:41:25 +01:00
Alibek Omarov 261a589a66 msvc_pdb: check compiled_tasks existence, so it will not misleadingly throw a stacktrace if no sources was added 2019-11-04 21:26:29 +01:00
Rafaël Kooi dbc66d19ba [MSVC/Fortran] Add /Fd flag when /Zi or /ZI flags are detected
Fixes #1731
2019-10-22 07:25:31 +02:00
Thomas Nagy dbe338c246
Make wafcache a default module 2019-10-18 23:05:12 +02:00
ita1024 a56186637c Merge branch 'pytest_njd' into 'master'
pytest: add handling also of java dependencies via CLASSPATH (ie. JEP/Jython)

See merge request ita1024/waf!2258
2019-09-13 22:24:55 +00:00
Federico Pellegrin 02c3711e2e javatest: manage environment also for non-java dependencies (ie. JNI / JEP) 2019-09-13 22:24:28 +00:00
Federico Pellegrin 7ab507c799 pytest: add handling also of java dependencies via CLASSPATH (ie. JEP/Jython) 2019-09-10 09:55:17 +02:00
Alibek Omarov b8fd6a0515 clang_compilation_database: fix #2247, add clangdb command to generate database by request without rebuilding, add tests (WIP) 2019-09-08 20:05:37 +00:00
Thomas Nagy 4389e4400e
Add WAFCACHE_NO_PUSH to extras/wafcache 2019-09-01 09:31:07 +02:00
Thomas Nagy aece9b5e4b Enable wafcache remote servers 2019-08-25 22:31:12 +02:00
Thomas Nagy 0c0916ebdb
Add a new file-based waf cache implementation 2019-08-01 21:23:46 +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 b7a6114ac7 Limit fast_partial.py failures on configuration tests 2019-06-25 11:53:00 +02:00
Thomas Nagy 9b3ab4b874 Improve fast_partial compatibility #2240 2019-06-23 08:45:18 +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
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
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
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
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
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
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
Matt Selsky d8f7fe165f Typos 2019-03-07 22:13:40 -05: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 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
Harald Klimach 3dbf2ee7f8 Support for the Fortran Compiler of the NEC SX-Aurora TSUBASA system. 2018-12-21 20:18:12 +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
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
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
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
Thomas Nagy 314bd31e6a
Find more Swig dependencies - Issue 2206 2018-11-06 00:20:31 +01:00
mmooij 02c20b8e85 Check if sources/include are Nonde3 type 2018-08-21 17:52:09 +02:00
Daniel Bartel ef90934434 spawn a subprocess for cpplint to avoid threading issue 2018-08-10 23:49:52 +02:00
Matt Selsky a10822f688 Fix typos 2018-07-28 19:47:10 -04:00
Matt Selsky 12b9f9aed1 Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04: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
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
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 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
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 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
Thomas Nagy facdc0b173
Python 3.7 fixes #2126 2018-03-12 20:42:55 +01:00
Fangrui Song 5e4b86b81d Use "arguments" instead of "command" for compile_commands.json 2018-03-11 21:54:35 +01:00