Commit Graph

2075 Commits

Author SHA1 Message Date
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
Thomas Nagy 6a638625cf Update the Swig example #1982 2017-06-19 19:42:53 +02:00
Thomas Nagy a550472fcb Fix missing tg_idx_count attribute on task generators 2017-06-16 00:28:49 +02:00
Thomas Nagy f49f162817 Rework the priority system
- Have Task.weight apply to the current task only
- Do not rely on object addresses to set the build order
- Introduce tg.tg_idx_count to count task generators
- Enable propagating/non-propagating weights through Task.tree_weight/Task.weight
2017-06-16 00:14:32 +02:00
Thomas Nagy 0b5202a88b Simplify build order settings for "subst" tasks 2017-06-15 20:36:30 +02:00
Thomas Nagy af4a768775 Try to process link tasks as early as possible 2017-06-15 16:01:12 +02:00
Thomas Nagy e5e8397154 Change producer.outstanding.appendleft to producer.outstanding.append 2017-06-14 19:53:01 +02:00
Thomas Nagy 23c0d41aff Schedule tasks using a priority queue 2017-06-14 18:59:28 +02:00
Thomas Nagy ddce7d344e Simplify assertion logic in Runner.py 2017-06-14 14:16:54 +02:00
Thomas Nagy ef75def36a Split incomplete tasks into DAG and non-DAG groups 2017-06-14 13:59:46 +02:00
Thomas Nagy 1d4ce07dea Fix update->extend mismatch in Runner.py - work in progress #1982 2017-06-09 15:54:08 +02:00
Thomas Nagy f75de87cf4 Complete the rename Runner.frozen -> Runner.incomplete #1982 2017-06-08 20:04:24 +02:00
Thomas Nagy ccf5961607 Ensure link tasks are processed after swig tasks 2017-06-08 19:46:22 +02:00
Thomas Nagy 3e1e6586e5 Fix one regression on more_tasks #1981 2017-06-08 14:27:56 +02:00
Thomas Nagy 758d520e90 Fix the docstring of find_file #1980 2017-06-08 14:21:45 +02:00
Thomas Nagy f72167b0e0 Fix one regression on more_tasks #1981 2017-06-07 19:07:27 +02:00
Seth Hinze 2fd1e44a98 Allow overriding namespace of resx files. 2017-06-04 09:18:27 +02:00
Seth Hinze 8410d4554a Add xmldoc support to cs tool. 2017-06-04 09:18:16 +02:00
Seth Hinze 1d99aed103 Allow /noconfig to be used with csc 2017-06-04 09:18:10 +02:00
Seth Hinze a3b6d7dcac Fix pdb installation in cs tool. 2017-06-04 09:18:02 +02:00
Thomas Nagy 377d09831b
Force an encoding on config.log #1974 2017-06-03 00:03:49 +02:00
Thomas Nagy 578230789a
Handle spaces in python paths on Windows #1973 2017-05-29 23:11:53 +02:00
Jan Niklas Hasse 73e7568165 Preserve modification time for is_copy=True 2017-05-24 19:14:54 +02:00
fedepell b639668c3b eclipse: generate configuration just for languages that are effecitvely used in wscript and not all of them all the time 2017-05-23 21:24:01 +02:00
fedepell 372c801472 eclipse: little code cleanup 2017-05-23 21:23:53 +02:00
Gustavo Sousa bb9f4a3b82 javaw: run use_javac_files() before propagate_uselib_vars()
Updating the uselib attribute after propagate_uselib_vars() is called won't
yield the desired effect.
2017-05-23 21:23:30 +02:00
fedepell 60070330a6 eclipse: add support also for java project configuration generation 2017-05-17 01:36:05 +02:00
Akira Baruah 5410e58ce5 cpplint: logger subclasses also inherit from object to safely call super() 2017-05-17 01:35:54 +02:00
Thomas Nagy 07c47309de
Handle vswhere output encodings in Python2 #1965 2017-05-17 01:35:38 +02:00
Akira Baruah 86134af9fb cpplint: fix Python 2 import name collision using `absolute_import` 2017-05-13 09:42:59 +02:00
Thomas Nagy 7a51f8f364 Detect older products with vswhere.exe 2017-05-08 19:12:17 +02:00
Refael Ackermann 37e2cf449c Detect MSVS 15.0 Installation path (via vswhere)
Fixes: #1924

Inspired by the scripts from https://github.com/node4good/msvs-com-helper
2017-05-08 19:12:08 +02:00
Jan Niklas Hasse 579893f61f Import library files need to be installed into lib/ on Windows
Fix #1860.
2017-05-06 03:48:43 +02:00
fedepell 71d73d09dd eclipse: create the pydev python path configuration from the waf setup so the symbols can be correctly resolved in the IDE 2017-05-06 03:48:33 +02:00
fedepell ac4cd579e6 eclipse: use standard variable ${PROJECT_DIR_NAME} in pydev configuration instead of hardcoded name for better portability 2017-05-06 03:48:26 +02:00
fedepell acb0420313 eclipse: absolute include paths must be added without the workspace prefix or they will result in an incorrect path. treat them correctly as system paths. 2017-05-03 06:44:55 +02:00
fedepell 25e01a2077 eclipse: generate tool index dynamically or visually eclipse will get confused and overwrite the name of the tools, even if the functionality seems somehow to work anyway.
documentation I found seems to point that the index should be unique.
2017-05-03 06:44:48 +02:00
fedepell f7068944f3 eclipse: pass correct languageId for C++ when generating tool otherwise settings will not be used when C++ files are edited 2017-05-03 06:44:40 +02:00
Akira Baruah 60635533c5 cpplint: add `--cpplint-root` option 2017-04-27 21:32:54 +02:00
Akira Baruah 2a7370c597 Check `env.CPPLINT_SKIP` after `options` are converted to `env`s #1953 2017-04-27 21:32:48 +02:00
Akira Baruah 45b11ef381 Remove undeclared `ve` variable for performance improvement #1950 2017-04-25 23:59:53 +02:00
Thomas Nagy b37f37afcd
Improve waf -v speed in verbose mode #1950 2017-04-23 19:10:49 +02:00
Thomas Nagy 712fdf7765
Simplify token processing in c_preproc 2017-04-22 22:30:34 +02:00
Thomas Nagy ae3d3c6b93
Override ConfigSet.__getattr__ properly in errcheck 2017-04-22 22:29:17 +02:00
Thomas Nagy fbdc9fd5a3
Code simplifications 2017-04-22 22:12:11 +02:00
Thomas Nagy 8c32fade86
Improve Task group debugging in Runner.py 2017-04-22 22:09:23 +02:00
Thomas Nagy a768c3114d
Simplify boolean comparisons 2017-04-22 22:08:00 +02:00
Thomas Nagy e7ba84b8dd
Typo 2017-04-22 21:48:34 +02:00
Thomas Nagy 4b657a6b62
cleanup 2017-04-22 17:29:00 +02:00
Thomas Nagy 5c4e87bbc6
Workaround ironython systemerror bug 2017-04-22 17:17:33 +02:00
Thomas Nagy 89a37949c0
waf-2.0.0pre2 2017-04-22 15:53:00 +02:00
Thomas Nagy 3cee7b36f0
Ensure bld.current_group reflects the current group while building 2017-04-22 15:45:18 +02:00
Jiří Janoušek 585d7876f1 vala: support *.vapi as input files
Vala compiler can use *.vapi files also as input files alongside *.vala
files. If you build a library, these vapi files are not included ín
resulting *.deps files and are, therefore, suitable for internal
purposes.

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
2017-04-21 22:31:17 +02:00
Thomas Nagy 5be20feee2
Exclude install vapi paths and empty installation tasks 2017-04-20 22:06:23 +02:00
Thomas Nagy 1d2f485230
Make the invalid uid task verification slightly less verbose 2017-04-20 22:03:38 +02:00
Thomas Nagy 5ac6123e5e
Cleanup: Break multiple statements on multiple lines 2017-04-17 13:16:57 +02:00
Thomas Nagy cfe9158664
Cleanup 2017-04-17 12:24:33 +02:00
Simon b30ff35229
Replace param 'source_files' with 'group_files'.
The 'source_files' param to the xcode6 tool was originally separated from the
conventional 'source' param because it was used to control how the source files
would appear in the XCode folder UI. Also, it'd allow to add any file extensions,
and not limited to those extensions supported by the loaded set of waf tools.

This commit renames 'source_files' param to 'group_files'. It also changes the semantic so that 'group_files' now is used like the following:

bld(
 source='...', # These are now the files compiled by XCode
 'group_files': ..., # Optionally customize the way source files appear i the UI
)

Previously, 'source_files' was used to collect source files for compilation in XCode, and to customize the UI folder structure. In this commit source_files is used only to let the user group files in different UI folders (and add additional resource files besides source files). I want to do the renaming to better reflect the param's meaning.

Additional changes:

* Remove unique_filereference

* Updated examples
2017-04-16 01:38:30 +02:00
Thomas Nagy 29b32f7a1a
Reflect the current build group in bld.current_group 2017-04-15 15:12:03 +02:00
Thomas Nagy 2b09852d9e
Cleanup #1943 2017-04-15 13:50:50 +02:00
Thomas Nagy f060b33e59
Obtain NO_LOCK_IN_TOP/RUN/OUT from os.environ too 2017-04-14 22:04:57 +02:00
Thomas Nagy 9e9f41c613
Do not cast test outputs to integers with add_to_env 2017-04-14 02:47:44 +02:00
Thomas Nagy 98f051dfa4
Detect Python from conf.env.PYTHON 2017-04-14 02:47:30 +02:00
Thomas Nagy a31b08615c
Ensure env.PYTHON is set (regression) 2017-04-13 21:10:47 +02:00
Thomas Nagy 25924554f2
Extract the distcheck command argument 2017-04-13 19:03:13 +02:00
Thomas Nagy eda87cd5b5
Ignore empty lock files 2017-04-13 12:13:34 +02:00
Thomas Nagy 17015626e2
Keep opt.load('python') optional 2017-04-13 12:13:16 +02:00
Thomas Nagy 4c9ee84194
Ignore empty environment variables in find_program 2017-04-10 20:40:07 +02:00
Thomas Nagy 30de08ca8a
Make target declaration unnecessary #1943 2017-04-09 11:28:25 +02:00
Thomas Nagy c106c929af
Detect the most recent msvc version first 2017-04-08 21:35:37 +02:00
Thomas Nagy 566b3fa644
Xcode 6 generator fixes #1939 2017-04-08 02:27:43 +02:00
Thomas Nagy 172cafa629
Docs for #1937 2017-04-02 09:57:18 +02:00
Thomas Nagy a61bae1fca
Add -pie for parse_flags #1936 2017-04-02 09:57:02 +02:00
Thomas Nagy 058807ed9a
Add new entries for parse_flags #1936 2017-03-31 18:16:32 +02:00
Matt Selsky b247ab1c83 Typos 2017-03-27 19:33:16 +02:00
Harald Klimach 648b10a749 Fixed Fortran module naming scheme (unexpected upper instead of lower). 2017-03-27 19:31:52 +02:00
yngwe@FRY 0233ec9c89 #1925: improve support for Visual Studio 2017, added support for all cross compiler & added ARM64 target support 2017-03-25 23:23:06 +01:00
Thomas Nagy 33918da4f4
Order msvc compiler detection #1907 2017-03-25 13:33:54 +01:00
Thomas Nagy a26236da2a
Improve Qt detection with frameworks 2017-03-25 12:51:53 +01:00
Jan Niklas Hasse 6ce33c7e53 Support CLICOLOR(_FORCE) to control colored output 2017-03-25 10:44:57 +01:00
Gordon Tisher dfba301324 Update vs2017 support to correctly configure x64 2017-03-15 18:19:13 +01:00
Gordon Tisher 7c44ac1b3b Add the ability to detect Visual Studio 2017 to msvc 2017-03-14 22:32:36 +01:00
Simon Guillot 069d5dca2e Fix bug in the clang_compilation_database tool when no C compiler is loaded 2017-03-14 22:21:10 +01:00
Thomas Nagy 90ab7a2ae9
Cleanup 2017-03-08 18:27:29 +01:00
Justin Israel 6a4091718e Extend ListContext to print TaskGen descriptions
Signed-off-by: Justin Israel <justinisrael@gmail.com>
2017-03-08 18:22:29 +01:00
fedepell 185530e170 cppcheck: fix Python3 incompatibilities (see #1921) 2017-03-08 18:22:22 +01:00
Thomas Nagy d625e2ac2a
Additional fortran extensions #1916 2017-03-04 12:08:22 +01:00
Thomas Nagy c8d83954b7
Provide unity builds per task generator 2017-03-04 10:29:04 +01:00
Thomas Nagy 37af78a02b
Obtain run_build_cls from run_build/check parameters 2017-03-04 08:22:18 +01:00
Thomas Nagy 5d4074eb7f
Display commands as string with "WAF_CMD_FORMAT=string waf build -v" 2017-03-04 08:20:27 +01:00
Thomas Nagy 5fb2e21ccf
Remove smart_continue because it is the default behaviour 2017-03-02 20:47:45 +01:00
Thomas Nagy 65dc0c7a6f
Remove force_build_directory as it is the default behaviour 2017-03-02 20:47:22 +01:00
Thomas Nagy e352fb05c0
UNC path fixes 2017-03-02 20:45:45 +01:00
Thomas Nagy 14197b713f
Cleanup 2017-03-02 20:43:44 +01:00
Thomas Nagy 121e2c29d1
Work around an annoying Python 3.6 regression #1889 2017-03-02 20:10:43 +01:00
Thomas Nagy 8560c18ccb
Process a given task group exactly one 2017-02-20 19:01:33 +01:00
Thomas Nagy 63a53064a3
Provide TaskGroups to replace mem_reducer 2017-02-19 19:58:19 +01:00
Thomas Nagy 1c3c49d0fb
Simplify task.inputs/task.outputs usage 2017-02-19 11:05:44 +01:00
DragoonX6 0c541f606a Make clang_compilation_database add-on always output complete listings. 2017-02-18 13:04:59 +01:00
Alexander Afanasyev acd41beef1 qt5: Workaround for QT5 detection on macOS (Bug #1910) 2017-02-15 18:36:20 +01:00
Matt Selsky c46ee9bfe3 Typo 2017-02-15 18:36:13 +01:00
Alexander Afanasyev 4e9c5cfa37 c_osx: Fix install task for mac_files 2017-02-15 18:36:05 +01:00
Thomas Nagy 30d5733c22
Better error message on missing macros 2017-02-14 22:44:09 +01:00
Thomas Nagy 2f64e0a273
Warn for missing cflags/cxxflags in gccdeps 2017-02-14 22:36:35 +01:00
Thomas Nagy 620f255b13
Fix the thread index in parallel_debug 2017-02-14 19:42:07 +01:00
Thomas Nagy d7822a04de
Make Task.Task.hcode a hashable value 2017-02-12 15:42:40 +01:00
Thomas Nagy 497f028a95
Implement a new priority system 2017-02-12 15:29:16 +01:00
Thomas Nagy ee98328c2f
Keep winres flags in subsequent detections #1908 2017-02-11 23:33:57 +01:00
Thomas Nagy b7d93c3c4d
Update the year in headers to 2017 2017-02-11 16:13:37 +01:00
Thomas Nagy 5ac8e882e0
Remove the TaskBase class hierarchy level 2017-02-11 15:04:25 +01:00
Thomas Nagy 62fe305d04
Remove field_name, type_name, function_name from conf.check() tests #1906 2017-02-11 10:41:05 +01:00
Thomas Nagy 1ea2039c3a
cleanup 2017-02-05 13:00:36 +01:00
Yinon Ehrlich cd20e6f0c2 Retain original trace-back (#1903) 2017-02-05 12:59:36 +01:00
Thomas Nagy 2d59e84687
Cleanup 2017-01-30 23:25:30 +01:00
Jan Niklas Hasse 3a7903cebd Improve error message about version mismatch (#1902) 2017-01-30 23:25:18 +01:00
Thomas Nagy f2eaf17089
Disable the detection of Qt debug libraries 2017-01-28 11:50:41 +01:00
Thomas Nagy ee2c5865f9
Simplify the Qt5 library detection 2017-01-28 11:41:07 +01:00
Thomas Nagy 107b82a242
Remove the lib- prefix from created import libraries 2017-01-28 11:14:03 +01:00
DigitalDan05 90719cf63a Allow numbers for Java compat attribute (#1899)
Force the java "compat" parameter as a string.
2017-01-24 20:51:56 +01:00
fedepell ed3b943803 qt5: generate the list of Qt5 libraries by searching on the system, instead of hardcoded list in tool
This gives the possibility to search on the system (QT5_LIBDIR or library automatically
found) for libraries available instead of using the list hardcoded in the tool. The search is
done using a regexp that matches the same files as the ones used for library search with support
for dynamic/static and win32/unix.

This change makes the tool more versatile to new versions of Qt5 as we don't have to maintain the
library list anymore. It should also make configure faster as just the libraries phisically present
will be tested upon. Custom libraries installed on top of base Qt5 will be also recognized with this
method.
2017-01-24 18:26:45 +01:00
Thomas Nagy 1a8e5c881d
Simplify task un-installation 2017-01-22 14:40:36 +01:00
Thomas Nagy 57b406aaff
Add a task status 'canceled'
The purpose is to skip safely the tasks that have
missing dependencies due to build errors.
2017-01-21 23:47:44 +01:00
Thomas Nagy f1487eab44
iso8859-1 -> latin-1 2017-01-21 13:28:06 +01:00
Thomas Nagy 1a0396ea88
Accept nested lists as bld(source=...) 2017-01-21 12:50:52 +01:00
Matt Selsky 0d63f15cde Typo in docstring (#1895) 2017-01-16 18:42:09 +01:00
Thomas Nagy cfbf539166
Let ant_glob(generator=True) return a generator object 2017-01-15 01:33:44 +01:00
Thomas Nagy 4226d0cf7b
Code cleanup 2017-01-15 01:16:44 +01:00
Federico Pellegrin ed55a0c9ea Remove .so extension from detected qt5 library (#1892) 2017-01-11 21:30:41 +01:00
fedepell 2128ce1bc1 qt5: add --qtextralibs option to add qt5 custom libraries on the system to the default libraries list present in the qt5 tool
example usages:
waf configure --qtextralibs Qt5OpcUA
waf configure --qtextralibs Qt5OpcUA,Qt5Dummy
2017-01-11 08:07:49 +01:00
Thomas Nagy 12b038833e
docs 2017-01-06 23:15:53 +01:00
Thomas Nagy a3c44f5d9b
Fix the method specification in syms.py 2017-01-06 23:08:05 +01:00
Thomas Nagy c2baf7f9bf
Missing parentheses in syms.py 2017-01-06 23:02:56 +01:00
Thomas Nagy 0d47689d97
Conceal Python 2.6 subprocess errors 2017-01-06 04:30:02 +01:00
Federico Pellegrin 627cdb705d Add qt5 5.8.x new libraries to qt5 tool (#1888) 2017-01-05 19:33:02 +01:00
Thomas Nagy fa145ed653
Find the order that follows the alphabet 2017-01-05 03:44:36 +01:00
Thomas Nagy e5cafe6c7a
Change TaskGen.prec into a map of sets 2017-01-05 01:59:51 +01:00
Thomas Nagy f322cfe569
Improve Utils.Timer on python >= 3.3 2017-01-03 15:48:35 +01:00
Thomas Nagy 3a68ccccff
Do not add -W warnings to cflags from check_cfg 2016-12-31 17:22:41 +01:00
Thomas Nagy b6be90f555 Add -g and -W flags for #1887 2016-12-28 11:30:32 +01:00
Thomas Nagy 3180d81e86 simplification 2016-12-28 11:26:55 +01:00
Matt Selsky 0b971bdae5 Make sure to save compiler optimization flags from foo-config scripts (#1887)
python-config on openSUSE needs -O2 to match -D_FORTIFY_SOURCE

Fixes #1886
2016-12-28 11:23:08 +01:00
montonero 94a5f51e98 Added '-o' flag for emscripten linker (#1885)
* correct static lib extension for emscripten

* added space after '-o' flag for emscripten/clang

* removed empty line

* -o flag for linker
2016-12-27 20:19:06 +01:00
montonero 86dcfb3ee2 Fixed '-o' flag for emscripten/clang (#1882)
* correct static lib extension for emscripten

* added space after '-o' flag for emscripten/clang

* removed empty line
2016-12-27 20:18:24 +01:00
Thomas Nagy c12947571d Display sha256 instead of sha1 on 'waf dist' 2016-12-27 14:42:15 +01:00
Thomas Nagy 5c2db88730 Prevent accidental data sharing on ext_in/ext_out/before/after 2016-12-26 15:54:03 +01:00
dffischer b521041eb4 glib2: Compile schemas per directory (#1881)
* glib2: Compile schemas per directory

By changing GSETTINGSSCHEMADIR during the build setup or on single tasks
or generators, the user may place schemas in various locations. Adding a
post build function for each of this location compiles all of them
instead of only one global directory.

* glib2: Notify user about failed schema compilation

* glib2: Demo schemas installed to multiple places

A new schema lacking lacking any enumerations was introduced. Installing
it isolated simplifies the generator creation to the essential
components demonstrated.
2016-12-23 17:45:12 +01:00
Thomas Nagy 2468850953 Improve process_rule cache accuracy 2016-12-22 18:14:36 +01:00
Thomas Nagy 2d6487883c Fix chmod with tuple rules #1884 2016-12-22 15:21:26 +01:00
Thomas Nagy dbe1a4ad78 Include all vars in tuple rules #1883 2016-12-22 15:21:16 +01:00
Thomas Nagy 900d6b891c Optimize Node.path_from 2016-12-21 22:28:42 +01:00
Thomas Nagy 09713f49e4 Update the gsettings schema cache without a shell 2016-12-21 22:28:30 +01:00
XZS af7f6c68d6 glib2: consider destdir when compiling schemas
When a destdir is set, the schemas are now not only installed below it,
but also compiled there.
2016-12-21 22:28:18 +01:00
montonero 29cc88faf1 correct static lib extension for emscripten (#1876) 2016-12-21 22:27:52 +01:00
Ricardo Crudo 2ea34191fb Tools/python: add option --nopycache (#1878)
Add option to not use __pycache__ dir when installing python objects.
2016-12-21 22:27:29 +01:00
Thomas Nagy 9be4fa2c0c
Avoid hash() and __class__ usage in Task.hash_constraints 2016-12-07 23:18:53 +01:00
Thomas Nagy ce78d67f9d
Simplification __class__.inst_to -> inst_to 2016-12-07 22:01:24 +01:00
Thomas Nagy 468f205bcd
Read variables from self.vars #1873 2016-12-07 19:09:30 +01:00
Thomas Nagy d0c475462b
docs 2016-12-04 01:36:00 +01:00
Thomas Nagy 90993f1153
Remove c_preproc.trimquotes 2016-12-03 06:47:37 +01:00
Thomas Nagy ceedab882d
Remove atleast-version, exact-version and max-version from conf.check_cfg 2016-12-03 06:44:20 +01:00
Thomas Nagy ac2ebb2ccc
Remove Task.update_outputs, Task.always_run 2016-12-01 22:58:47 +01:00
Thomas Nagy fb01bf72ab
Remove the BuildContext.rule decorator 2016-12-01 22:57:25 +01:00
Thomas Nagy a5d2c5fe24
Remove Node.sig/Node.cache_sig 2016-12-01 22:55:49 +01:00
Thomas Nagy 3e7098861c
Use find_resource for java manifest files 2016-11-26 20:27:04 +01:00
Thomas Nagy 383fb61b0d
Fix the inconsistent partial detection for #1865 2016-11-26 19:39:46 +01:00
Thomas Nagy c5bf55ee86
Allocate Utils.lru_cache lazily 2016-11-26 18:59:38 +01:00
Thomas Nagy 5fd84a75e6
More cleanup for #1865 2016-11-26 14:22:30 +01:00
Thomas Nagy 1318c5f2d6
Cleanup for #1865 2016-11-26 11:54:27 +01:00
Gustavo J. A. M. Carneiro ac55bf5bf7 Accept functools.partial() as a task rule #1862 (#1865)
Accept functools.partial() as task generator rules #1862
2016-11-26 11:54:18 +01:00
Thomas Nagy 99d5112da6
Increase the cache size for #1833 and #1859 2016-11-22 20:34:23 +01:00
Thomas Nagy ec9081e81c
Let Node.find_or_declare accept paths as lists 2016-11-20 13:49:17 +01:00
Thomas Nagy a892d8725a
Force files into the build directory by default 2016-11-20 13:43:06 +01:00
Thomas Nagy 2c8777ebc8
Keep sorted lists in TaskGen.prec[] 2016-11-20 10:22:40 +01:00
Thomas Nagy 9c87928f33
Removed ut_fun from waf_unit_test.py 2016-11-20 10:21:19 +01:00
Thomas Nagy cdfd5f03cf
Development branch for waf 2.0 2016-11-20 10:14:25 +01:00
Thomas Nagy 4699a7871d
Warn of single dots in ant_glob #1853 2016-11-19 09:12:33 +01:00
Thomas Nagy af66a27da3
Specify shell usage in test script execution 2016-11-19 00:11:46 +01:00
Thomas Nagy bdb18e8394
Changed --dump-test-runner to --dump-test-scripts 2016-11-19 00:03:55 +01:00
fedepell e8942d7f22 waf_unit_test: add new option --dump-test-runner that creates python scripts to manually run or debug test executions
this can be very useful when debugging unit test problems as when run outside waf then the LD_LIBRARY_PATH (or PYTHONPATH if used with pytest extra) is set dynamically by waf and therefore running the executable manually or via gdb is not immediate
all the environment will be dumped in python script that can then be executed to run manually tests.
2016-11-18 23:40:59 +01:00
Thomas Nagy 24cc1dc057
missing import 2016-11-14 22:20:57 +01:00
Thomas Nagy af7716f014
docstring for #1851 2016-11-14 22:13:26 +01:00
Thomas Nagy 0454ee677e
docs 2016-11-08 21:31:11 +01:00
Thomas Nagy 058b8f7f39
simplifications 2016-11-06 12:00:35 +01:00
Federico Pellegrin 90b66a4f04 cppcheck: fix extra forn multiple build rules are in a single wscript (#1844)
* cppcheck: fix extra forn multiple build rules are in a single wscript

When executed the output from cppcheck will be put inside cppcheck.xml and
then the generated error output inside cppcheck/index.html (and related
subfiles). Of course if two separate build rules are present the files
will clash with each other and data will be lost.

So this will not work in previous version:

bld.program(source=bld.path.ant_glob('src/ex-prog-*.cpp'), includes='src/', target='ex-prog-c')
bld.program(source=bld.path.ant_glob('src/ex-prog2-*.cpp'), includes='src/', target='ex-prog2-c')

In the output just one of the two results will be there (or in worst case
we will have files being deleted/garbled) as they both try to work on
cppcheck.xml and index.html (in build and build/cppcheck respectively)

With this commit the xml/html files have a reference to the task name (so
appended with a dash) so they are unique and don't clash. Also all the
messages to the user are corrected accordingly so the user is pointed to
the correct name of the file (and so are the internal links generated in
the html file).

In the previous case we will have:

ccpcheck detected (possible) problem(s) in task 'ex-prog2-c', see report for details:
    file:///home/fede/waf/cppc/build/cppcheck/index-ex-prog2-c.html

ccpcheck detected (possible) problem(s) in task 'ex-prog-c', see report for details:
    file:///home/fede/waf/cppc/build/cppcheck/index-ex-prog-c.html

* cppcheck: Provide as an option also old way of single index.html file for compatibility
2016-11-06 11:33:25 +01:00
Thomas Nagy 6ecf6390a8
Better error message on method cycle detection 2016-11-05 11:56:08 +01:00
Thomas Nagy 076d9202ba
Append tex configuration outputs to config.log 2016-11-04 06:10:17 +01:00
Thomas Nagy 86e9c0527c
Cleanup 2016-11-03 22:42:17 +01:00
fedepell 572cd98aab cppcheck: add possibility to use -j option for multiple parallel threads, speeds up drastically when executing on multiple source files 2016-11-03 22:02:10 +01:00
fedepell 655217384a cppcheck: check very ugly if code checking for configuration mode 2016-10-27 18:36:34 +02:00
fedepell c6ebd2547c cppcheck: do not execute task when in configuration mode as this can break other tools (ie qt5) which do a test build. see also #1840 2016-10-26 22:41:02 +02:00
fedepell 54a5ebe46a pytest extra: add more graceful and informative error if parameter is pointing to no valid source files 2016-10-24 11:17:21 +02:00
Thomas Nagy 0db417ac1a
docs - #1836 2016-10-20 18:44:55 +02:00
Thomas Nagy cd50b17e7b
Wrong cwd path for unity.py 2016-10-18 18:09:44 +02:00
Thomas Nagy 287046547b
Let unity builds use relative paths for msys #1834 2016-10-17 20:06:39 +02:00
Thomas Nagy 9ae47088bb
Enable configurable preprocessor cache sizes #1833 2016-10-14 19:28:26 +02:00
Thomas Nagy 4bd13de095
Unnecessary file 2016-10-11 18:35:12 +02:00
Thomas Nagy 3e47e4250e
Display @argfile contents in msvcdeps #1831 2016-10-11 18:34:35 +02:00
Thomas Nagy 443985720f
Do not change permissions on symlinks because this is not used anywhere 2016-10-09 21:41:31 +02:00
Thomas Nagy b159ecc44f
waf-1.9.5 2016-10-09 16:28:59 +02:00
Thomas Nagy 4ed44b2e99
Fix the api documentation 2016-10-08 23:29:46 +02:00
Thomas Nagy f02047b8ea
Add install_user and install_group to bld.install/bld.install_as/bld.symlink_as 2016-10-08 22:35:05 +02:00
Thomas Nagy 4417a3c8c1
Minimize the amount of tasks displayed during the build #1828 2016-10-08 12:53:16 +02:00
ita1024 6f415aa17a Merge pull request #1818 from mimon/xcode6-updates
bugfix: do not merge env variables of type dictionary in xcode6 tool
2016-10-03 21:29:26 +02:00
Simon 7da04766a3 docs +xcode6 bugfix: do not merge env variables of type dictionary into PROJ_SETTINGS config 2016-10-03 20:36:10 +02:00
Thomas Nagy 70a40c1673
Let the Python byte-compilation display pyc/pyo 2016-10-03 15:30:04 +02:00
Thomas Nagy 37388fda3b
Enable waf --zones=argfile to display @argfile contents 2016-10-03 14:08:42 +02:00
Thomas Nagy 3686ac341d
Simplifications for #1823 2016-10-03 13:02:51 +02:00
Thomas Nagy eab0bd4c82
Simplifications 2016-09-30 21:36:28 +02:00
Jan Niklas Hasse bfcef62e45 Don't fail on output decoding errors 2016-09-30 14:25:49 +02:00
Jan Niklas Hasse 87419b3c6b Less verbose output when a task failed if not running with -v 2016-09-26 12:44:23 +02:00
fedepell df3b886067 If compiler_cxx was not configured before qt5 then qt5 will try to build applications with an empty compiler which gives very strange errors in the config log. Just check if the compiler is not there and remember the user that compiler_cxx should be configured before qt5. 2016-09-19 17:17:39 +02:00
Thomas Nagy 410d1568d5
Better error message for 'File %r has no mapping in %s' 2016-09-15 22:00:26 +02:00
Thomas Nagy 9ed7d41488
Expand '--foo=' with shell=False - Issue #1814 2016-09-15 21:36:02 +02:00
fedepell 40dafce024 Add qt5 5.7.x new libraries to qt5 tool 2016-09-15 14:40:24 +02:00
ita1024 ca71d1c12b Merge pull request #1813 from fedepell/pyqt5-pyqt4
Add also support for older PyQt4 bindings
2016-09-14 22:02:39 +02:00
fedepell 4770983a87 Add also support for older PyQt4 bindings 2016-09-14 21:42:10 +02:00
fedepell e8f6d4bfe7 Correct option used for python executable (--python and not --pythondir) 2016-09-14 21:09:45 +02:00
Simon 8b912d2b1f changed name for alias exe() to program() in xcode6 2016-09-10 15:39:07 +02:00
Thomas Nagy 9c50a30f94
waf 1.9.4 2016-09-10 12:33:21 +02:00
Thomas Nagy 8797425153
Expose Python3 timeout on Task.timeout and bld(rule=..., timeout=...) 2016-09-10 12:32:01 +02:00
Thomas Nagy 86e9b6b959
Set the configuration test build class on conf.run_build_cls 2016-09-10 12:12:46 +02:00
Thomas Nagy 62459e1147
Accept Task.cwd as str besides Node 2016-09-10 10:44:08 +02:00
Thomas Nagy 445e989594
Unnecessary __slots__ annotation on thread subclass 2016-09-04 16:21:03 +02:00
Thomas Nagy fc2946ce64
Re-raise TimeoutExpired from process executors 2016-09-03 22:36:41 +02:00
Thomas Nagy af172413f4
Python 3.3 fix 2016-09-03 22:24:29 +02:00
Thomas Nagy 71aed22539
Call killpg only if setsid is enabled 2016-09-03 20:22:43 +02:00
Thomas Nagy a91e7be005
Ignore subprocess timeouts on Python < 3.3 2016-09-03 18:36:19 +02:00
Thomas Nagy 9f14c9dda0
Kill process trees on timeouts (os.killpg) 2016-09-03 18:29:41 +02:00
Thomas Nagy 1721a505d9
Use the new syntax for sets 2016-09-02 20:20:43 +02:00
Thomas Nagy 7719af7af1
Missing timeout settings 2016-09-02 20:06:26 +02:00
Thomas Nagy e3092aadc7
Parallel tests can now have an execution order 2016-09-01 22:08:03 +02:00
Thomas Nagy 478d31e701
Can we start using the 'with' keyword now? 2016-08-28 14:06:39 +02:00
Thomas Nagy d8d7c87ba1
Display parallel test results as they finish 2016-08-28 13:48:16 +02:00
Thomas Nagy 8dba949014
Use the same logic as Python3.5 for handling timeouts #1807 2016-08-28 13:12:55 +02:00
Thomas Nagy 1fb3bfee6a
ValueError and OSError are subclasses of Exception 2016-08-28 10:48:41 +02:00
Gustavo Jose de Sousa 86da12e56e Fix error when adding new items to SAVED_ATTRS
If something was added to SAVED_ATTRS, the next build command failed because
the saved dictionary in the pickle file didn't have that new key.
2016-08-25 13:10:33 -03:00
Thomas Nagy fdc3b47067
Python3 - Kill processes in subprocess timeouts #1807 2016-08-25 07:48:14 +02:00
Thomas Nagy f7367c8051
Enable 'waf dist' in arbitrary paths 2016-08-24 18:07:24 +02:00
Thomas Nagy 6e4ba6620c
Remove the Go example because Go has a completely distinct toolchain now 2016-08-22 19:06:12 +02:00
Thomas Nagy a4f6c7468d
Netcache example update 2016-08-21 17:10:17 +02:00
Thomas Nagy e169da4227
waf 1.9.3 2016-08-21 15:35:44 +02:00
Thomas Nagy d31398c4a3
Docs on conf.multicheck 2016-08-21 15:31:47 +02:00
Thomas Nagy 96fe543f2e Docs 2016-08-21 15:17:47 +02:00
Thomas Nagy 5b30eba4db
Let parallel tests run all tests by default (do not stop on the first error) 2016-08-21 15:10:20 +02:00
Thomas Nagy ec6b72b0ad
Display failed configuration tests in yellow in multicheck 2016-08-20 13:06:23 +02:00
Thomas Nagy 7d3ddac860
Parallel configuration tests with arbitrary functions #1793 2016-08-19 22:15:04 +02:00
Bernhard Vogginger 49236784b2 Add suppport for finding lib boost_python in gentoo
* find libname pattern "libboost_python-2.7.so"

Change-Id: I19a66a5992f7d077c2ed8e35e26e414ab194a7e6
2016-08-19 11:31:22 +02:00
fedepell a9bb62b3f6 qt5: qt5 5.7 detection, added also case with std=c++11 but no fPIC/fPIE 2016-08-19 06:59:40 +02:00
Thomas Nagy adea933f1a
Qt 5.7 -std=c++11 #1798 2016-08-18 22:21:35 +02:00
Thomas Nagy 26fc0cfced
Enhance the display of parallel configuration tests 2016-08-15 22:48:29 +02:00
Thomas Nagy 7d60c89744
Split Nag Fortran compiler flags #1797 2016-08-15 19:41:50 +02:00
fedepell c31aee8745 Add configuration option to select PySide2 Python QT5 bindings, while PyQt5 bindings remain otherwise searched first by default. 2016-08-14 22:02:48 +02:00
Thomas Nagy f5cfef4be3
Set no_errcheck_out on a task to disable the output files verification 2016-08-13 19:49:28 +02:00
Thomas Nagy 07c153c220
Un-hardcode the cfgtask class name for parallel tests 2016-08-13 09:39:25 +02:00
Thomas Nagy a4e7cb1930
Copy os.environ because Python3 cannot serialize it 2016-07-31 18:48:36 +02:00
Thomas Nagy 332f3c5665
waf 1.9.2 2016-07-31 18:39:33 +02:00
Thomas Nagy a76388b632
Obvious mistake 2016-07-31 18:16:31 +02:00
Thomas Nagy 3e08a19a56
Use the parent os.environ value as default in pre-forked processes #1791 2016-07-31 15:55:47 +02:00
Thomas Nagy 8be4adcc64
Docs 2016-07-30 22:54:46 +02:00
Thomas Nagy 7778868718
Set TaskBase.keep_last_cmd to keep the last command executed 2016-07-30 10:09:55 +02:00
Thomas Nagy 70e438393d
Add a parameter to keep the last command executed 2016-07-29 23:10:26 +02:00
Thomas Nagy 3169e0bd4b
Cleanup 2016-07-29 23:02:15 +02:00
Thomas Nagy 452907d102
Cleanup 2016-07-29 20:44:38 +02:00
Thomas Nagy 11ff58981a
Replace FileNotFoundError by EnvironmentError for python2 2016-07-29 20:40:38 +02:00
ita1024 1308001a9e Merge pull request #1790 from fedepell/pyqt5-separate
pyqt5 extra to support qt5 files to python conversion
2016-07-29 18:57:56 +02:00
fedepell f4e1b59bbc Fix install_from after suggestion of ita on how to do it better and make sure install_path is present as python requires it 2016-07-29 16:36:01 +02:00
Gustavo Jose de Sousa 8c4401637a Set do_config as True if file is not found
Instead of leaving the user with an error due to FileNotFoundError exception.
2016-07-28 18:28:20 -03:00
Thomas Nagy 954594bf07
Support flexflags as arguments - #1782 2016-07-28 23:19:25 +02:00
Thomas Nagy 195a3e6562
Remove an unnecessary gccdeps verification #1784 2016-07-28 22:22:52 +02:00
Thomas Nagy ce65dfb415
Node.search -> Node.search_node #1783 2016-07-28 22:03:39 +02:00
fedepell 7ade9796a6 Fix installation path for .py files that are generated on the fly in build 2016-07-28 18:13:26 +02:00
Thomas Nagy 3c2c6a62b0
Remove leftover 'print' statements 2016-07-27 20:22:48 +02:00
Thomas Nagy 7aaa7c14ba
Make gccdeps and msvcdeps compatible - #1780 2016-07-26 19:41:57 +02:00
Thomas Nagy fe2f2b4fe6
Fix a docstring error 2016-07-25 23:27:05 +02:00
Thomas Nagy 1df8c148f6
Move pytest to the extras/ section 2016-07-25 23:23:44 +02:00
Thomas Nagy 8e68aa4ade
Python 2 fix 2016-07-25 23:10:10 +02:00
Thomas Nagy c916febaf7
Update some old code 2016-07-25 22:12:35 +02:00
Thomas Nagy 9332a9c24d Whitespace and Options.options for cppcheck 2016-07-25 20:18:49 +02:00
ita1024 2197dbdff1 Merge pull request #1774 from xbreak/pytest
Python unit test support via `pytest' feature.
2016-07-25 19:45:57 +02:00
Thomas Nagy f623675524
Fix an obsolete import 2016-07-25 19:05:36 +02:00
Calle Rosenquist 3fb1abbb39 Python unit test support via `pytest' feature. 2016-07-25 12:47:41 +00:00
fedepell d3367e9b0a Clear up usage text 2016-07-23 14:24:57 +02:00
fedepell 5d8c8a2080 Fixes on comments 2016-07-23 14:22:26 +02:00
fedepell ad356b3ed2 - Fixed identations
- Search for tools just in PATH not in other directories as for C++
- Remove options handling as there is none at the moment
- Use find_program instead of local find_bin
- Fix author
- Try to make documentation clearer
- Remove useless after_link decorator
2016-07-23 14:13:40 +02:00
fedepell 0c78c7ad8e First version of the pyqt5 extra to add QT5 ui/resources translation to py to be used with pyqt5 or pyside2 2016-07-23 12:51:04 +02:00
Simon 04b7fb6086 Updated docs for xcode6 tool. Also, xcode6 tool tested for XCode 7 (successfully) 2016-07-18 14:01:29 +02:00
Thomas Nagy ef0cf35cb1
Force qt5 static library detection for #1588
Use: 'QT5_XCOMPILE=1 QT5_FORCE_STATIC=1 waf configure'
2016-07-17 15:19:06 +02:00
Thomas Nagy 6e078cff66
Python 3 fix for waf dist #1769 2016-07-14 21:21:50 +02:00
Thomas Nagy ebc0048eb0
Use if/else blocks instead of and/or in python 2.5 2016-07-14 17:45:49 +02:00
Thomas Nagy cdb46e29f9
Disable defines by setting define_name='' #1766 2016-07-08 19:39:34 +02:00