Commit Graph

2344 Commits

Author SHA1 Message Date
Thomas Nagy cc03657db7 Invalidate previous configurations on "waf configure"
Previously-configured projects are now invalidated when
running "waf configure" so that subsequent builds
cannot continue.
2020-09-19 10:38:05 +02:00
Thomas Nagy e73e8d680a Fail Qt5 detection immediately when the c++ compiler is missing 2020-09-19 08:49:05 +02:00
Thomas Nagy ea509dd782 Determine a suitable msvc version option from VSCMD_VER in environment
See b3d1a0c2d4
2020-08-19 23:54:04 +02:00
Thomas Nagy 025ba60ebf Force an asm-specific defines flag 2020-08-15 12:16:36 +02:00
3961583-RA-Kooi@users.noreply.gitlab.com 1f92d020e7 Fix configuration fail when using portable LLVM on Windows 2020-08-13 20:54:19 +02:00
Thomas Nagy 43ce688cdf Fix playground/pch's second example 2020-08-10 21:23:09 +02:00
Thomas Nagy a168e28ec8 Port file_to_obj to Python3 2020-08-03 23:30:33 +02:00
Thomas Nagy f65d08f5d5 Improve wafcache process pre-allocation 2020-08-03 23:20:53 +02:00
Thomas Nagy b41b1741d1 Improve the definition of static link tasks 2020-07-20 22:51:24 +02:00
Alibek Omarov 260f6065b9 c_config: add MCST Elbrus detection 2020-07-20 22:37:51 +02:00
Matt Selsky 778c7ad74c Typo 2020-07-20 22:37:40 +02:00
Thomas Nagy e21aead3b3 Conceal gccdeps/msvcdeps errors on inaccessible/unreadable files 2020-07-20 22:37:34 +02:00
Thomas Nagy 05198a8302 gccdeps/msvcdeps: renaming a header must rebuild silently #2293 2020-07-20 22:37:28 +02:00
Thomas Nagy cd589cd86b Update c_dumbpreproc (broken) 2020-07-20 22:37:18 +02:00
Andreu Montiel 988542e500 Allow parameter "always" in doxygen tool (waflib/extra/doxygen.py) 2020-07-20 22:37:00 +02:00
Johan Pauwels cc11c1dec1 Escape quoted strings in Xcode project 2020-07-20 22:36:39 +02:00
Johan Pauwels 668392f9fb Export preprocessor macros in Xcode project 2020-07-20 22:36:28 +02:00
Johan Pauwels f67f175c39 Fix configuration of linker flags in Xcode file 2020-07-20 22:36:14 +02:00
Johan Pauwels 84e71c9408 Fix alignment in generated Xcode file 2020-07-20 22:35:57 +02:00
Johan Pauwels 495b7c0e04 Xcode6 py3 fix.
The return type of .keys() in Python 3 is no longer a list, but a 
'dict_keys', which does not support the '+' operator.
2020-07-20 22:35:41 +02:00
Federico Pellegrin 0c843e5d40 sphinx: fix installation phase (as generated files are unknown until build) 2020-07-20 22:35:28 +02:00
Thomas Nagy 14b7d15a03 Ensure that the assertion message is showed in python.py #2302 2020-07-15 17:35:22 +02:00
Thomas Nagy 6c99c7cb0b Add a configuration test for pthread detection #2264 2020-05-02 21:04:28 +02:00
Federico Pellegrin 5ee61cfa91 qt5: improve documentation on library detection and options 2020-05-02 19:09:43 +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
Thomas Nagy a910d07d55 Make the unit test result format API compatible with waf 2.0 2020-04-28 01:17:07 +02:00
Federico Pellegrin ba9ddfbfcb waf_unit_test: return also test task in report tuples 2020-04-22 03:55:38 +02:00
Mathieu Courtois 186f627203 boost: fix removal of lib extension 2020-04-09 16:55:14 +02:00
Federico Pellegrin 0c616901b4 c_config: -flto and -fno-lto need to be passed also when linking 2020-03-27 20:20:30 +01:00
Thomas Nagy 4f8099fbdc Improve custom option processing #2280 2020-03-27 20:20:22 +01:00
swaldhoer 93a0258996 Add support for clang++ on cygwin 2020-03-27 20:20:12 +01:00
swaldhoer 02cff4a20c add support for clang on cygwin 2020-03-27 20:19:49 +01: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
Federico Pellegrin c438138476 javaw: fix buglet overwrites working variable while adding dependencies
variable x is used in the outer loop and gets corrupted by inner enumeration in case of non-jar dependency

to reproduce: use the demos/java and run waf build twice: the first time will work (since no class files around)
while the second will not since will by bad luck pick a class file in the inner loop
2020-01-04 11:31:15 +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 ce2e5ca9a2 Exclude ConfigSet from altering ConfigurationContext.run_build caches #2273 2019-12-20 07:57:20 +01:00
Thomas Nagy 13d9c8566c Reduce relative path lengths to work around Visual Studio limitations #2272 2019-12-18 07:27:03 +01:00
Thomas Nagy 07d3203e0b
Make multicheck collisions less likely 2019-12-14 23:49:24 +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
Adriano Scoditti e3c275a96a Make distclean target 'no_lock_in_top/run' modifiers compatible with env vars 2019-12-10 07:32:16 +01:00
Thomas Nagy bab51bf9f4 Remove conf.find_cpp from irix compiler detection 2019-12-10 07:32:08 +01:00
Thomas Nagy 5ec740ad2e Update irixcc 2019-12-10 07:32:01 +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
Severin Strobl 799001bfae Support versioned shared libraries.
Shared libraries often use a suffix encoding their version which should
be handled when parsing linker flags.
2019-11-24 09:07:58 +01:00
Thomas Nagy d97ac90419
Improve the Qt5 fPIC/fPIE detection 2019-11-16 18:47:34 +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
Thomas Nagy e485b45472 Remove the dependency on Qt5Gui in the Qt5 detection 2019-11-10 10:39:39 +01:00
Federico Pellegrin 26309403fd Tools/c_config.py: update to documentation 2019-11-07 07:07:44 +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
Thomas Nagy 142fe5016a
The future version will be 2.1.0 2019-11-03 10:45:20 +01:00
Thomas Nagy 4e171c87ad
Improve os.environ propagation #2264 2019-11-03 10:24:13 +01:00
Thomas Nagy b8f19bfea3 Improve cache activity verbosity 2019-10-29 07:31:41 +01:00
Thomas Nagy a6ff2fc274
Push wafcache files synchronously for now 2019-10-23 19:53:18 +02:00
Thomas Nagy 6ef3a95c48 Insert the classpath dependencies from other task generators in first position #2186 2019-10-23 07:39:03 +02: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 f93cd67b14
Remove WinCE detection from msvc.py 2019-10-20 08:23:36 +02:00
Thomas Nagy 4aaadc1320
Remove Winphone detection 2019-10-20 07:45:02 +02:00
Thomas Nagy 5041a862fb
Propagate ldflags to fortran tasks #2262 2019-10-20 07:39:11 +02:00
Thomas Nagy dbe338c246
Make wafcache a default module 2019-10-18 23:05:12 +02:00
Thomas Nagy 959d57b757
Remove the metaclass hierarchy in Python 2 2019-10-18 23:02:19 +02:00
Thomas Nagy 1068ff98ec
Waf file creation will now require Python 3 2019-10-17 20:05:48 +02:00
Thomas Nagy fbee1a19d2
Tune the application name on --help #2254 2019-10-14 07:59:40 +02:00
Thomas Nagy 6539bd1ad3
Improve error messages in c_aliases 2019-10-08 20:04:00 +02:00
Thomas Nagy 2758fb3f7c Silently ignore negative values for -j 2019-09-26 21:50:18 +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
Thomas Nagy 68bf3867df
Unbreak the endianness test with msvc 2019-09-08 22:51:09 +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 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