Compare commits

...

2672 Commits

Author SHA1 Message Date
Waf Project 149102f11f Argparse updates 2024-05-14 00:26:16 +02:00
Waf Project 4d0edd113a Print waf version 2024-05-12 02:20:25 +02:00
Waf Project 66a013ed28 waf-2.1.0
Signed-off-by: Waf Project <noreply@waf.io>
2024-05-02 00:03:48 +02:00
Waf Project bd5c22d484 Move from optparse to argparse 2024-04-28 00:35:28 +02:00
Waf Project a3fec9f0b3 Improve ldscript example 2024-04-21 06:59:27 +02:00
Waf Project e0dcfae373 Update c_nec and c_emscripten 2024-04-16 00:25:45 +02:00
Waf Project a7d05142c5 Update outdated playground examples 2024-04-07 19:34:00 +02:00
Waf Project 76f416ca14 Lock wafcache on non-posix systems 2024-04-01 17:02:15 +02:00
Waf Project 9f0773cfba Move wafcache optional imports 2024-04-01 11:18:07 +02:00
Waf Project ec63a7dd38 Change _add_task to add_task in Runner.py - part 2 2024-04-01 09:35:13 +02:00
swaldhoer 974d0589fd Minor docs improvement 2024-03-29 12:02:50 +01:00
Waf Project 39413bedfd Update playground/ldscript 2024-03-28 16:47:29 +01:00
Waf Project aef2c6ef23 Remove old Itanium references in msvc/ifort detection 2024-03-23 10:59:16 +01:00
Waf Project 456bd879bc Change _add_task to add_task in Runner.py 2024-03-23 10:58:59 +01:00
Waf Project 707b362685 Add the script path to OneApi Fortran compilers 2024-03-23 10:55:08 +01:00
Alibek Omarov 6e675dfc30 Configure: remove unused error_handlers
ConfigurationContext's error_handlers isn't used anywhere in the whole project,
and it's unknown how it should've been implemented
2024-03-09 12:21:02 +01:00
Waf Project d166646556 Reduce verbosity when both Qt5 and Qt6 are installed on a system
See aff9ec24a6
2024-03-09 12:16:56 +01:00
Federico Pellegrin a0b8f6a2a3 qt5: Revert pattern matching libraries as that breaks libs like QtX3D 2024-03-09 11:10:48 +01:00
Waf Project 761ed9beda Describe why color_gcc.py is no longer relevant 2024-03-09 11:10:41 +01:00
Waf Project ea1412b7e7 Avoid coloring all MSVC logs #2366 2024-03-09 11:10:34 +01:00
ita1024 53ca5a71ed Merge branch 'a1batross-waf-2.1-patch-93534' into 'waf-2.1'
extras: pthread: fix check for C mode with paranoid -Werror=old-style-declaration and -Werror=unused-variable

See merge request ita1024/waf!2365
2024-01-24 23:38:32 +00:00
Alibek Omarov 611cd30114 extras: pthread: fix check for C mode with paranoid -Werror=old-style-declaration and -Werror=unused-variable 2024-01-23 21:46:06 +03:00
Wynn Wilkes 84ba1e9da0 Fix possible crash in ctx.cmd_and_log() when verbose mode is on
- When waf is run with -v, and it runs a call to context.cmd_and_log() with an argument list,
  argument[0] is a relative path, and a cwd **kwarg is passed so that the argument[0] resolves
  correctly, then the call will crash saying the program could not be found. For example, the
  caller may be wrapping calls using a nodejs environment like:

  ctx.cmd_and_log("./node_modules/bin/webpack", cwd="webui")

  and this will fail with "Program ./node_modules/.bin/webpack not found!"
  if waf is run with -v. The user friendly check for usable programs still
  stays in place for shell calls and absolute paths, but allows the caller
  to use this pattern even when verbose mode is on. This same fix was
  previously made for context.exec_command().
2024-01-12 14:28:29 +01:00
Waf Project 01b4c03a84 Improve Qt6 detection with msvc 2024-01-12 14:13:07 +01:00
Waf Project 97a54d72da Typo 2024-01-12 14:10:54 +01:00
Waf Project 5122ef89f2 Fix exec_command & waf -v & custom path in environment 2023-12-10 22:43:52 +01:00
Wynn Wilkes 4a650f3455 Fix possible crash in ctx.exec_command() when verbose mode is on
- When waf is run with -v, and it runs a call to context.exec_command() with an argument list,
  argument[0] is a relative path, and a cwd **kwarg is passed so that the argument[0] resolves
  correctly, then the call will crash saying the program could not be found. For example, the
  caller may be wrapping calls using a nodejs environment like:

  ctx.exec_command("./node_modules/bin/webpack", cwd="webui")

  and this will fail with "Program ./node_modules/.bin/webpack not found!"
  if waf is run with -v. The user friendly check for usable programs still
  stays in place for shell calls and absolute paths, but allows the caller
  to use this pattern even when verbose mode is on.
2023-12-10 22:43:42 +01:00
Michael Vincent 20b04dd137 Improve msvc log output 2023-12-07 21:53:03 +01:00
Waf Project 266a75a4ef Switch to nonstopmode for latex prompts #2421 2023-12-07 21:14:05 +01:00
Björn Lindqvist 18192437a0 glib-mkenums is a Python script no need to check for perl 2023-10-21 10:47:05 +02:00
Waf Project 37808b3de4 Update the public key from the main branch 2023-10-21 10:36:54 +02:00
Waf Project d115501165 Duplicate the license to a file #2357
The license is in waf-light, but some people really want to have a file for it.
2023-10-21 10:17:57 +02:00
Björn Lindqvist 8b140fd541 Pass the args parameter through to parse_cmd_args 2023-10-21 10:05:03 +02:00
Waf Project 49231ab9ff Add macros for intel compiler detection (icx, icpx, ifx) 2023-10-21 10:04:38 +02:00
Dan Church 2689cc9518 Only detect binaries with execution permission
If for instance a program was in PATH and the file was marked
non-executable (`chmod -x`), `find_binary` it would still pick it up as
executable.
2023-10-21 10:04:05 +02:00
Waf Project 50644394f6 Detect new intel compilers (icx, icpx, ifx) 2023-09-26 22:40:09 +02:00
Björn Lindqvist f0b2fb9816 Fix crash in demos/asm
Crash is likely because gcc has become more strict in recent
version. To fix it I had to add the -no-pie flag and move mult10 to
the text section.
2023-09-26 22:39:40 +02:00
Waf Project dc5602608e Update the example that cleans any non-declared file #2415 2023-09-15 18:39:31 +02:00
Thomas Nagy 270a2e09b6 Update the documentation 2023-07-15 15:29:53 +02:00
ita1024 218da8fe28 Merge branch 'qt6-experimental2' into 'waf-2.1'
qt5: Add support for Qt6

See merge request ita1024/waf!2355
2023-07-15 11:05:10 +00:00
Rafaël Kooi 6c0a8c7c84 qt5: Add support for Qt6
Implements support for Qt6 by extending qt5.py. The user can opt in for
Qt6 support by setting cfg.want_qt6 = True. There's also a qt6 feature,
which at the moment is identical to the qt5 feature. Splitting has been
done now for futureproofing purposes. Qt6 libraries can be selected
through the cfg.qt6_vars variable. I didn't make an attempt at any
backwards compatibility by trying to load cfg.qt5_vars if it exists,
this is done so the move from Qt5 to Qt6 is a more deliberate process.

Signed-off-by: Rafaël Kooi <3961583-RA-Kooi@users.noreply.gitlab.com>
2023-06-22 19:08:28 +02:00
Alibek Omarov 2e8121f63f waflib: extras: msvs: enclose solution path into doublequotes in generated shell commands 2023-04-10 19:58:22 +02:00
ita1024 215de5f7d3 Merge branch 'waf-2.1' into 'waf-2.1'
Haxe Toolkit support

See merge request ita1024/waf!2352
2023-03-28 22:57:15 +00:00
Adam Barton 67dcb2b7f6 Haxe Toolkit support 2023-03-28 22:57:14 +00:00
Thomas Nagy d4f495bced Add Python 3.11 and 3.12 too 2023-03-28 01:21:30 +02:00
Alibek Omarov d7da1547f7 waf.bat fixes 2023-03-28 01:21:17 +02:00
Thomas Nagy ff0a8cec14 Support SOURCE_DATE_EPOCH in some places 2023-02-12 10:42:11 +01:00
Thomas Nagy 99bdb12a60 Add asynchronous wafcache uploads 2023-01-01 14:18:50 +01:00
Thomas Nagy 412c9e6b22 Fix suspicious warnings 2023-01-01 14:16:40 +01:00
Thomas Nagy c24ef5f3e6 Python3: install packages to "site-packages" (same as waf-2.0) 2022-12-31 10:19:18 +01:00
Thomas Nagy 69c95b5341 Provide a replacement for distutils.version.LooseVersion 2022-12-22 18:58:31 +01:00
Harald Klimach 240555a979 Adding an extra module to detect the Fujitsu Fortran compiler on ARM64FX. 2022-11-20 06:56:06 +01:00
Thomas Nagy e559bd08f2 Ensure find_program replaces more invalid characters 2022-11-20 06:55:13 +01:00
Thomas Nagy 698888f149 wafcache: skip uploads when inputs are modified while building 2022-10-02 01:51:02 +02:00
André Bauer af9a1a249d Fix typo in documentation. 2022-10-02 01:50:57 +02:00
Andrew Malachowski f69602d1df Improve cp65001 compat in cpython < 3.3 2022-10-02 01:50:50 +02:00
Federico Pellegrin fae5693f41 sphinx: support multiple output formats 2022-10-02 01:50:40 +02:00
Andrew Malachowski 23c975064e gccdeps: Harden class wrapping 2022-10-02 01:50:30 +02:00
Federico Pellegrin 78f49d44c8 pyqt5: improve autodetection of tools and add flag support
Improves autodetection by adding tool naming as found in some recent
distributions (ie. Fedora). Adds also possibility to pass via env
command line options to tools (needed ie. to explicitly pass
generator due to changes to uic/rcc tool).

Test updated to demonstrate and document the parameter needed to
work out of the box with newest tooling.
2022-10-02 01:50:23 +02:00
Thomas Nagy 7b912a0439 Ensure signed waf files can be created using Python3 2022-10-02 01:50:14 +02:00
Thomas Nagy 2a1eeba691 Sort visual studio versions by version number #2352 2022-05-22 11:30:52 +02:00
Alibek Omarov b91ef6a91b msvc: fix version detection when new and old compilers are installed 2022-05-22 11:30:34 +02:00
David Kassa b0ea8121e8 modernize macos demo 2022-05-19 00:46:03 +02:00
Thomas Nagy d7d5e9d2d6 docs: fix the inheritance diagrams in the apidocs 2022-05-17 23:54:58 +02:00
Thomas Nagy 5c90204a96 doc: fix the empty apidocs 2022-05-17 23:54:50 +02:00
Thomas Nagy 6b820ba879 docs: improve the featuremap's layout 2022-05-17 20:20:19 +02:00
Miro Hrončok b093e9eac7 Python: Use EXT_SUFFIX config var over the deprecated/removed SO
Fixes https://gitlab.com/ita1024/waf/-/issues/2386
2022-05-17 17:31:40 +02:00
ita1024 5d56dff596 Merge branch 'waf-2.1' into 'waf-2.1'
tools: c_tests: use stlib flag instead of shlib in check_endianness

See merge request ita1024/waf!2339
2022-05-14 22:21:10 +00:00
Francescodario Cuzzocrea 317e3e8579
tools: c_tests: use stlib flag instead of shlib in check_endianness
shlib is no-op in some baremetal newlib based toolchains (for example in
riscv one), and causes the check to fail as the --dynamic flag is not
recognized
2022-05-12 14:56:09 +02:00
Mathieu Parent 97302d9758 Add support for GNU/kFreeBSD
Where default compiler is gcc
2021-12-14 14:24:32 +01:00
Thomas Nagy 00c3cd31b6 Remove the 'check' target from eclipse.py because it is unused 2021-12-09 15:47:16 +01:00
Thomas Nagy 02d906f69a Avoid errors in case ECLIPSE_EXTRA_TARGETS is is set to None 2021-12-09 15:46:57 +01:00
Federico Pellegrin 41eb8ef35f eclipse: add possibility to add custom targets execution
Make it easy to add custom target executions in the automatic
eclipse configuration generation, for example to call other
standard waf targets from other tools or with specific options.
2021-12-09 15:44:30 +01:00
Thomas Nagy 8dc07cc533 Detect qt5 libraries in alphabetical order 2021-12-08 02:19:28 +01:00
Thomas Nagy 8ca3cbd277 Detect Qt3D* libraries #2368 2021-12-08 02:19:20 +01:00
Thomas Nagy d27e0bd271 Update the CI pipelines 2021-12-04 10:22:00 +01:00
Thomas Nagy 2bbee630cc Update the CI Pipelines for Python 2.7 2021-12-04 09:49:46 +01:00
Thomas Nagy f3c09355ef Update the CI pipelines 2021-12-04 09:38:20 +01:00
Federico Pellegrin 910133a5b6 wafcache: support stats also for multiple build commands 2021-11-24 20:42:26 +01:00
ita1024 065496a619 Merge branch 'waf-2.1-fix-python-tool' into 'waf-2.1'
Waf 2.1 fix python tool

See merge request ita1024/waf!2332
2021-09-30 19:30:49 +00:00
Morten V. Pedersen 59a9b24cf8 Waf 2.1 fix python tool 2021-09-30 19:30:49 +00:00
Federico Pellegrin 9c5945d85a eclipse: remove repeated entries in include paths for C/C++
Make sure just unique include paths (both system and local) are
added to prevent overcrowding with useless redundant include paths
that grow up a lot the generated XML file and make the usage of
the GUI messy.
The filter was already there for Java/Python.
2021-09-04 22:38:01 +02:00
Federico Pellegrin 229bf15ab2 eclipse: add generation of editor language settings
Add automatic generation of editor language settings for C and C++,
so the automatic code correction uses the correct compiler and
compiler flags, including for example the correct C/C++ standard
so construct from such standards are correctly managed by the IDE.
Correct compiler and flags are automatically generated using the
build environment data gathered during configure phase.
The playground example has been modified to contain some code that
is standard specific to demonstrate the new feature when run under
Eclipse.
2021-09-01 00:43:35 +02:00
Federico Giovanardi 664513aa44 Make clang_compilation_database compatible with variants
In the current implementation if a project is using
build variants it's not possible to use the clang_compilation_database
plugin because it strips the variant information from the build object.
2021-07-15 19:09:43 +02:00
Erik Parker 45bc50e523 color_gcc: Check that cmd has elements in it before processing it. 2021-07-15 19:09:24 +02:00
Thomas Nagy 9a60e7ed9e Process dependency Nodes in bld(rule=..., deps=[..]) 2021-07-15 19:09:18 +02:00
Thomas Nagy 95c2bc0702 Improve error messages from scanner errors #2356 2021-07-15 19:09:04 +02:00
Thomas Nagy 55d57d0b58 Handle deprecated Thread.setDaemon in Python 3.10 2021-05-13 17:12:40 +02:00
Thomas Nagy 747a339b7f Ensure ConfigurationContext.load/Context.load have the same interface (continued) 2021-05-13 17:02:31 +02:00
Thomas Nagy 86b1f0def1 Ensure ConfigurationContext.load/Context.load have the same interface 2021-05-09 10:32:16 +02:00
Thomas Nagy 2f248f78e2 Disable OpenIndiana from the pipelines 2021-05-06 21:48:46 +02:00
Thomas Nagy 58b58fb0ee On windows, try $INCLUDEPY/../libs to detect the Python library path 2021-05-06 21:48:39 +02:00
Federico Pellegrin 6ccfd6d704 swig: skip CR (\r) if present in module name
Handles presence of \r in module name (ie. DOS mode swig .i files)
Should fix #2350
2021-05-06 21:48:29 +02:00
Michael Vincent 22b72e167f gccdeps: Refactor cache lock
Rework how gccdeps' 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.

Ported from 8b5a2a2086
2021-05-06 21:48:18 +02:00
Michael Vincent bf97987991 gccdeps: Move scan() method
Move the scan() method down in the file to match msvcdeps' method
ordering. This makes it easier to compare gccdeps.py and msvcdeps.py
to keep them in sync.
2021-05-06 21:48:12 +02:00
Michael Vincent 30508f53c2 gccdeps: Rename some variables
Rename some local variables to clarify their purpose and to align with
msvcdeps.py.
2021-05-06 21:48:05 +02:00
Michael Vincent 615c32faef msvcdeps: Align with gccdeps
Just a few small changes to make msvcdeps.py align with gccdeps.py
better.
2021-05-06 21:47:53 +02:00
Michael Vincent e55b4b2375 msvcdeps: Remove unused variable 2021-05-06 21:47:45 +02:00
Thomas Nagy 67793aa173 Let msvcsdeps process relative paths and in a deterministic manner 2021-05-06 21:47:38 +02:00
Michael Vincent ba44704dbf msvcdeps: Faster case correction
Visual Studio returns paths to dependencies with incorrect case.
ant_glob() is very slow for this use case (40~50% impact to overall
build time). This patch uses os.listdir() to find the correct case
of each path component.
2021-05-06 21:47:28 +02:00
Alibek Omarov a82625297d c_config: add RISC-V generic detection 2021-04-15 17:30:54 +02:00
Erik Parker a23b3f5e9b winres: Pass include paths by environment variable 2021-04-05 22:04:23 +02:00
Erik Parker 68ff6f13b2 msvs: Update project sorting in visual studio solution file
In order to correctly set a default project in visual studio any folders
must be listed at the top of the solution file. This change ensures that
any folders included in generated solutions sort to the top of the .sln
file. The default project, if one exists, will be located after the
folders. Note that it should also be correct to place the default
at the top of the file, followed by any folders.
2021-03-13 07:11:17 +01:00
Thomas Nagy 28318c9cca Remove the method conf.add_as_needed because it does not check for the flag usage 2021-03-12 07:54:52 +01:00
Thomas Nagy bf5a825317 Work around faulty vcvarsall.bat scripts #2315 2021-01-30 16:22:55 +01:00
Bootsma, James ca3ca0591e waf_unit_test: Fix command handling under windows
The unit test tool moved from a simple split to using shlex.split for
handling the unit test command. This results in the path separators on
windows being treated as escapes.

To handle this the unit test exec command is properly escaped before
joining so that the subsequent split restores the original arguments.
The quote function is also exposed in the Utilities module so that
wscripts making use of the unit test tool can properly quote their
contributions to the command as well.
2021-01-21 18:51:47 +01:00
Thomas Nagy ff8c1828aa Allow mixing Unix paths with destdir on non-Unix platforms 2021-01-19 20:52:57 +01:00
Thomas Nagy b864388e12 Fix Build.py indentation 2021-01-19 17:51:01 +01:00
Thomas Nagy da5769172b Add more docs to clang_compilation_database 2021-01-19 17:50:56 +01:00
Thomas Nagy 0d0aa45d0b Increase clang_compilation_database and swig compatibility 2021-01-19 17:14:58 +01:00
Thomas Nagy e0c16b3ada Suppress cache trimming operation errors 2021-01-19 17:14:52 +01:00
Federico Pellegrin a8469f49d8 wafcache: fix reporting of concurrent trim error
As this is run in the non-waf process we don't have Logs, so we
write to stderr instead or we will get a NameError name 'Logs' is
not defined.
2021-01-11 23:39:45 +01:00
Federico Pellegrin 236e6a7945 cuda: pass correctly compiler options from nvcc to the underlying compiler with --compiler-options 2021-01-09 01:28:32 +01:00
Federico Pellegrin d17780bc6b cuda: solve warnings due to testapp being created by two tg 2021-01-09 01:28:24 +01:00
Federico Pellegrin 1d722360be wafcache: fix small typo on stats log message 2021-01-09 01:26:58 +01:00
Thomas Nagy a296b4119e Do not detect Qt6 when detecting Qt5 2020-12-26 20:43:37 +01:00
Federico Pellegrin 54464f0a20 wafcache: add simple cache statistics collection, configurable via env 2020-12-26 20:24:57 +01:00
ita1024 8a0850dd89 Merge branch 'waf-2.1' into 'waf-2.1'
Haxe support

This commit adds support for haxe over [lix](https://github.com/lix-pm/lix.client) toolkit
- haxe library validation: check and fetch missing libs if needed
- "haxe" loader with "hx" compiler
- HAXEFLAGS
- lib checking and uselib_store support
- ctx.haxe with `res` argument to be more simple
- error checking

See merge request ita1024/waf!2308
2020-12-23 20:38:58 +00:00
Andrew Brodko 5841a8571e Haxe support 2020-12-23 20:38:58 +00:00
Thomas Nagy 1e729ba345 Work around distutils MACOSX_DEPLOYMENT_TARGET regression #2330 2020-12-17 14:18:33 +01:00
Thomas Nagy a74d40a505 Improve clang_compilation_database interaction with wafcache 2020-12-15 13:07:47 +01:00
Thomas Nagy 6ed66ce90b Reduce wafcache verbosity on cleanup operations 2020-12-15 11:06:05 +01:00
Thomas Nagy 6a5753da93 Conceal wafcache decoding errors in Python3 2020-12-15 10:58:00 +01:00
Thomas Nagy b7c7ffccab Fix the file_to_object example 2020-12-09 08:21:19 +01:00
Thomas Nagy 81bb79ab3d Update the project's public key 2020-12-09 08:21:02 +01:00
Thomas Nagy 3af7222fa0 Improve the WAFCACHE_CMD description 2020-12-09 08:20:32 +01:00
Thomas Nagy 4219f0822c Reduce verbosity in out-of-tree builds 2020-12-09 08:20:21 +01:00
Thomas Nagy 4e61e3a563 Improve WAFCACHE_CMD parameter handling 2020-12-09 08:20:07 +01:00
Federico Pellegrin 5584d1e687 wafcache: make the extra more configurable for cloud providers usage 2020-12-09 08:19:58 +01:00
Thomas Nagy b41f13b3a0 Exclude wafcache symlink handling
- Exclude classes having folder or symlinks
- Exclude well-known Task classes from wafcache processing
- Remove stale 'waflib.Task.Task.chmod' processing
2020-12-08 22:00:52 +01:00
Federico Pellegrin d1eb41f944 wafcache: add support for MinIO/mc cache
Add support for MinIO object storage (https://min.io/) using the
MinIO client (https://github.com/minio/mc) to wafcache.

MinIO is an open-source, self-hostable, S3 compatible cache. The
MinIO client supports MinIO connections as well as normal S3/GCS
storages by configuring aliases beforehand.

Hint: some distributions have `mc` (the GNU Midnight Commander)
installed which is not the minio client, be aware of this (or your
build may get stuck with waf waiting for `mc` to never finish)
2020-11-02 17:50:13 +01:00
Federico Pellegrin 9cd8a801c7 waf_unit_test: consider ut_cmd always for task signature 2020-11-01 21:20:02 +01:00
Thomas Nagy 6f8828dc3a Force unit test re-runs on environment or command changes 2020-11-01 21:19:56 +01:00
Federico Pellegrin 47d097d5a0 waf_unit_test: make sure test is rerun if ut_str changes 2020-11-01 21:19:38 +01:00
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 2b03690f02 The lrelease program is necessary, not lupdate 2020-09-19 10:09:45 +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 3b41d92e3c Make sure lupdate is explicitly required 2020-09-19 08:40:44 +02:00
Dotan Cohen 6fba8d3742 Update tutorial.rst to clarify that the env attribute is shared between the cnf and bld parameters to their respective methods. 2020-09-06 20:00:37 +02:00
Dotan Cohen 2831c75093 Update tutorial.rst to use uniform parameter names in all places where the configure() method or its parameter is mentioned. 2020-09-06 20:00:29 +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
ita1024 ccfe1fc19c Merge branch 'FixClangCL' into 'waf-2.1'
Fix configuration fail on Windows with clang-cl module when not using the llvm.org release

See merge request ita1024/waf!2298
2020-08-14 06:36:40 +00: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 35b60bed61 Remove an extra 'pch' annotation in playgroud/pch/wscript 2020-08-10 21:23:16 +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
ita1024 b599c8bb9d Merge branch 'waf_unit_tg' into 'waf-2.1'
waf_unit_test: return also task generator in report tuples

See merge request ita1024/waf!2285
2020-04-27 22:56:38 +00:00
Federico Pellegrin 04e586b28a waf_unit_test: correct also demos/playgrounds with addition of ut_task change 2020-04-24 08:52:01 +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
Thomas Nagy 4bfab7f926 Remove the accidental gccdeps requirement 2020-03-27 20:20:00 +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
ita1024 73d432eb0a Merge branch 'clang_cl2' into 'waf-2.1'
Clang-cl support

See merge request ita1024/waf!2273
2019-12-10 06:29:06 +00:00
Rafaël Kooi c4f18f8182 Add a ReadMe and example environment for clang-cl on Linux 2019-12-10 05:07:35 +01:00
Rafaël Kooi 273d9dbe73 Add a small example utilizing clang-cl 2019-12-10 05:07:35 +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
Rafaël Kooi 9fee4dfa75 Ignore VIM temporary files and Windows waf unpacks 2019-12-10 04:55:31 +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
ita1024 11f449ee57 Merge branch 'FixTypo' into 'waf-2.1'
Add back an accidentally deleted line clang_compilation_database.py

See merge request ita1024/waf!2269
2019-11-10 14:49:14 +00: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
Federico Pellegrin 64b74c7659 playground/swig: clean up java swig example 2019-11-04 21:26:13 +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 f7cfcce157 Merge branch 'swig_pg_1' into 'master'
swig playground: fix build for Python 3.x

See merge request ita1024/waf!2259
2019-09-13 22:25:28 +00: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
ita1024 39b92903e3 Merge branch 'javatest_njd' into 'master'
javatest: manage environment also for non-java dependencies (ie. JNI / JEP)

See merge request ita1024/waf!2257
2019-09-13 22:24:28 +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 3969482777 swig playground: fix build for Python 3.x 2019-09-13 09:23:39 +02: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
ita1024 57ee25f844 Merge branch 'clang-db' into 'master'
clang_compilation_database: fix #2247, add clangdb command to generate database by request without rebuilding, add tests (WIP)

Closes #2247

See merge request ita1024/waf!2256
2019-09-08 20:05:37 +00: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 397432f81e Simplify the Python examples 2019-08-14 22:20:01 +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
Thomas Nagy 314689b899
IronPython is broken 2019-07-11 19:52:03 +02:00
Thomas Nagy 88a0778476
Update the environment to IronPython 2.7.9 2019-07-11 19:13:14 +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
ita1024 fbe75085c6 Merge branch 'genpybind' into 'master'
Add 'genpybind' feature

See merge request ita1024/waf!2244
2019-07-02 10:46:22 +00:00
Yannik Stradmann 1fd2e4174c Add genpybind example 2019-07-02 12:15:18 +02: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 190555a8d6 Add a testcase for #2244: deadlock with cython+subst tasks 2019-06-28 08:47:33 +02:00
Thomas Nagy 8cf982a766 Fix a deadlock with cython+subst tasks #2244 2019-06-27 09:38:49 +02:00
Thomas Nagy 3c75c6eccb Ensure waf-light is first in sys.path (Pip integration) 2019-06-27 08:38:33 +02:00
ita1024 ba3135c52b Merge branch 'pip_integration' into 'master'
Pip integration

See merge request ita1024/waf!2253
2019-06-27 06:36:48 +00:00
Adriano Scoditti dff204fad4 Move setup.py in subdir to unclutter the project root 2019-06-26 16:13:55 +02:00
Adriano Scoditti 56f3723a86 Removing the incorrect License description 2019-06-26 15:37:45 +02:00
Thomas Nagy 2e9954e087 Add a dependency scanner for gas/yasm and nasm (incomplete) 2019-06-26 15:00:03 +02:00
Adriano Scoditti da37dfb7a9 Adds script section to install waf-light bin and make it look for waflib in PYTHONPATH 2019-06-26 14:40:20 +02:00
Adriano Scoditti 5877a15ece Waf Pip integration through a setup.py in root 2019-06-26 14:40:20 +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
Thomas Nagy 05252b85df Fix PIE errors in demos/asm/ 2019-06-26 11:51:56 +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
Yannik Stradmann 8353c5ebfb Add demo for nested/flat python file installation 2019-06-19 23:46:27 +02: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
ita1024 3b14e8f513 Merge branch 'rpath_fix' into 'master'
Fix local_rpath tool

See merge request ita1024/waf!2246
2019-06-19 20:25:07 +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 d536d3ebab Merge branch 'javaw_outdir_type' into 'master'
javaw: bugfix outdir is always a node (since converted in apply_javac)

See merge request ita1024/waf!2242
2019-06-06 22:16:15 +00:00
Federico Pellegrin fc0f5c86fd java demo: add test case for !2242 2019-06-06 20:33:43 +02:00
Thomas Nagy 1ade97f5c3
Add a configuration test for: "qt5 demo: add example of unit testing using QtTest" 2019-06-06 17:57:33 +02:00
Thomas Nagy 9df72c7898
Rework "qt5 demo: add example of unit testing using QtTest" 2019-06-06 16:45:24 +02:00
Thomas Nagy 82afd0a0e4
Rework "qt5 demo: add example of unit testing using QtTest" 2019-06-06 16:37:19 +02:00
fedepell 31c51501d7 javaw: bugfix outdir is always a node (since converted in apply_javac) 2019-06-06 15:06:41 +02:00
ita1024 31da55afb9 Merge branch 'qt5_unit_test' into 'master'
qt5 demo: add example of unit testing using QtTest integrated into waf

See merge request ita1024/waf!2241
2019-06-05 17:21:51 +00:00
fedepell e6eca1eec5 qt5 demo: add example of unit testing using QtTest integrated into waf with standard waf_unit_test Tool 2019-06-05 14:59:26 +02:00
Thomas Nagy 36898e12af
waf-2.0.17 2019-06-02 09:45:17 +02:00
Thomas Nagy 3e605feb72
Ensure that 'waf test' raises a meaningful error message in the installation test 2019-06-02 09:25:16 +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
ita1024 1de43d82c0 Merge branch 'qt5_partial_target' into 'master'
qt5: ignore moc generation on uninstall target

See merge request ita1024/waf!2240
2019-06-02 06:38:07 +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
ita1024 e902e7a505 Merge branch 'add-missing-colors-on-install' into 'master'
Colors were missing when file already exists

See merge request ita1024/waf!2238
2019-05-27 19:14:18 +00: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
Piotr Szubiakowski f547a5f932 sphinx: adds an example to the playground. 2019-05-26 13:37:34 +02:00
Thomas Nagy 8f0dd7c0b6
docs #2240 2019-05-26 12:20:34 +02:00
ita1024 d172c960e2 Merge branch 'patch-1' into 'master'
Fix waf.bat ERRORLEVEL to return actual exit code of waf

See merge request ita1024/waf!2235
2019-05-25 11:05:41 +00:00
ita1024 537af7f9f5 Merge branch 'python38' into 'master'
Python 3.8 has different flags for pyembed, needs --embed

Closes #2239

See merge request ita1024/waf!2236
2019-05-25 10:57:17 +00: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
Alibek Omarov 4e307d3b50 Fix waf.bat ERRORLEVEL to return actual exit code of waf 2019-05-23 22:47:51 +03:00
ita1024 b1ac2bc686 Merge branch 'update-install-colors' into 'master'
Update colors of install step

Closes #2238

See merge request ita1024/waf!2234
2019-05-17 05:46:17 +00: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 1581e221b4 Add a simple example for using Clang as a cross compiler for MSVC 2019-05-10 00:30:58 +02:00
Dragoon 6154a8de60 Better support for cross compiling with Clang 2019-05-10 00:30:58 +02:00
ita1024 96015a3053 Merge branch 'msvcdeps-case' into 'master'
msvcdeps: correct case of include paths

See merge request ita1024/waf!2228
2019-05-09 05:05:39 +00: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
ita1024 afa0dd15df Merge branch 'java_deps_1' into 'master'
javaw: set dependency between javac task and use-d generated jars nodes

See merge request ita1024/waf!2232
2019-05-08 05:18:43 +00: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
ita1024 0a61596679 Merge branch 'protoc-java-cdir' into 'master'
protoc: make sure output directory exists for java

See merge request ita1024/waf!2231
2019-05-06 16:15:50 +00:00
fedepell 1837984e7e protoc: make sure output directory exists for java 2019-05-06 08:17:20 +02:00
ita1024 b2d6866096 Merge branch 'pyqt5-cmdline-1' into 'master'
pyqt5 extra enhancements

See merge request ita1024/waf!2229
2019-04-26 05:38:23 +00: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 2e58ac4134
When creating the waf script, assume that the 'extras' folder only contains Python files
Files are also listed in a static arbitrary order.
2019-04-23 07:39:19 +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
ita1024 88a88fa671 Merge branch 'msvc-debug' into 'master'
msvc: add pdb_install_task with /DEBUG:* flags

See merge request ita1024/waf!2224
2019-04-18 06:11:07 +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
ita1024 9f2ce1b776 Merge branch 'fix-macos-syms' into 'master'
extras/syms: fix symbol regex on mac-o binaries

See merge request ita1024/waf!2222
2019-04-01 18:55:40 +00: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
ita1024 e260b4a642 Merge branch 'color-msvc' into 'master'
Add color_msvc tool, which colorizes MSVC output

See merge request ita1024/waf!2221
2019-03-26 06:31:16 +00: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
ita1024 bffbcec678 Merge branch 'waf_ut_enc' into 'master'
waf_unit_test: prevent error when dumping run to script and environment contains UTF-8 chars

See merge request ita1024/waf!2220
2019-03-12 16:52:47 +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 02c9f814da
waf-2.0.15 2019-03-10 16:44:06 +01:00
Thomas Nagy 5f811ee018
waf-2.0.15 2019-03-10 16:22:03 +01:00
ita1024 503db290b7 Merge branch 'typos' into 'master'
Typos

See merge request ita1024/waf!2219
2019-03-08 06:41:22 +00: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
ita1024 7aa608889d Merge branch 'fix-path-calculations-in-git-bash' into 'master'
Utils: only use msys2 paths from msys2 python

See merge request ita1024/waf!2217
2019-02-26 17:26:32 +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
ita1024 2af495bcad Merge branch 'bug-2225-fix' into 'master'
Address ntpath bug with empty prefix

See merge request ita1024/waf!2215
2019-02-18 18:05:19 +00: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
ita1024 bd3431e483 Merge branch 'fix-cmd-length-calculation' into 'master'
task: calculate correct cmdline bytes

See merge request ita1024/waf!2214
2019-02-15 17:33:27 +00: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
ita1024 f01354049d Merge branch 'patch-1' into 'master'
added stubs/ to lib search paths

See merge request ita1024/waf!2213
2019-02-14 06:45:43 +00:00
Maurizio Drocco cb28dc94ab added stubs/ to lib search paths 2019-02-13 23:40:47 +00:00
ita1024 62e5397d98 Merge branch 'java_antglob_warnings' into 'master'
javaw: add quiet=True to ant_globs to suppress warnings of globbing in build

See merge request ita1024/waf!2212
2019-01-31 19:34:22 +00: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
ita1024 3050136230 Merge branch 'allow_multiple_default_cmds' into 'master'
Support multiple 'default_cmd'

See merge request ita1024/waf!2211
2019-01-30 06:53:25 +00:00
Adriano Scoditti 21ac17d510 Support multiple 'default_cmd' 2019-01-29 11:48:54 +01:00
ita1024 b59dcf5d80 Merge branch 'buildcopy-no-nodes' into 'master'
buildcopy: Added warning if buildcopy is used without any files to copy

See merge request ita1024/waf!2210
2019-01-25 18:43:23 +00:00
xbreak 33208b3747 buildcopy: Added warning if buildcopy is used without any files to copy 2019-01-25 12:25:28 +00:00
Thomas Nagy e641f171be
Use .pipelines/Jenkinsfile instead of demos/wscript 2019-01-22 08:08:55 +01:00
Thomas Nagy a827a73af6
Add a pipelines file 2019-01-21 07:30:19 +01:00
ita1024 389e2e4a4b Merge branch 'protoc_gen_java_poc' into 'master'
protoc: simplify the java generation also solving problems with .proto input files generated during build

See merge request ita1024/waf!2209
2019-01-20 10:41:51 +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
Thomas Nagy 3bf0e7049b
Remove xrange in one example 2019-01-18 18:48:26 +01:00
ita1024 17e973a7d3 Merge branch 'protoc_java_fname_1' into 'master'
protoc: fix filename generation for .java

See merge request ita1024/waf!2208
2019-01-17 18:07:10 +00: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
ita1024 ab24e0041e Merge branch 'fix-invalid-seq-warnings' into 'master'
Fix all DeprecationWarning: invalid escape sequence

See merge request ita1024/waf!2207
2019-01-05 15:07:58 +00: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
Thomas Nagy 907519cab9
waf-2.0.14 2018-12-23 11:52:46 +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 24ea24ff24 Added more syntactic cases to the demos/fortran/submodules example.
Also build a main program that uses the parent module.
2018-12-21 23:36:55 +01:00
Harald Klimach 9ff9eb73ad Added submodules demonstrator to demos/fortran.
Its only built if gfortran is used at least with version 6.
2018-12-21 23:14:19 +01: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
Thomas Nagy b1928ee46b
Let the protoc demo build even if java is missing 2018-12-21 11:10:57 +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
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 ee719f1912 Improve the cuda example #2212 2018-12-07 07:57:43 +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 753b153631
Provide a better Cuda example #2212 2018-12-05 20:49:40 +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
Nicolas Pauss dede827db2 cython: add 'from cpython.version cimport PY_VERSION' example in playground.
This test the latest improvement of the regex in cython extra.
2018-12-03 09:51:47 +01:00
Romain Le Godais b367410172 playground/cython: Update cython cache files.
The cache was generated with an old cython version (0.15.1). Update it by
generating it with a more recent version (0.29).
2018-12-03 09:46:47 +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
Thomas Nagy fab68b4b8c
Remove the exception raised by tests/install/wscript 2018-09-27 19:25:36 +02:00
Thomas Nagy d63e32633d
Add tests for #2184 2018-09-25 18:05:10 +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
Thomas Nagy 922186f7a8 docs 2018-08-16 23:30:05 +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
ita1024 8a950e7bca Merge branch 'add-python3-to-gitignore' into 'master'
Ignore temporary directories created when using Python 3

See merge request ita1024/waf!2179
2018-07-08 19:52:18 +00:00
Matt Selsky 8bd5adf041 Ignore temporary directories created when using Python 3 2018-07-08 14:58:47 -04:00
Matt Selsky 12b9f9aed1 Update GitHub URLs for GitLab equivalents 2018-07-08 14:53:13 -04:00
Thomas Nagy 1de8d03fb2
docs 2018-07-04 07:41:12 +02: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 c4f8e20e69 pyqt5: improve the sample in playground so can easily work also with pyside2 2018-04-18 08:05:07 +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
fedepell 6363147a5e java demos: correct jaropts parameter example to an array as it is then used as such in javaw.py 2018-04-04 20:29:37 +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
Matt Selsky 28ea6e64e3 Typos 2018-03-06 09:14:40 +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 941fcc05e0
docs 2018-02-17 12:14:03 +01:00
Thomas Nagy 511b8b7d4d
Apidocs cleanup 2018-02-14 21:28:41 +01:00
Thomas Nagy a7546a2d22
Fix Python 3 encoding for unit tests #2108 2018-02-14 21:06:48 +01:00
Thomas Nagy 43039e716b
Fix the apidocs LaTeX paper size parameter 2018-02-14 21:02:43 +01:00
Thomas Nagy 6b99cbfce2
waf-2.0.5 2018-02-10 20:50:13 +01:00
fedepell 102b85a466 cuda.py: insert a space after -o as by documentation otherwise it will not work
not sure if in very old nvcc version this was working anyway but as far as I can read on the documentation this should be the correct way and I tested it out
2018-01-31 20:34:36 +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
Thomas Nagy acc10c17a8
Update the documentation to recent python-sphinx versions 2018-01-22 19:27:28 +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 cd07df4a85 Mention the python requirement in the tutorial 2017-12-23 15:10:34 +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
Matt Selsky f8f4f74403 Fix waf_unit_test class name 2017-12-03 10:03:24 +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
Daniel Brosche 6e44206a67 Cleaned up extended use example 2017-09-23 09:22:05 +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
Daniel Brosche 54248f007b Extended playground use example 2017-09-21 07:26:54 +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
Thomas Nagy 0279838cfd
Simplify tests/init execution 2017-09-16 14:02:09 +02:00
Thomas Nagy 934b02f967
Merge branch 'waf-2.0' into master 2017-09-15 21:27:31 +02:00
fedepell 5cc784aabd correct the documentation example for colon 2017-09-15 21:06:52 +02:00
fedepell 0976fd1679 correct the documentation example for colon 2017-09-15 21:06:07 +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 e40e52a383
Follow-up on #2028 2017-09-15 20:59:37 +02:00
Federico Pellegrin 2474218874 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 20:52: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 a61742affb
Add tests for #2026 2017-09-12 20:11:36 +02:00
Thomas Nagy ad5dd18408
Use the 'with' syntax whenever possible 2017-09-12 19:36:43 +02:00
Thomas Nagy 0a0b786259
docs 2017-09-12 19:11:34 +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
Thomas Nagy 8b49da2fa7
Add more folder initialization tests 2017-09-10 19:14:40 +02:00
Adriano Scoditti 3cea04e829 Improve options management 2017-09-10 19:11:27 +02:00
Thomas Nagy 7f7f336e9f
Fix Configure.autoconfig='clobber' when no previous configuration is present 2017-09-09 17:50:42 +02:00
Thomas Nagy b722f1dda0
Test suite for top/out settings 2017-09-09 17:50:13 +02:00
Thomas Nagy 8c3a281746
Fix Configure.autoconfig='clobber' when no previous configuration is present 2017-09-09 17:49:48 +02:00
Thomas Nagy 5aafea1bd3
Test suite for top/out settings 2017-09-09 17:45:59 +02:00
Mihai Moldovan 4f0c7dc44a Backport old gfortran compiler support. 2017-09-05 07:58:46 +02:00
Mihai Moldovan 2706fdbec0 Backport old gfortran compiler support. 2017-09-05 07:58:21 +02:00
Thomas Nagy 96f6a6a22d
Remove an unused variable in buildcopy 2017-09-04 21:19:20 +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
Calle Rosenquist f043a94a02 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:03:55 +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
captainmalloc eae22121f6 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:24:52 +02:00
Thomas Nagy d4bf3a70f0
Typo 2017-08-31 20:20:05 +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 df6a8a0ac7 Fix 'shell' attribute on waf_unit_test:exec_command() Popen call using the same logic defined in Context:exec_command() 2017-08-28 20:22:46 +02:00
Adriano Scoditti 28594b3824 Fix Context.launch_dir init to point on user working directory 2017-08-28 20:13:13 +02:00
Adriano Scoditti 5f5f8eede5 Fix Context.launch_dir init to point on user working directory 2017-08-28 20:12:52 +02:00
Thomas Nagy 0520af4efb
Split unit test commands by shlex 2017-08-27 11:09:57 +02:00
Thomas Nagy 04e4d4ce2c
docs 2017-08-27 10:56:32 +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 c766224995
Docs 2017-08-27 01:00:33 +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 762ed49464
Additional fixes for #2013 2017-08-19 13:22:15 +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 8161991558
Update paths starting in waf-1.8.* 2017-08-19 10:15:23 +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
Adriano Scoditti fc468105e9 Add distclean compatibility with '--no-lock-in-top' command line option 2017-08-18 18:22:08 +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
Roman C. Podolski fc021cd060 Fix protoc #2009
Fix bug described in #2009 and extend example in playground to include
described scenario.
2017-08-17 07:50:28 +02:00
Thomas Nagy f8aa0d9da4
Update protoc #2009 2017-08-16 19:47:34 +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 322f447e0a
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-13 09:03:54 +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 194b6e85f5
docs 2017-08-05 23:17:27 +02:00
Thomas Nagy 1cade2ba13
docs 2017-08-05 23:15:50 +02:00
Joshua Watt 70e4c44080 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-03 08:23:43 +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 24825b5575
waf-1.9.13 2017-08-02 19:46:33 +02:00
Thomas Nagy 66f1d5bc94
docs 2017-08-02 19:45:08 +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
Thomas Nagy f6eee2b041
Typo process_uselib_vars -> propagate_uselib_vars #2005 2017-08-02 00:38:11 +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
Simon bf14d0f340 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:10:42 +02:00
Simon 1d22579536 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:10:42 +02:00
fedepell 44a9a1f026 qt5: minor correction of uic tool search error message (wrong versions printed) 2017-08-01 22:41:45 +02:00
fedepell 3e7ad303d2 qt5: minor correction of uic tool search error message (wrong versions printed) 2017-08-01 22:39:32 +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 10a2b6bd04
Support for old gcc compilers #2003 2017-07-30 17:25:20 +02:00
Thomas Nagy 88bb8cc6a1
TypeError -> ValueError #2002 2017-07-30 00:14:19 +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
Roman C. Podolski a6f4ad6e1d 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:24:28 +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 df1767728f
WAF_PRINT_FAILURE_LOG #1930 2017-07-20 19:26:56 +02:00
Thomas Nagy 12fb29e8a5
WAF_PRINT_FAILURE_LOG #1930 2017-07-20 19:26:22 +02:00
Thomas Nagy 2fe4083f13
Do not force an encoding on config.log on python2 #1974 2017-07-19 22:39:15 +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
Sean Fisk 963c3bfd0c 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:46:33 +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 424e5aa4ce Cleanup for #1984 2017-06-21 12:03:14 +02:00
fedepell 928faedb44 eclipse: code cleanups as by comment to #1984 2017-06-21 11:55:40 +02:00
fedepell 32164c1004 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 11:55:40 +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 3a838e9851 Delete playground/weak_constraint because it is obsolete 2017-06-20 11:22:58 +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 c668663362 Decode vswhere output as utf8/replace when cp1252 fails 2017-06-19 20:24:21 +02:00
Thomas Nagy 6a638625cf Update the Swig example #1982 2017-06-19 19:42:53 +02:00
Thomas Nagy 0cebd3bd4d Clarify the buildall alias 2017-06-16 11:16:49 +02:00
Thomas Nagy 17cd653136 Clarify the buildall alias 2017-06-16 11:16:22 +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 2c9f86cc62 Ensure link tasks are processed after swig tasks 2017-06-08 19:56:04 +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 aea1c587d3 Fix the docstring of find_file #1980 2017-06-07 19:21:27 +02:00
Thomas Nagy f72167b0e0 Fix one regression on more_tasks #1981 2017-06-07 19:07:27 +02:00
Thomas Nagy 2871e1d016
waf-2.0.0pre4 2017-06-04 09:19:14 +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 c5227d0a2b
docs 2017-06-04 08:41:43 +02:00
Thomas Nagy 377d09831b
Force an encoding on config.log #1974 2017-06-03 00:03:49 +02:00
Thomas Nagy a782130a2e
waf-1.9.12 2017-06-02 21:19:25 +02:00
Thomas Nagy 7153756042
Force an encoding on config.log #1974 2017-06-02 21:17:09 +02:00
Seth Hinze c2a1081a41 Allow overriding namespace of resx files. 2017-06-01 00:01:55 +02:00
Seth Hinze 68e7e073f0 Add xmldoc support to cs tool. 2017-06-01 00:01:27 +02:00
Seth Hinze 026de60641 Allow /noconfig to be used with csc 2017-06-01 00:00:48 +02:00
Seth Hinze 1f2ebd6db9 Fix pdb installation in cs tool. 2017-06-01 00:00:16 +02:00
Thomas Nagy 578230789a
Handle spaces in python paths on Windows #1973 2017-05-29 23:11:53 +02:00
Thomas Nagy 85efdc2246
Handle spaces in python paths on Windows #1973 2017-05-28 20:13:55 +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
Federico Pellegrin 11d5efca68 eclipse: added a playground area for testing the eclipse extra (#1968)
* eclipse: added a playground area for testing the eclipse extra

* eclipse: try to clean up a bit the playground by collapsing some wscripts
2017-05-23 21:23:47 +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 45dafcb0fe eclipse: generate configuration just for languages that are effecitvely used in wscript and not all of them all the time 2017-05-19 21:00:35 +02:00
fedepell a952131d03 eclipse: little code cleanup 2017-05-19 21:00:35 +02:00
Federico Pellegrin b0eb986e9a eclipse: added a playground area for testing the eclipse extra (#1968)
* eclipse: added a playground area for testing the eclipse extra

* eclipse: try to clean up a bit the playground by collapsing some wscripts
2017-05-18 22:16:43 +02:00
Gustavo Sousa 003f9dd5a8 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-17 21:05:04 +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
fedepell ce23d509ba eclipse: add support also for java project configuration generation 2017-05-16 18:11:52 +02:00
Akira Baruah cc52c6e230 cpplint: logger subclasses also inherit from object to safely call super() 2017-05-13 10:56:59 +02:00
Thomas Nagy 5e6e73fce6
Handle vswhere output encodings in Python2 #1965 2017-05-13 09:53:49 +02:00
Akira Baruah 86134af9fb cpplint: fix Python 2 import name collision using `absolute_import` 2017-05-13 09:42:59 +02:00
Akira Baruah f7ff1dd521 cpplint: fix Python 2 import name collision using `absolute_import` 2017-05-09 07:42:32 +02:00
Thomas Nagy 41a325496a
waf-2.0.0pre3 2017-05-08 19:13:38 +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
Thomas Nagy cbf4c4f861
waf-1.9.11 2017-05-06 16:55:03 +02:00
Thomas Nagy a65c7c03b7
Detect older products with vswhere.exe 2017-05-06 11:38:25 +02:00
Refael Ackermann e19d9d990f Detect MSVS 15.0 Installation path (via vswhere)
Fixes: #1924

Inspired by the scripts from https://github.com/node4good/msvs-com-helper
2017-05-06 04:19:34 +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
Jan Niklas Hasse 7142640257 Import library files need to be installed into lib/ on Windows
Fix #1860.
2017-05-06 03:43:10 +02:00
fedepell 28cb614069 eclipse: create the pydev python path configuration from the waf setup so the symbols can be correctly resolved in the IDE 2017-05-03 21:07:25 +02:00
fedepell adc94bce75 eclipse: use standard variable ${PROJECT_DIR_NAME} in pydev configuration instead of hardcoded name for better portability 2017-05-03 21:07:25 +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
fedepell ddd49b571b 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-02 18:44:25 +02:00
fedepell 543cc204a6 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-02 18:44:25 +02:00
fedepell d618c52931 eclipse: pass correct languageId for C++ when generating tool otherwise settings will not be used when C++ files are edited 2017-05-02 18:44:25 +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 6cf97685f3 cpplint: add `--cpplint-root` option 2017-04-27 21:32:12 +02:00
Akira Baruah 3f15e5e2c8 Check `env.CPPLINT_SKIP` after `options` are converted to `env`s #1953 2017-04-26 07:36:56 +02:00
Akira Baruah 45b11ef381 Remove undeclared `ve` variable for performance improvement #1950 2017-04-25 23:59:53 +02:00
Akira Baruah 6e5baffd47 Remove undeclared `ve` variable for performance improvement #1950 2017-04-25 23:59:04 +02:00
Thomas Nagy b37f37afcd
Improve waf -v speed in verbose mode #1950 2017-04-23 19:10:49 +02:00
Thomas Nagy f2366e8c93
Improve waf -v speed in verbose mode #1950 2017-04-23 19:10:12 +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 008c9016a8
Code simplifications 2017-04-22 22:12:50 +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 1a876716cb
Typo 2017-04-22 21:49:03 +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
Thomas Nagy ed24f5f82e
waf-1.9.10 2017-04-22 15:39:13 +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
Jiří Janoušek c83e485d16 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:30:47 +02:00
Thomas Nagy e8ac4ba555
Ensure bld.current_group reflects the current group while building 2017-04-20 23:28:39 +02:00
Thomas Nagy 8c3cca3284
docs 2017-04-20 22:17:46 +02:00
Thomas Nagy 3de21ec448
Exclude install vapi paths and empty installation tasks 2017-04-20 22:10:27 +02:00
Thomas Nagy 15fb3a33eb
Make the invalid uid task verification slightly less verbose 2017-04-20 22:10:08 +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 93053013f9
Cleanup: Break multiple statements on multiple lines 2017-04-17 13:20:00 +02:00
Thomas Nagy 5ac6123e5e
Cleanup: Break multiple statements on multiple lines 2017-04-17 13:16:57 +02:00
Thomas Nagy 43c7891fe5
Cleanup 2017-04-17 12:29:17 +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
Simon c967d29e48 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:35:16 +02:00
Thomas Nagy 8bc0cfbcb3
Provide bld.cur property for compatibility
Though the property bld.cur was used internally, a few build
scripts may be relying on it. This property is to be removed
in waf-2.0
2017-04-15 15:15:32 +02:00
Thomas Nagy e30a2da973
Reflect the current build group in bld.current_group 2017-04-15 15:12:41 +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 45b05b3f30
Cleanup #1943 2017-04-15 13:50:21 +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 3ed319a744
Obtain NO_LOCK_IN_TOP/RUN/OUT from os.environ too 2017-04-14 13:04:51 +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 2ef701bbbd
Do not cast test outputs to integers with add_to_env 2017-04-14 02:01:35 +02:00
Thomas Nagy b9df5b205e
Detect Python from conf.env.PYTHON 2017-04-14 01:54:26 +02:00
Thomas Nagy a31b08615c
Ensure env.PYTHON is set (regression) 2017-04-13 21:10:47 +02:00
Thomas Nagy 6702434df4
Ensure env.PYTHON is set (regression) 2017-04-13 21:09:43 +02:00
Thomas Nagy 6d19d4211d
Waf 1.9.10 preparation 2017-04-13 19:46:52 +02:00
Thomas Nagy 25924554f2
Extract the distcheck command argument 2017-04-13 19:03:13 +02:00
Thomas Nagy ae3f254315
Extract the distcheck command argument 2017-04-13 19:01:03 +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 0664e621da
Ignore empty lock files 2017-04-13 12:12:09 +02:00
Thomas Nagy 65b5a3966d
Keep opt.load('python') optional 2017-04-13 12:11:36 +02:00
Thomas Nagy 4c9ee84194
Ignore empty environment variables in find_program 2017-04-10 20:40:07 +02:00
Thomas Nagy 22ac435454
Ignore empty environment variables in find_program 2017-04-10 20:39:45 +02:00
Thomas Nagy d300a7ce0f
Make target declaration unnecessary #1943 2017-04-09 11:28:53 +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 26bd012695
Detect the most recent msvc version first 2017-04-08 21:35:23 +02:00
Thomas Nagy cf6372b857
Docs 2017-04-08 10:53:43 +02:00
Thomas Nagy 566b3fa644
Xcode 6 generator fixes #1939 2017-04-08 02:27:43 +02:00
WaffleSouffle 30d0673873 waf.bat changed to support Python3 installation on Windows. 2017-04-08 02:27:13 +02:00
WaffleSouffle 68bd42b235 Ignore waf.bat (generated by Windows build). 2017-04-08 02:27:04 +02:00
Thomas Nagy 059939ef60
Xcode 6 generator fixes #1939 2017-04-08 02:24:57 +02:00
WaffleSouffle 942f9a14d9 waf.bat changed to support Python3 installation on Windows. 2017-04-04 19:01:21 +02:00
WaffleSouffle b5c18460d2 Ignore waf.bat (generated by Windows build). 2017-04-04 18:35:29 +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 f6a030e172
Docs for #1937 2017-04-01 10:12:31 +02:00
Thomas Nagy bffa757bae
Add -pie for parse_flags #1936 2017-04-01 09:29:10 +02:00
Thomas Nagy 058807ed9a
Add new entries for parse_flags #1936 2017-03-31 18:16:32 +02:00
Thomas Nagy e503375cb0
Add new entries for parse_flags #1936 2017-03-31 18:15:14 +02:00
Thomas Nagy 2391bbb2dd
waf-launcher - Issue 1935 2017-03-29 22:36:46 +02:00
Thomas Nagy e77d2e1bfe
waf-launcher - Issue 1935 2017-03-29 18:18:26 +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
Matt Selsky b0524d1a6f Typos 2017-03-27 19:30:51 +02:00
Harald Klimach ede9ac0740 Fixed Fortran module naming scheme (unexpected upper instead of lower). 2017-03-27 19:30:13 +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
yngwe@FRY 94fd866949 #1925: improve support for Visual Studio 2017, added support for all cross compiler & added ARM64 target support 2017-03-25 23:22:21 +01:00
Thomas Nagy c7f8b7093a
waf-2.0.0p1 2017-03-25 14:49:57 +01:00
Thomas Nagy 14c57b47e6
waf-1.9.9 2017-03-25 13:36:20 +01:00
Thomas Nagy 33918da4f4
Order msvc compiler detection #1907 2017-03-25 13:33:54 +01:00
Thomas Nagy 389f3f3b28
Order msvc compiler detection #1907 2017-03-25 13:33:22 +01:00
Thomas Nagy fc74d19ec0
docs 2017-03-25 13:09:19 +01:00
Thomas Nagy a26236da2a
Improve Qt detection with frameworks 2017-03-25 12:51:53 +01:00
Thomas Nagy ee4d91dfce
Improve Qt detection with frameworks 2017-03-25 12:51:26 +01:00
Jan Niklas Hasse 6ce33c7e53 Support CLICOLOR(_FORCE) to control colored output 2017-03-25 10:44:57 +01:00
Jan Niklas Hasse aa73787f63 Support CLICOLOR(_FORCE) to control colored output 2017-03-25 10:38:27 +01:00
Gordon Tisher dfba301324 Update vs2017 support to correctly configure x64 2017-03-15 18:19:13 +01:00
Gordon Tisher 2942da2efe Update vs2017 support to correctly configure x64 2017-03-15 18:18:44 +01:00
Gordon Tisher 7c44ac1b3b Add the ability to detect Visual Studio 2017 to msvc 2017-03-14 22:32:36 +01:00
Gordon Tisher d86f2ccd17 Add the ability to detect Visual Studio 2017 to msvc 2017-03-14 22:32:10 +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
Simon Guillot 0a789a6f09 Fix bug in the clang_compilation_database tool when no C compiler is loaded 2017-03-14 22:20:43 +01:00
Thomas Nagy 90ab7a2ae9
Cleanup 2017-03-08 18:27:29 +01:00
Thomas Nagy c8638eab3e
Cleanup 2017-03-08 18:26:20 +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
Justin Israel 7caabfd264 Extend ListContext to print TaskGen descriptions
Signed-off-by: Justin Israel <justinisrael@gmail.com>
2017-03-08 18:21:50 +01:00
fedepell 6ce409f98f cppcheck: fix Python3 incompatibilities (see #1921) 2017-03-08 18:17:52 +01:00
Thomas Nagy 56c9721d88
Additional fortran extensions #1916 2017-03-04 12:10:12 +01:00
Thomas Nagy f7a16da8fc
Provide unity builds per task generator 2017-03-04 12:08:55 +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 512bbfd819
Obtain run_build_cls from run_build/check parameters 2017-03-04 08:31:59 +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
Peter Vingelmann 0ed090037e Use platform-independent path separators in directory_files 2017-02-24 21:42:42 +01:00
Peter Vingelmann e596b529d8 Use platform-independent path separators in directory_files 2017-02-24 21:42:12 +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 c28d7fca83
docs 2017-02-19 11:27:58 +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
DragoonX6 70616f2b7d Make clang_compilation_database add-on always output complete listings. 2017-02-18 11:58:50 +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
Alexander Afanasyev 7779706bc9 qt5: Workaround for QT5 detection on macOS (Bug #1910) 2017-02-15 18:35:28 +01:00
Matt Selsky f2186bc17b Typo 2017-02-15 08:09:40 +01:00
Alexander Afanasyev f05372f897 c_osx: Fix install task for mac_files 2017-02-15 08:05:41 +01:00
Thomas Nagy cb0fa36265
Better error message on missing macros 2017-02-14 22:47:15 +01:00
Thomas Nagy b4485d8bb1
Warn for missing cflags/cxxflags in gccdeps 2017-02-14 22:46:46 +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 1e7f260c07
Fix the thread index in parallel_debug 2017-02-14 19:42:34 +01:00
Thomas Nagy 620f255b13
Fix the thread index in parallel_debug 2017-02-14 19:42:07 +01:00
Thomas Nagy a6109383bf
waf-1.9.8 2017-02-13 20:54:50 +01:00
Thomas Nagy ffcbf5d402
Work around an annoying Python 3.6 regression #1889 2017-02-13 20:53:15 +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 ef3b1bdcbf
Keep winres flags in subsequent detections #1908 2017-02-11 23:34:21 +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 27cba45b5f
cleanup 2017-02-08 21:55:50 +01:00
Matt Selsky a5918ab433 Update check_endianness() example to show that the return value needs to be used 2017-02-08 21:19:19 +01:00
Matt Selsky e6b150fac9 Update check_endianness() example to show that the return value needs to be used 2017-02-08 21:16:09 +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
Yinon Ehrlich 166fa49679 Retain original trace-back (#1903) 2017-02-05 12:59:01 +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 ace38d2d75
Cleanup 2017-01-30 23:24:35 +01:00
Jan Niklas Hasse 86e77ef5c3 Improve error message about version mismatch (#1902) 2017-01-30 23:23:15 +01:00
Thomas Nagy e82884e404
docs 2017-01-29 20:00:22 +01:00
Thomas Nagy f446830935
docs 2017-01-29 19:59:57 +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 2cf69d9a79
Simplify the Qt5 library detection 2017-01-28 11:40:41 +01:00
Thomas Nagy 107b82a242
Remove the lib- prefix from created import libraries 2017-01-28 11:14:03 +01:00
Thomas Nagy 4bdcc37d06
Now -qopenmp option #1900 2017-01-25 18:36:33 +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
DigitalDan05 fcb95f4532 Allow numbers for Java compat attribute (#1899)
Force the java "compat" parameter as a string.
2017-01-24 20:51:29 +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
fedepell 823ad57b89 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:25:28 +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 87bf7ae1fa
docs 2017-01-21 13:08:29 +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
Matt Selsky d27f613fab Typo in docstring (#1895) 2017-01-16 18:41:23 +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
Federico Pellegrin 7133dab2dd Remove .so extension from detected qt5 library (#1892) 2017-01-11 21:29:59 +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
fedepell 821565818f 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:05 +01:00
Thomas Nagy 2123bc1df4
docs 2017-01-06 23:16:17 +01:00
Thomas Nagy 12b038833e
docs 2017-01-06 23:15:53 +01:00
Thomas Nagy 9d11883dbd
docs 2017-01-06 23:15:23 +01:00
Thomas Nagy fb4116f10e
docs 2017-01-06 23:14:51 +01:00
Thomas Nagy 3a12b52372
Fix the method specification in syms.py 2017-01-06 23:09:42 +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 3938bb89aa
Missing parentheses in syms.py 2017-01-06 23:00:45 +01:00
Thomas Nagy 0d47689d97
Conceal Python 2.6 subprocess errors 2017-01-06 04:30:02 +01:00
Thomas Nagy 3cd11369d3
Update the python version detection in waf.bat 2017-01-06 04:27:33 +01:00
Thomas Nagy 113fc8192e
Update the python version detection in waf.bat 2017-01-06 04:27:08 +01:00
Federico Pellegrin 627cdb705d Add qt5 5.8.x new libraries to qt5 tool (#1888) 2017-01-05 19:33:02 +01:00
Federico Pellegrin 17e1ef04ad Add qt5 5.8.x new libraries to qt5 tool (#1888) 2017-01-05 19:32:17 +01:00
Thomas Nagy 8e19e3e714
Apidocs fixes 2017-01-05 13:16:46 +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 8fbb14356b simplification 2016-12-28 11:27:30 +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
Matt Selsky dcc0a6a917 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:21:09 +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
montonero b97681c110 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:15:53 +01:00
Thomas Nagy 974f59780d Prevent accidental data sharing on ext_in/ext_out/before/after 2016-12-27 14:42:54 +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
Thomas Nagy b95cd931fd Improve process_rule cache accuracy 2016-12-23 18:06:57 +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
dffischer 15c45b365d 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-22 18:31:07 +01:00
Thomas Nagy 1c63e4d7ee Simplify TaskGen.process_rule 2016-12-22 18:28:03 +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 3c22fd412e Fix chmod with tuple rules #1884 2016-12-22 12:07:08 +01:00
Thomas Nagy c78d53a7a2 Include all vars in tuple rules #1883 2016-12-22 12:02:25 +01:00
montonero e3e8e6b711 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-22 11:16:34 +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 0dd0e17ecc Optimize Node.path_from 2016-12-21 19:50:29 +01:00
Thomas Nagy ea032a73ae Update the gsettings schema cache without a shell 2016-12-20 14:01:17 +01:00
XZS f0c5c732a7 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-20 13:54:54 +01:00
cconverse711 ec3bf9d046 Fix boost library naming conventions 2016-12-17 14:29:07 +01:00
Ricardo Crudo b9dfbf3caf Tools/python: add option --nopycache (#1878)
Add option to not use __pycache__ dir when installing python objects.
2016-12-15 19:03:29 +01:00
montonero 0143b86505 correct static lib extension for emscripten (#1876) 2016-12-13 16:23:10 +01:00
Thomas Nagy 4095f1403a
waf-1.9.7 2016-12-13 10:26:11 +01:00
Thomas Nagy ade48ed52e
Conceal Python 2.6 subprocess errors 2016-12-08 22:43:58 +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 de7e8b758e
Read variables from self.vars #1873 2016-12-07 19:04:46 +01:00
Thomas Nagy ad8f681072
docs 2016-12-04 01:37:18 +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
Matt Selsky 70899622e2 Fix grammar in ConfigSet pydoc (#1872) 2016-12-02 18:23:37 +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 0bca3987ad
docs - waf 1.9.6 2016-11-27 14:23:37 +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 dbcda7ec6a
Fix the inconsistent partial detection for #1865 2016-11-26 19:30:53 +01:00
Thomas Nagy c5bf55ee86
Allocate Utils.lru_cache lazily 2016-11-26 18:59:38 +01:00
Thomas Nagy 8dae660ec7
Allocate Utils.lru_cache lazily 2016-11-26 18:14:28 +01:00
Thomas Nagy f0ef5624cc
waf 1.9.6 2016-11-26 15:27:18 +01:00
Thomas Nagy 283e7953cb
More cleanup for #1865 2016-11-26 14:23:04 +01:00
Thomas Nagy 5fd84a75e6
More cleanup for #1865 2016-11-26 14:22:30 +01:00
Thomas Nagy 8efd28c2d5
Update the -source version in java examples 2016-11-26 12:03:12 +01:00
Thomas Nagy aa88cd86a5
Update the -source version in java examples 2016-11-26 12:02:41 +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 906bf781ac
Cleanup for #1865 2016-11-26 11:51:20 +01:00
Gustavo J. A. M. Carneiro 421e0e3ab9 Accept functools.partial() as a task rule #1862 (#1865)
Accept functools.partial() as task generator rules #1862
2016-11-26 11:00:01 +01:00
Thomas Nagy 57ee30760a
Increase the cache size for #1833 and #1859 2016-11-22 20:34:58 +01:00
Thomas Nagy 99d5112da6
Increase the cache size for #1833 and #1859 2016-11-22 20:34:23 +01:00
Thomas Nagy f9f6dbfa50
./waf-light --interpreter "#! /usr/bin/env python3" - for #1856 2016-11-20 21:54:45 +01:00
Thomas Nagy 15c6d75393
./waf-light --interpreter "#! /usr/bin/env python3" - for #1856 2016-11-20 21:25:22 +01:00
Thomas Nagy ec9081e81c
Let Node.find_or_declare accept paths as lists 2016-11-20 13:49:17 +01:00
Thomas Nagy 6c48f08e97
Simplify waflib/extras/force_build_directory.py 2016-11-20 13:47:31 +01:00
Thomas Nagy a892d8725a
Force files into the build directory by default 2016-11-20 13:43:06 +01:00
Thomas Nagy f10c195319
docs 2016-11-20 10:23:53 +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 c142062d69
docs 2016-11-20 10:11:09 +01:00
Thomas Nagy c9b1329675
docs 2016-11-19 10:11:11 +01:00
Thomas Nagy e1f700aee8
Missing ut_cwd value in example 2016-11-19 10:02:59 +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 8bea637dc7
docs 2016-11-06 18:29:16 +01:00
Thomas Nagy 9ddb8c27ef
docs 2016-11-06 12:10:39 +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 152f40f51a
Test for #1834 2016-10-18 18:20:27 +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
Federico Pellegrin 4d40e63fc1 Playground sample on how to chain both qt5 tool and pyqt5 extra to use both at the same time in a waf project (#1832) 2016-10-12 23:53:04 +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
ita1024 44dec78555 Merge pull request #1829 from mortenvp/support-directory-tools
Allow using directories as waf tools
2016-10-10 19:27:39 +02:00
Morten V. Pedersen 55786e4ac8 Update approach to include module
- Using ant_glob(..) for filtering and iterating files
- Update location in zip
- Also include files in zip
2016-10-10 13:00:53 +02:00
Morten V. Pedersen e2a03e461b Merge branch 'master' into support-directory-tools 2016-10-10 08:58:55 +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 d5628f1ee6
Enable chosen groups in the install_group test 2016-10-08 23:30:35 +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
Morten V. Pedersen 50171409c4 Allow using directories as waf tools
Sometimes it is useful to be able to add a module to waf as a tool.

Using this patch one can use ./waf-light configure build --tools /tmp/mytool

This will add the files under /tmp/mytool under /waflib/extras/mytool. Such
that they can be imported in a wscript as from waflib.extras import mytool.
2016-10-07 21:38:43 +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
ita1024 281de5d5ef Merge pull request #1823 from jhasse/master
Don't fail on output decoding errors
2016-09-30 21:33:54 +02:00
Jan Niklas Hasse bfcef62e45 Don't fail on output decoding errors 2016-09-30 14:25:49 +02:00
ita1024 43302767dd Merge pull request #1819 from jhasse/master
Less verbose output when a task failed if not running with -v
2016-09-26 21:47:12 +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
ita1024 3286beb4ad Merge pull request #1816 from fedepell/qt5-warncomp
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
2016-09-19 19:00:06 +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 a28385fe94
docs 2016-09-15 22:41:32 +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 5e97146809
docs 2016-09-15 21:45:45 +02:00
Thomas Nagy 9ed7d41488
Expand '--foo=' with shell=False - Issue #1814 2016-09-15 21:36:02 +02:00
ita1024 f685d01217 Merge pull request #1815 from fedepell/qt5-57libs
Add qt5 5.7.x new libraries to qt5 tool
2016-09-15 21:19:41 +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
ita1024 a621e9a0dc Merge pull request #1812 from fedepell/python-exe
Correct option used for python executable (--python and not --pythondir)
2016-09-14 22:02:05 +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
Thomas Nagy 87e6a7c143
waf 1.9.4 - docs 2016-09-11 21:12:38 +02:00
ita1024 065ef5e98e Merge pull request #1810 from mimon/xcode7-updates
Xcode6/7 tool updates
2016-09-10 18:55:15 +02:00
Simon 88e7fe7f23 changed name bld.exe() to bld.program() in playground example 2016-09-10 15:54:55 +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 afe6862525
Make unportable demos/c tests non-mandatory 2016-09-02 23:05:27 +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
ita1024 873048ba8e Merge pull request #1808 from guludo/fix-saved_attrs
Fix error when adding new items to SAVED_ATTRS
2016-08-25 18:39:25 +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 b022313c19
Update the changelog for Waf 1.9.3 2016-08-21 17:19:45 +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 2c9c7aa52c
docs 2016-08-21 00:32:33 +02:00
Thomas Nagy 46ab6405dc docs 2016-08-21 00:16:46 +02:00
Thomas Nagy 07a01edba8
docs 2016-08-20 23:58:28 +02:00
Thomas Nagy ec6b72b0ad
Display failed configuration tests in yellow in multicheck 2016-08-20 13:06:23 +02:00
Thomas Nagy 93bda59033
docs 2016-08-20 12:21:16 +02:00
Thomas Nagy 145118227c
Docs 2016-08-19 22:31:32 +02:00
Thomas Nagy 7d3ddac860
Parallel configuration tests with arbitrary functions #1793 2016-08-19 22:15:04 +02:00
Thomas Nagy c868c076f7
docs 2016-08-19 20:20:13 +02:00
ita1024 82d2b89426 Merge pull request #1802 from syntion/master
Add suppport for finding lib boost_python in gentoo
2016-08-19 19:10:43 +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
ita1024 37f49e5f55 Merge pull request #1800 from fedepell/qt57conf
qt5: qt5 5.7 detection, added also case with std=c++11 but no fPIC/fPIE
2016-08-19 07:35:17 +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 4ff5b8b7a7
docs 2016-08-15 19:44:23 +02:00
Thomas Nagy 7d60c89744
Split Nag Fortran compiler flags #1797 2016-08-15 19:41:50 +02:00
ita1024 59f186cbe0 Merge pull request #1794 from fedepell/pyqt5-conf-1
Add configuration option to select PySide2 Python QT5 bindings, while PyQt5 bindings remain otherwise searched first by default.
2016-08-14 22:39:39 +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 42b3bda157
Add an example of stripping executables on installation 2016-08-13 20:11:56 +02:00
Thomas Nagy 51c5df5a11
Docs 2016-08-13 19:53:41 +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 8c5624b0f1
docs 2016-08-13 19:32:02 +02:00
Thomas Nagy 6afa7b7fac
docs 2016-08-13 19:24:30 +02:00
Thomas Nagy cd9cfb4716
Add dprogram/dshlib to the example 2016-08-13 18:55:12 +02:00
Thomas Nagy e2b415f974
Strip binaries 2016-08-13 18:51:55 +02:00
Thomas Nagy 52add352d4
Update the strip example 2016-08-13 18:23:51 +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 76eac19c02
Cleanup 2016-07-29 22:17:23 +02:00
Thomas Nagy 8a6b13344d
Move demos/xcode6 to playground/xcode6 2016-07-29 22:15:42 +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 47ac970d15 Added pyqt5 playground example 2016-07-29 16:37:58 +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
ita1024 438595796b Merge pull request #1786 from guludo/pr/fix-autoconfig
Set do_config as True if file is not found
2016-07-29 07:36:27 +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 c26506afc5
Update the intltool docs 2016-07-25 23:33:54 +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 346d44fee4
Remove the non-BSD licensed bits from the main branch and the future releases 2016-07-25 23:22:51 +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
Thomas Nagy 84808aa7e4 More docs 2016-07-23 10:10:46 +02:00
Thomas Nagy de96c3c537
docs 2016-07-23 10:02:58 +02:00
Thomas Nagy 86121c8ea0
docs 2016-07-23 02:07:29 +02:00
Thomas Nagy dff0d0d6b9
docs 2016-07-23 01:52:34 +02:00
ita1024 445c0214ff Merge pull request #1770 from mimon/xcode6-updates-july
Updated docs for xcode6 tool. Also, xcode6 tool tested in XCode 7
2016-07-18 20:27:14 +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 b73ccba03c
More docs 2016-07-16 17:31:19 +02:00
Thomas Nagy f01c60d061
More docs 2016-07-16 17:18:20 +02:00
Thomas Nagy eab577a179
More docs 2016-07-16 17:09:00 +02:00
Thomas Nagy 0c7499109f
More docs 2016-07-16 16:54:22 +02:00
Thomas Nagy 1c66026f99 More documentation 2016-07-16 16:44:54 +02:00
Thomas Nagy fb6d9aaee3
docs 2016-07-16 15:38:22 +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 fb89abaf58
More docs 2016-07-09 02:11:17 +02:00
Thomas Nagy cdb46e29f9
Disable defines by setting define_name='' #1766 2016-07-08 19:39:34 +02:00
Thomas Nagy 1201a7776f
Typo 2016-07-07 23:32:34 +02:00
Thomas Nagy df96b50aa1
Example of finding shared library paths with ldd in configuration tests 2016-07-07 20:15:36 +02:00
Thomas Nagy 9ede16b70a
Docs - #1766 2016-07-07 07:56:20 +02:00
Thomas Nagy 1b1bad8231
Unused keyword 2016-07-07 07:47:15 +02:00
Thomas Nagy 1fa2e6f7e1
waf-1.9.1 2016-07-03 09:51:45 +02:00
Thomas Nagy 0189850710
Do not de-duplicate configuration flags passed in conf.check(stlib=) for consistency reasons 2016-07-02 19:59:17 +02:00
Thomas Nagy 0b2ae5fabd
All pictures in PDF/SVG 2016-07-02 13:10:13 +02:00
Thomas Nagy 4e3c5044e5
Docs 2016-07-02 12:38:31 +02:00
Thomas Nagy fdafe42d9f
Docs 2016-07-02 12:00:20 +02:00
ita1024 f316064be1 Merge pull request #1764 from guludo/preforked-fallback-pickle
Fallback to run_regular_process if we can't pickle arguments
2016-06-28 07:37:31 +02:00
Gustavo Jose de Sousa 9a0932951f Fallback to run_regular_process if we can't pickle arguments 2016-06-27 20:49:37 -03:00
Thomas Nagy e52d1b4916
Fix svg links in the documentation for 1.9.0 2016-06-26 13:56:19 +02:00
Thomas Nagy 39056a6ba5
waf 1.9 2016-06-26 13:45:21 +02:00
Thomas Nagy ff1be31ec4
Fix Qt5 detection when pkg-config is missing 2016-06-26 12:06:17 +02:00
Thomas Nagy 50ae7dc3ba
Api docs 2016-06-26 11:59:27 +02:00
Thomas Nagy 461c065bbb
Typo 2016-06-26 00:16:51 +02:00
Thomas Nagy f84b219818
Api docs 2016-06-26 00:15:41 +02:00
Thomas Nagy 850e9ad5fc
Simplify env['FOO'] -> env.FOO 2016-06-25 23:54:12 +02:00
Thomas Nagy ef48d49260
Remove update_outputs from the documentation 2016-06-25 22:48:47 +02:00
Thomas Nagy 4991120891
Api docs 2016-06-25 21:30:32 +02:00
Thomas Nagy fc02c1d42a
Api docs 2016-06-25 20:10:04 +02:00
Thomas Nagy 02fb7ceff7
Show all connections in the feature maps 2016-06-25 19:55:51 +02:00
Thomas Nagy f08356516a
Fix invalid method names in after/before constraints 2016-06-25 19:54:26 +02:00
Thomas Nagy c9db34e1bf
Fix invalid method names in after/before constraints 2016-06-25 19:53:54 +02:00
Thomas Nagy 8e721fb49a
Ignore temporary rst files in the apidoc folder 2016-06-25 19:18:28 +02:00
Thomas Nagy d609e6c349
Documentation bug: the feature map was not updated in a long time 2016-06-25 19:16:01 +02:00
Thomas Nagy 8ad77d3b6b
Use SVG in the feature map 2016-06-25 18:22:13 +02:00
Thomas Nagy eaa83004c8
Api docs 2016-06-25 16:23:06 +02:00
Thomas Nagy ef6525c0bf
Api docs 2016-06-25 14:49:27 +02:00
Thomas Nagy a2ca4b6dab
Remove Options.platform and Options.cmds 2016-06-25 13:55:13 +02:00
Thomas Nagy 3c132ad97a
Fix a wrong error message when installing to readonly folders 2016-06-25 13:38:48 +02:00
Thomas Nagy 57e711d801
Api docs 2016-06-25 13:27:22 +02:00
Thomas Nagy 96f4ebc52f
Api docs 2016-06-25 13:12:59 +02:00
Thomas Nagy 2c76187d41
Api docs 2016-06-25 12:50:04 +02:00
Thomas Nagy ccc77cd9f5
Api docs 2016-06-25 02:38:26 +02:00
Thomas Nagy 21e9be8cdb
Api docs 2016-06-24 13:31:06 +02:00
Thomas Nagy 63a29dfd18
Api docs 2016-06-24 13:26:36 +02:00
Thomas Nagy 79aece2650
Api docs 2016-06-24 13:21:32 +02:00
ita1024 e487466c76 Merge pull request #1762 from fedepell/qt5_ui_path
qt5: uic generation task missing path to target, name conflict possible
2016-06-22 18:28:54 +02:00
fedepell 585bc1e9a8 qt5: uic generation task, use node.parent insted of self.path otherwise the path gets lost and all ui_XXX.h get generated on top level build directory which may also
lead to name clashes
2016-06-22 14:07:10 +02:00
Thomas Nagy 6854fae055
Removed some annoying whitespace 2016-06-21 22:57:06 +02:00
ita1024 df4a17b97a Merge pull request #1760 from danbar/check_swig_version
Extend check_swig_version
2016-06-21 22:49:35 +02:00
Daniel Bartel f88f13f0cf Fix the Swig version detection message 2016-06-21 21:19:46 +02:00
Daniel Bartel 44b571172b Merge branch 'master' into check_swig_version 2016-06-21 21:07:55 +02:00
Thomas Nagy 9be51b5cf8
Fix the Python version detection message #1760 2016-06-21 20:22:27 +02:00
ita1024 7acb027961 Merge pull request #1761 from fedepell/unit_test_ldlibrarypath
Manage case in unit_test running when LD_LIBRARY_PATH is not already defined in the environment
2016-06-21 19:51:06 +02:00
fedepell 567ab43ac2 Manage case in unit_test running when LD_LIBRARY_PATH is not already defined in the environment 2016-06-21 09:13:57 +02:00
ita1024 9f610bd23f Merge pull request #1758 from guludo/autoconfig
Fix autoconfig
2016-06-21 07:35:18 +02:00
Gustavo Jose de Sousa a339a9c320 Yet another fix for #1758
The build command wasn't being executed for 'clobber' autoconfiguration.
2016-06-20 18:53:35 -03:00
Daniel Bartel 2241db8557 make check_swig_version similar to check_python_version 2016-06-20 21:38:46 +02:00
Daniel Bartel bf05bac08a fix output format issue 2016-06-20 21:33:26 +02:00
Thomas Nagy 2f03b76833
Qt5 may require -fPIC 2016-06-20 20:24:37 +02:00
Thomas Nagy b2bfbba4f0
One more fix needed for #1758 2016-06-19 13:39:03 +02:00
Thomas Nagy ed7e2f5016
Add -pthread to link jni programs on FreeBSD 2016-06-19 11:26:25 +02:00
Thomas Nagy 59be2b56c0
This fixes #1758 2016-06-19 09:01:02 +02:00
Thomas Nagy ee8515e5ee
docs 2016-06-18 01:28:09 +02:00
Thomas Nagy 8120504156
Restore configuration values with Configure.autoconfig='clobber' #1758 2016-06-18 01:06:23 +02:00
Thomas Nagy dcd01d6369
Deprecate ut_fun as we have ut_str now 2016-06-17 22:04:16 +02:00
Thomas Nagy 764645a014
Reduce the amount of paths added to unit test environment variable PATH 2016-06-17 22:02:41 +02:00
Thomas Nagy 16aeb5756a
Extended unit test program parameters 2016-06-17 20:18:06 +02:00
Thomas Nagy 7d5f6e4a59
Process tsk.env.PATH as lists or strings 2016-06-17 07:34:11 +02:00
Thomas Nagy 98f495bda1
Simplify manifest file processing 2016-06-16 21:39:50 +02:00
Thomas Nagy f18d481e75
No need to wrap fc/c/cxx classes for manifest processing 2016-06-16 21:07:40 +02:00
Thomas Nagy 73384b11f4
Dead code removal 2016-06-16 21:02:24 +02:00
Thomas Nagy d50017f693
Have Task.exec_command add tsk.env.PATH to os.environ in the child process 2016-06-16 20:07:40 +02:00
Thomas Nagy dee0932fb0
No need to paste /Fo flags as the command system does not insert spaces anymore 2016-06-16 19:42:29 +02:00
Thomas Nagy 27b2c3b8c4
Task.exec_command already sets the cwd, no need to repeat it 2016-06-16 17:08:53 +02:00
Thomas Nagy 092712f001
Enable per-OS @argfile limits 2016-06-15 22:24:30 +02:00
Thomas Nagy 537d1fcd45
Simplify long command processing 2016-06-15 20:24:34 +02:00
Thomas Nagy 4a09e1943a
Workaround for #1756 2016-06-13 19:19:00 +02:00
fedepell d202190cd0 Fix: when using the ut_cmd or Option --testcmd, if the test command line has parameters (added for example with the ut_fun method as in the examples)
this will be lost as just ut_exec[0] was used. Now join the command line before using it in substition.
2016-06-12 23:59:07 +02:00
Thomas Nagy 7115404006
New public key 2016-06-12 22:40:50 +02:00
Thomas Nagy 605952fe92
Remove redundant warnings 2016-06-11 22:26:34 +02:00
Thomas Nagy 04df9202fb
Reduce Swig verbosity for #1755 2016-06-11 22:23:06 +02:00
fedepell 1986391d79 Fixes #1748 : doxygen convert EXCLUDE_PATTERNS occourences of */ in **/ as internally globs are used 2016-06-05 22:11:18 +02:00
fedepell 32bd21a77f qt5: Fix usage examples as libraries in qt5 are named QT5XXX and not QTXXX as in qt4 (ie. QT5WIDGETS instead of QTWIDGETS) 2016-06-05 22:10:38 +02:00
Thomas Nagy f71fe257ff
Make c_preproc.filter_comments a method so that it is easier to override 2016-06-05 00:53:25 +02:00
Thomas Nagy 88f8da4af1
msvc test 2016-06-05 00:39:04 +02:00
Thomas Nagy e8ef5a89eb
More cleanup 2016-06-05 00:23:57 +02:00
Thomas Nagy 75b1423ce8
Winrc processing is almost certainly broken... 2016-06-05 00:01:01 +02:00
Thomas Nagy 062a5263a0
Update conf.check_waf_version to 1.9 2016-06-04 09:33:13 +02:00
fedepell e64061f6d2 DOXY_FILE_PATTERNS is generated as a string but then used as an array when using the RECURSIVE option, therefore the generated patterns for files to be searched are wrong. Convert it into an array with split() therefore to have correct patterns. 2016-06-04 08:51:09 +02:00
Thomas Nagy 18044bddfe
One more Python version for the test suites 2016-05-31 22:41:12 +02:00
Thomas Nagy a4c64c1731
Docs 2016-05-30 22:31:44 +02:00
Daniel Bartel fb68af3544 fix comment regarding commandline options 2016-05-30 21:26:14 +02:00
Thomas Nagy ae243dd23b
Fix waflib/extras/syms.py 2016-05-29 16:58:41 +02:00
Thomas Nagy 5526a71695
Update batched_cc for waf 1.9 2016-05-29 16:45:42 +02:00
Thomas Nagy 6665a6ebdd
Update waflib/extras/stale.py 2016-05-29 14:11:05 +02:00
Thomas Nagy 02a8361149
Beautify Logs.{debug,error,info,warn} now that the formatting bug is fixed 2016-05-28 16:18:51 +02:00
Thomas Nagy 8407845787
Provide a showcase for print_commands.py and remove some old code 2016-05-28 16:05:00 +02:00
Thomas Nagy a615bb56c1
Use the info/error parameters 2016-05-28 15:11:58 +02:00
Thomas Nagy 8fcd30dcc8
Subclasses should not provide incompatible constructors 2016-05-28 14:51:44 +02:00
Thomas Nagy 34bad1498f
Remove the preforks since we already have a version with subprocesses in Utils.py 2016-05-27 18:59:40 +02:00
Thomas Nagy a2b7c639e8
cleanup 2016-05-27 18:23:04 +02:00
Juan Alday a5a0a81abb Fixes missing backslash for REG_PYTHON_DIR 2016-05-25 07:43:25 +02:00
Thomas Nagy 6574fd7e40
waf 1.9.0 p3 2016-05-23 22:08:57 +02:00
Thomas Nagy d3471d6171
Adjustments for the msvc configuration structure changes 2016-05-22 18:39:44 +02:00
Thomas Nagy c3af6e3fad
Simplify the data structures in msvc.py 2016-05-22 18:27:57 +02:00
Thomas Nagy 1eb45162b1
Bind setup_msvc and setup_ifort as configuration methods 2016-05-22 17:11:29 +02:00
Thomas Nagy 9c44a4b360
Remove print_all_msvc_detected 2016-05-22 17:10:21 +02:00
Thomas Nagy 315d94ec24
Typo conf->self 2016-05-22 17:06:53 +02:00
Thomas Nagy 0c945f9e0a
Simplifications 2016-05-22 16:57:22 +02:00
Thomas Nagy 25fc153658
Improve ifort logging 2016-05-22 16:48:14 +02:00
Thomas Nagy 201118736e
Error handling simplifications 2016-05-22 12:40:51 +02:00
Thomas Nagy 76c9d3356b
Remove msvc.get_compiler_env which does not get anything 2016-05-22 12:12:32 +02:00
Thomas Nagy c46ffd1a4a
Typo 2016-05-22 12:09:46 +02:00
Thomas Nagy e3d1da421f
Remove one level of object nesting in msvc configuration 2016-05-22 12:04:23 +02:00
Thomas Nagy dbad47244b
Cleanup 2016-05-22 11:15:00 +02:00
Thomas Nagy bae3e35af5
Cleanup 2016-05-22 10:58:24 +02:00
Thomas Nagy 56b84dc5a5
Cleanup 2016-05-22 03:13:28 +02:00
Thomas Nagy 15985db73d
Refactor ifort.py like msvc.py 2016-05-22 03:07:44 +02:00
Thomas Nagy 7fadda584a
Add a __repr__ method for MSVC_INSTALLED_VERSIONS 2016-05-22 02:50:02 +02:00
Thomas Nagy df6e88f2f5
Typo 2016-05-22 02:45:12 +02:00
Thomas Nagy 929f89c0bb
Simplify msvc.py 2016-05-22 02:43:35 +02:00
Thomas Nagy 67e7db41d9
Simplification x=x+1 -> x+=1 2016-05-22 00:45:47 +02:00
Thomas Nagy d3a3b23b13
Add a build function to the 'install' tests for consistency 2016-05-21 12:13:19 +02:00
Thomas Nagy 75a011f81c
docs 2016-05-21 12:08:28 +02:00
Thomas Nagy ab9609c0d8
docs 2016-05-21 12:01:48 +02:00
Thomas Nagy c2646d2380
Provide md5_tstamp by default and make it easier to add more persistent BuildContext dicts 2016-05-21 11:58:47 +02:00
Thomas Nagy f876392200
Must call os.remove on files 2016-05-21 01:15:19 +02:00
Thomas Nagy a079b50df1
Add more installation tests 2016-05-21 00:40:49 +02:00
Thomas Nagy 09fd2f211f
Ensure Node.delete can remove invalid folders 2016-05-21 00:39:56 +02:00
Thomas Nagy e09a32467f
Fix install_files in the case relative_trick=True 2016-05-20 19:20:54 +02:00
Thomas Nagy 5eaf7aee1b
Simplification 2016-05-18 22:02:47 +02:00
Thomas Nagy 74e54322c5
Use try-else-finally in Python >= 2.5 2016-05-18 22:01:37 +02:00
Thomas Nagy 3f38b9d2b8
Logic simplification 2016-05-18 21:34:23 +02:00
Thomas Nagy 3c5be88550
Better names for install task method and compatibility fix for install_task.dest 2016-05-18 19:43:14 +02:00
Thomas Nagy fd05cff103
Missing installation fixes 2016-05-17 19:49:44 +02:00
Thomas Nagy 5cb7b89ac1
typo 2016-05-16 20:11:00 +02:00
Thomas Nagy 26b370f440
Remove a few more 'Exception:' lines 2016-05-14 12:15:15 +02:00
Thomas Nagy 158bc72e8e
Remove the old shutil.copy override on Windows 2016-05-14 11:29:06 +02:00
Thomas Nagy 12c7609802
Removed some dead code 2016-05-14 00:16:29 +02:00
Thomas Nagy 9a5b0e41ac
Fix waf step 2016-05-13 23:24:02 +02:00
Thomas Nagy 62f8b482ab
Code simplifications 2016-05-13 23:20:07 +02:00
Thomas Nagy da5c7d8b5c
Moved unnecessary constants out of Context.py 2016-05-11 21:59:16 +02:00
Thomas Nagy 441ed98a3d
Better error messages in Qt5 2016-05-09 22:33:01 +02:00
Thomas Nagy a8ef298191
More tests 2016-05-07 00:09:20 +02:00
Thomas Nagy 12cbb42cd7
docs 2016-05-06 23:22:55 +02:00
Thomas Nagy 145dba3fd1
Unused variable 2016-05-06 20:59:40 +02:00
Thomas Nagy 3fb226c994
Use the build command in configuration tests (hard-coded BuildContext class) 2016-05-06 20:57:53 +02:00
Thomas Nagy 226c2b1d94
Set install_to from the add_install_task 2016-05-06 20:56:36 +02:00
Thomas Nagy b1f5c0f814
Create installation tasks directly
Task generators created from other task generators may be
skipped during partial builds. This change re-enables
install_task as a task attribute and provides a task
object with input and output nodes which can be re-used
by other tasks.
2016-05-06 15:54:36 +02:00
Thomas Nagy 5511593318
Move boring Build.inst construction details to the class 2016-05-06 11:12:54 +02:00
Thomas Nagy 9991004343
Extract Build.inst.run_now 2016-05-06 09:57:01 +02:00
Thomas Nagy 20b62a4eea
docs 2016-05-06 09:11:31 +02:00
Thomas Nagy 6c21deb583
install_task -> install_tg 2016-05-03 23:14:10 +02:00
Thomas Nagy 16082a4c3e
docs 2016-05-03 21:27:15 +02:00
Thomas Nagy da389364c5
docs 2016-05-02 23:31:31 +02:00
Thomas Nagy 4c05587684
Docs 2016-05-01 21:21:04 +02:00
Thomas Nagy b70692dbb3
Add a configuration test to add /usr/local/lib in linkflags on FreeBSD 2016-05-01 17:03:55 +02:00
Thomas Nagy 568cd6881d
Set the Qt5 search path on FreeBSD 2016-05-01 16:21:23 +02:00
Thomas Nagy e7aa8349be
Changed the moc_foo.cpp file name to moc_foo.n.cpp to protect against name clashes 2016-05-01 14:49:55 +02:00
Thomas Nagy ae8253f571
Process Qt files according to the Qt documentation 2016-05-01 14:21:46 +02:00
Thomas Nagy 6b2e837bc2
Issue 1726 2016-05-01 13:21:06 +02:00
Thomas Nagy 5a35d6c105
Add a Qt5 example 2016-05-01 12:02:58 +02:00
Thomas Nagy eb62ce7620
Set post_mode=POST_LAZY by default to process the next build groups once build files are present 2016-04-30 15:10:16 +02:00
Thomas Nagy a7dac255af
Fix an error in the progress bar 2016-04-30 14:24:46 +02:00
Thomas Nagy 80109eacbe
Improve error handling in the case of missing implicit dependencies
Avoid calling are_implicit_nodes_ready() twice.
Stop the build when files are missing or truncated.
Provide a better error message and avoid catching all exceptions.
2016-04-30 13:35:08 +02:00
Thomas Nagy fdc67d58f6
Fix an undefined variable in parallel_debug 2016-04-28 20:25:04 +02:00
Thomas Nagy bf45d33f9e
Update parallel_debug 2016-04-28 20:14:02 +02:00
Thomas Nagy b59a04a086
Moved the garbage collection code to the object owner 2016-04-28 20:12:20 +02:00
Thomas Nagy 7e047a1284
stripping problems 2016-04-28 19:27:44 +02:00
Thomas Nagy d767afa32c
docs 2016-04-28 00:37:29 +02:00
Thomas Nagy 3e86ea6cb8
Fixed an accidental dependency on inst.dest 2016-04-28 00:33:34 +02:00
Thomas Nagy dd81cb74dc
Pass the vala environment for installation (not modified so it should be fine) 2016-04-28 00:29:12 +02:00
Thomas Nagy 1eaa87413d
Refactor bld.install_as/bld.install_files/bld.symlink_as to use actual task objects 2016-04-28 00:23:54 +02:00
Thomas Nagy 09f67a3b3a
Remove the private Scripting._can_distclean function 2016-04-27 18:42:38 +02:00
Thomas Nagy bc3915c90a
Close process.py for running processes - Issue 1735 2016-04-27 18:35:02 +02:00
Thomas Nagy e77b8dc24b
Catch errors in format_defines 2016-04-26 19:38:19 +02:00
Thomas Nagy 8b32d93ec3
cleanup: '%s' -> %r 2016-04-26 19:35:46 +02:00
Thomas Nagy ba1932ebc2
Do not define the empty prec object on task_gen instances by default 2016-04-26 19:22:56 +02:00
Thomas Nagy 508b20679d
Do not truncate _task suffixes from Task class names 2016-04-26 18:33:03 +02:00
Thomas Nagy 0ba6b042d5
Remove mac_resources processing, use mac_files instead 2016-04-25 22:35:58 +02:00
Thomas Nagy 304935bb9f
Remove popitem() which was added for the lru cache 2016-04-23 23:02:16 +02:00
Thomas Nagy 9133dbc5c9
Cleanup: no need for keys() everywhere 2016-04-22 21:10:22 +02:00
Thomas Nagy 59b6c757e9
Docs 2016-04-22 19:54:42 +02:00
Thomas Nagy 3899c150e3
Provide a more performant LRU cache implementation 2016-04-22 19:43:18 +02:00
Thomas Nagy d2cd1ebd0b
Provide our own version of ordered_iter_dict
Python OrderedDict does not provide a C implementation, so it
is just best to use our own implementation by default.
We also want the iteration order from the end for the purposes
of matching files by extension.
2016-04-22 19:36:35 +02:00
Thomas Nagy 44db1efc02
Enable regexp objects in @extension besides strings for file extensions 2016-04-22 19:27:22 +02:00
Thomas Nagy b0954282e9
Remove the -DDLL_EXPORT flag which was added by default to fortran link on windows platforms 2016-04-21 22:37:27 +02:00
Thomas Nagy b87a761ead
Tuples in startswith/endswith (Python 2.5 feature) 2016-04-21 22:30:35 +02:00
Thomas Nagy d2ba87b296
Duplicate code 2016-04-21 22:12:39 +02:00
Thomas Nagy 8520dd65bb
Code cleanup 2016-04-19 22:00:21 +02:00
Thomas Nagy 8114914e62
Colorgcc for other compilers? Issue 1732 2016-04-19 21:47:59 +02:00
Thomas Nagy fd2981f91f
Remove Task.dep_vars as it is unnecessary 2016-04-16 13:05:27 +02:00
ita1024 2be642017f Merge pull request #1730 from shoover/msvc-lazy
Enable lazy Visual Studio detection by default: one missed spot.
2016-04-15 22:50:57 +02:00
Shawn Hoover ac3a332b03 Enable lazy Visual Studio detection by default: one missed spot. 2016-04-15 13:41:53 -04:00
Thomas Nagy 6aaae99afe
cleanup 2016-04-15 18:17:26 +02:00
Thomas Nagy fa8d8e2b45
Typo in platform_toolset_ver 2016-04-12 22:06:08 +02:00
James Harris 10a6e27872 Add PlatformToolset ver. to msvs proj template
This patch adds support for an easier syntax for customizing which
version of Visual Studio msvs.py targets. It also allows users to
specify the PlatformToolset property on projects generated by waf. This
is necessary in order to properly generate projects for newer versions
of Visual Studio such as 2013 and 2015.

Example Syntax:

To generate a solution targeted at visual studio 2013 use the following
example:

```Python
class msvs_2013(msvs.msvs_generator):
    cmd = 'msvs2013'
    numver = '13.00'
    vsver = '2013'
    platform_toolset_ver = 'v120'
```

This will populate the associated fields correctly for msvs 2013.
2016-04-12 19:06:41 +02:00
Thomas Nagy bd76420613
Waf 1.9 preview 1 2016-04-11 23:54:15 +02:00
Thomas Nagy e35d3628d2
Add EnvContext to simplify configuration-dependent command definition 2016-04-11 23:28:33 +02:00
Thomas Nagy e0080e9f58
Identify java tasks more accurately and add build order on non-jar tasks - Issue 1725 2016-04-11 00:08:20 +02:00
Thomas Nagy aeed691829
Fun with conditional expressions 2016-04-08 18:37:09 +02:00
Thomas Nagy 102a345eb0
One more configuration test 2016-04-06 21:58:09 +02:00
christophe.duvernois 49ed1e0c0a java tool : allow manifest to be a node 2016-04-05 19:23:32 +02:00
Thomas Nagy 2c06f0acd6
Simplification 2016-04-05 19:22:54 +02:00
Thomas Nagy d7a295ab0f
Simplification m.group(0) -> m.group() 2016-04-04 22:18:28 +02:00
Thomas Nagy e8cf059004
Do not strip / from conf.check(x=, uselib_store=Y) stored arguments 2016-04-04 19:00:31 +02:00
Thomas Nagy 06cb261cd2
More config tests 2016-04-03 13:41:24 +02:00
Thomas Nagy 61d1bd74ee
More config tests 2016-04-03 13:30:03 +02:00
Thomas Nagy a1a24c8456
Use define_name in check_cfg(define_name=, global_define=1) 2016-04-03 13:20:42 +02:00
Thomas Nagy e790f6d40f
Added a deprecation warning for the case conf.check_cfg(atleast_version=) 2016-04-03 12:40:00 +02:00
Thomas Nagy 89d5b5462f
Enable define_name in conf.check(modversion=,define_name=) 2016-04-03 12:09:22 +02:00
Thomas Nagy c0c0da2e92
Set DEFINES=[X=1] with conf.check_cfg(define_name=X) to override the defaults 2016-04-03 11:42:59 +02:00
Thomas Nagy 00c955d8fa
Option for adding HAVE_X to conf.env - conf.check(add_have_to_env=1) 2016-04-03 11:08:00 +02:00
Thomas Nagy cf9330a371
Remove Context.__hash__ 2016-04-01 23:27:46 +02:00
Thomas Nagy ee0778a76f
Extra parenthesis around assert message 2016-04-01 23:14:26 +02:00
Thomas Nagy 41dcf329b0
Include any symlink in dist archives - Issue 1719 2016-03-31 22:10:47 +02:00
Thomas Nagy 8717fa791f
outstanding.insert -> outstanding.append_left 2016-03-31 07:42:08 +02:00
ita1024 a0bd260957 Merge pull request #1721 from mclayton7/waf-1.9
Fix qt4.py to use deque instead of list
2016-03-31 07:36:28 +02:00
Mac Clayton 19dc72e16d Fix qt4.py to use deque instead of list 2016-03-30 19:04:57 -05:00
Thomas Nagy bd255ce641
Missing TaskBase.uid() method 2016-03-30 23:01:46 +02:00
Thomas Nagy c2361d54bd
Removed TaskBase.attr as it is never used 2016-03-30 21:17:26 +02:00
Thomas Nagy c81e7548f1
A few more tests 2016-03-28 22:40:15 +02:00
Thomas Nagy c563396afe
Do not add defines to config.h when global_define is 0 2016-03-28 17:49:27 +02:00
Thomas Nagy 6089893e40
Simplify the assignment of configuration test execution to defines 2016-03-28 16:19:36 +02:00
Thomas Nagy 9fd2683095
Let conf.check/conf.check_cfg set HAVE_x in config.h by default 2016-03-28 16:16:30 +02:00
Thomas Nagy 1eaa5e7a0f
parse_flags code cleanup 2016-03-28 14:46:29 +02:00
Thomas Nagy b585594d4d
For consistency, cast HAVE_X to integer values 2016-03-28 09:59:24 +02:00
Thomas Nagy c917e1af63
Remove empty entries in windows path splitting 2016-03-27 21:41:21 +02:00
Thomas Nagy 1ebb318ec0
find_node returns Nodes that exist, no need to verify again 2016-03-27 21:29:02 +02:00
Thomas Nagy 6579592065
re_cpp matches are never empty 2016-03-27 19:25:12 +02:00
Thomas Nagy 51b68cf13b
New --profile command-line option 2016-03-25 14:20:57 +01:00
Thomas Nagy 31742bd06d
Remove old fixes for Python < 2.3 2016-03-25 14:02:36 +01:00
Thomas Nagy 026bae9601
Reduce the amount of function calls in include extraction 2016-03-25 13:30:32 +01:00
Thomas Nagy df7fc838ce
Do not capture unused regexp groups 2016-03-25 12:56:25 +01:00
Thomas Nagy 5d8d7bf700
Save a few function calls in waflib/Tools/c_preproc.py 2016-03-25 12:22:00 +01:00
Thomas Nagy ca01ddb83a
Removed an unused variable in Task.py 2016-03-25 12:03:45 +01:00
Thomas Nagy 3cbd029cc9
Task.sig_vars, Task.sig_explit_deps and Task.sig_implicit_deps return None 2016-03-25 11:50:32 +01:00
Thomas Nagy a64a8d1d29
Extend relative cwd processing to Task generators 2016-03-23 22:28:14 +01:00
Gustavo Jose de Sousa d46f541099 Use stash/revert/commit pattern for transactional configuration
Apply that pattern when relevant. That allows correct behavior if tools are
loaded inside a transaction.
2016-03-22 08:05:53 +01:00
Thomas Nagy 85e403516c Issue 1632 2016-03-19 18:14:08 +01:00
Gustavo Jose de Sousa b5584470f9 Add commit() method to ConfigSet
That allows users to use nested transactions.
2016-03-19 15:22:09 +01:00
Thomas Nagy e8bf2731d1
Increase the default cache size for c_preproc 2016-03-19 15:18:16 +01:00
Thomas Nagy dc1a0d00a2
Docs 2016-03-19 14:47:10 +01:00
Thomas Nagy a08aff6bff
Format debug/info records lazily 2016-03-19 14:46:22 +01:00
Thomas Nagy d62767e561
Add Node.isdir and remove cache_isdir optimizations for the time being 2016-03-19 14:21:02 +01:00
Thomas Nagy 555507975d
Rewrite ConfigSet._get_list_value_for_modification 2016-03-19 10:26:42 +01:00
Thomas Nagy d54622e341
Simplification: remove Configure.err_handler 2016-03-18 19:54:31 +01:00
Thomas Nagy 7960f19cb1
Fix for extra lines in windows logs - Issue 1715 2016-03-18 19:32:10 +01:00
Thomas Nagy 1fb3645493
Simplifications 2016-03-18 18:26:25 +01:00
Thomas Nagy 017d8fd39e
Use relative paths in apply_incpaths by default
Relative paths are usually best for for specialized compilers (emscripten),
so this is for convenience. Absolute paths are usually faster.
2016-03-17 22:56:34 +01:00
Thomas Nagy ddead0ed59
Simplification: use dict.update() 2016-03-16 23:01:49 +01:00
Thomas Nagy b63ae9b2ef
Code simplification 2016-03-16 22:37:18 +01:00
Thomas Nagy e19c0e7e77
Simplification, no need to use item ids anymore 2016-03-16 20:11:24 +01:00
Thomas Nagy 0970eb86cb
docs 2016-03-15 22:06:10 +01:00
Thomas Nagy 5bf2132211
docs 2016-03-15 19:26:31 +01:00
Thomas Nagy 381337357e
docs 2016-03-13 09:17:09 +01:00
Thomas Nagy 83c237ffe0
Redundant repr() call 2016-03-12 12:35:09 +01:00
Thomas Nagy d81dfac34e
docs 2016-03-12 12:32:27 +01:00
Thomas Nagy 89ac2f0215
Issue 1594 2016-03-09 22:25:52 +01:00
Thomas Nagy d45b8447a8
docs 2016-03-08 21:28:20 +01:00
Thomas Nagy e6bb4693cb No need for update_outputs in waf 1.9 2016-03-08 19:18:18 +01:00
Thomas Nagy b08125520f
Remove waf.asc after producing a signed waf file 2016-03-08 19:16:49 +01:00
Thomas Nagy 42622a6e52
Do not cache Waf tools in configure 2016-03-07 23:38:14 +01:00
Thomas Nagy 3cac9c7077
Node objects can be folders too, but dependencies must be managed manually 2016-03-07 21:12:51 +01:00
Thomas Nagy 6768a4cb38
Unbind task.last_cmd when the command is successful 2016-03-06 17:23:24 +01:00
Thomas Nagy 0484caf3d6
docs 2016-03-06 13:19:14 +01:00
Thomas Nagy 333aec0b96
Removed Utils.nogc as it is unused 2016-03-05 11:45:16 +01:00
Thomas Nagy b95db27d05
Micro-optimization 2016-03-05 11:05:43 +01:00
Thomas Nagy 64af7a67bb
clang quirks - Issue 1714 2016-03-04 19:23:14 +01:00
Thomas Nagy a8a918763f
Missing output with -j1 2016-03-03 23:36:18 +01:00
Thomas Nagy 028ecf43df
Workaround for unreadable home folders 2016-03-01 22:45:39 +01:00
Thomas Nagy 0ab704f5a4 Minor optimization in Utils.h_list 2016-02-29 18:40:44 +01:00
Thomas Nagy b4437f3b51
Exception handling enhancements 2016-02-28 14:23:54 +01:00
Thomas Nagy 3ced4c6695
Utils.ex_stack is the same as traceback.format_exc as we are no longer on Python 2.3 2016-02-28 12:23:18 +01:00
Thomas Nagy 08a39b7b19
Ironpython does not have += on deques 2016-02-28 11:37:00 +01:00
Thomas Nagy 126fc7e4b4
Missing piece of code 2016-02-28 11:30:18 +01:00
Thomas Nagy 1524d74301
Missing line 2016-02-28 10:34:32 +01:00
Thomas Nagy df956ed5c5
Better task cleanup logic 2016-02-28 10:13:03 +01:00
Thomas Nagy 248d89e85b
Use deques 2016-02-28 10:01:43 +01:00
Thomas Nagy 220ac6de5e
Pre-fork processes for Python2 2016-02-28 00:12:50 +01:00
Thomas Nagy 9dbcc4274b
Fixed the broken logic in process execution 2016-02-27 09:37:04 +01:00
Daniel Bartel 015f522fb3 add option for line length to cpplint 2016-02-26 23:11:37 +01:00
Thomas Nagy 1f95d2c4cb
Popen objects provide pid (not getpid) 2016-02-26 21:23:49 +01:00
Thomas Nagy 5bf16d51d8
Lockless list of processes 2016-02-26 21:09:50 +01:00
Thomas Nagy 0ce499c24c Revert "Make D dependency scanner aware of package.d files"
This reverts commit a61528efc3.
2016-02-26 21:05:13 +01:00
Alexander Afanasyev b99a82ddfe Boost module enhancements and fixes
- Output detected version of boost in dot-form (e.g., 1.56.0, instead of 1_56)
- Fix Boost.Log library detection:
  * when linking to shared library, BOOST_LOG_DYN_LINK needs to be defined
  * when linking to non-multithreaded version, BOOST_LOG_NO_THREADS needs to be defined

  (see http://www.boost.org/doc/libs/1_60_0/libs/log/doc/html/log/installation/config.html)
2016-02-26 21:04:50 +01:00
Thomas Nagy 1ee5adc3b3
Error handling enhancements 2016-02-26 20:11:58 +01:00
Thomas Nagy f56f22bb50
Prefix by # to have the artifacts at the root of the build directory 2016-02-26 19:25:23 +01:00
Thomas Nagy d131a37ac9
No new processes needed on IronPython 2016-02-26 18:52:43 +01:00
Thomas Nagy 75e9735a22
Python3 fixes 2016-02-26 18:36:38 +01:00
Thomas Nagy 023c540b80
Simplifications - child processes will exit on broken pipes 2016-02-25 22:58:11 +01:00
Thomas Nagy e0b080b7c6
Jython fix 2016-02-25 22:28:00 +01:00
Thomas Nagy b2bcee43cb
Python 3 fixes 2016-02-25 21:53:17 +01:00
Thomas Nagy 8207a878a9
Enable multiprocessing for faster subprocess execution 2016-02-25 20:03:07 +01:00
Thiago da Silva Andrade Soares =^.~= 4bea5a28ae Cppcheck tool - Fix creation of invalid command on windows
The following error occurring when we try to run the cppcheck tool on windows.
As we see in the error message, the command is not well formed.

WafError:
    Command "['C:\\\\Program Files (x86)\\\\Cppcheck\\\\cppcheck.exe'] --inconclusive --report-progress --verbose --xml ..."
returned 1
2016-02-24 21:53:15 +01:00
Thomas Nagy e176101c8c
Nicer configuration message on ruby detection 2016-02-24 07:16:04 +01:00
Thomas Nagy df8e144631 Smarter detection of programs passed to the command-line 2016-02-23 22:59:29 +01:00
Thomas Nagy 9147e9128a
Cleanup: unnecessary semicolons in Python code 2016-02-19 23:26:40 +01:00
Thomas Nagy a02a0b54b3
Limit caching unnecessary data in preproc.py 2016-02-19 23:26:19 +01:00
Thomas Nagy 589a99fca3
Exit status must be non-zero when tests fail 2016-02-19 22:29:01 +01:00
Thomas Nagy 2d89937205
-DFOO in compiler commands - Issue 1704 2016-02-18 21:56:02 +01:00
Thomas Nagy 7e16c7cb1e
Removed bld.returned_tasks 2016-02-15 23:52:11 +01:00
Thomas Nagy 0bafa590f3
Trim less in lru_cache 2016-02-15 23:23:34 +01:00
Thomas Nagy 31381f9b63
Cache Node signatures on the context level 2016-02-15 23:04:30 +01:00
Guillaume Poirier-Morency c4bfce0fe7 vala: Initialize 'VALAFLAGS' with OS flags 2016-02-15 21:54:35 +01:00
Thomas Nagy 0441d01545
Added the missing __getitem__ method on lru_cache 2016-02-15 21:13:48 +01:00
Thomas Nagy 4e09a1bc5a
New lru caches in preproc.py to limit memory overconsumption 2016-02-15 00:46:44 +01:00
Thomas Nagy 22fae4ebef
From now on, ensure that buildcontext classes have a producer 2016-02-15 00:46:39 +01:00
Thomas Nagy 4be840bd7a
Reduced Task size (~700B/task) 2016-02-15 00:46:35 +01:00
Thomas Nagy 2897bcfd81
Reduced Task size (~600B/task) 2016-02-15 00:46:27 +01:00
Thomas Nagy 6bbcce206b
Better value for Utils.SIG_NIL 2016-02-14 11:15:52 +01:00
Thomas Nagy 437bfda8d1
Use waflib.Build.SAVED_ATTRS for serialization and initialization
The purpose is to make it easier to serialize additional dicts
on BuildContext instances.
2016-02-14 11:10:38 +01:00
Thomas Nagy 6c372e24fc
Issue 1701 - cpplint 2016-02-13 00:21:37 +01:00
Guillaume Poirier-Morency 70e49cc038 valadoc: Include the '--vala-target-glib' flag 2016-02-12 07:21:28 +01:00
SirNickolas a61528efc3 Make D dependency scanner aware of package.d files 2016-02-11 21:43:32 +01:00
Thomas Nagy 5580e8c69f
Use subprocess32 when possible 2016-02-10 23:46:55 +01:00
Thomas Nagy 70df345c3f
Use the lru implementation when present (Python3) 2016-02-10 23:42:30 +01:00
Thomas Nagy 82b3ade500
Clear the c dependency scanner cache to prevent excessive memory consumption 2016-02-10 00:07:07 +01:00
Thomas Nagy 29cd350170
Use Node.exists when possible 2016-02-09 22:12:39 +01:00
Thomas Nagy f1f2e8f8bc
Slightly better error message for inexisting nodes 2016-02-09 22:05:12 +01:00
Thomas Nagy 6124ee6975
Removed an old and unnecessary wrapper for objects in deps_man 2016-02-09 22:03:20 +01:00
Thomas Nagy f7ed95d60e
Missing configuration files should raise an instance of WafError 2016-02-08 22:41:12 +01:00
Thomas Nagy 6d6222bc18
Unnecessary variable duplication 2016-02-06 13:03:43 +01:00
Kenneth Zhao b8a1675123
Add SUN cc compiler version 5.0 2016-02-04 07:23:34 +01:00
Guillaume Poirier-Morency 8c8b0d8f0b
Apply 'Utils.to_list' on 'vala_defines' and include it in 'valadoc' tool 2016-02-04 07:23:10 +01:00
Jérôme Carretero bc80ea97ae waflib: extras: rst: update scan to provide dependent directive type 2016-02-01 21:59:59 -05:00
Jérôme Carretero c923c31031 extras: rst: extend parse_rst_node() 2016-01-30 13:07:29 -05:00
Thomas Nagy 2999a120a1
Missing cwd handling in exec_command 2016-01-30 16:59:35 +01:00
Thomas Nagy 361e4b7730
Enable vnum for libraries created in the source directory 2016-01-30 11:39:18 +01:00
Thomas Nagy 5b82ce528c
No more 'missing node signature' errors 2016-01-28 22:45:37 +01:00
Thomas Nagy c0cfbd6a36
docs 2016-01-27 23:54:35 +01:00
Thomas Nagy 12114e3429
typo 2016-01-27 23:53:23 +01:00
Thomas Nagy e10998ff54
Solution file generation example 2016-01-26 20:00:07 +01:00
Ivan Tubert-Brohman 9a7381b20e
No-op in netcache run/post_run if nocache is true
When a task class has a true value for the nocache attribute,
setup_nocache doesn't decorate the run() and post_run() methods of the
class. In most cases, however, that's not enough to disable caching
because the base Task class is still modified; any class based on Task
which doesn't override these methods will still use caching even if it
sets nocache to True. This is solved by having the decorated versions of
run() and post_run() do nothing except call the original version of the
method when the task object has a true value for self.nocache.
2016-01-25 20:40:52 +01:00
Ivan Tubert-Brohman 2a7e0de018
Do chmod in netcache post_run
This ensures that, for example, executable files that are fetched from
the cache end up with the right permissions.
2016-01-25 20:21:15 +01:00
Thomas Nagy 4dac0ea283
Do not include waflib.zip in 'waf dist' results 2016-01-24 23:51:58 +01:00
Thomas Nagy a8896c57a5
New option to create a waf file that takes its file list from a model archive 2016-01-24 11:38:10 +01:00
Thomas Nagy 5626104770
cleanup 2016-01-22 20:05:54 +01:00
Haakon Sporsheim f9e78b0225 c_config: Add xtensa as a known CPU. 2016-01-21 22:53:08 +01:00
Thomas Nagy a255ba93c6
Cleanup 2016-01-20 20:21:41 +01:00
Thomas Nagy 3f2e58b1a3
Disable verbose and mangling configuration tests with Intel Fortran 2016-01-20 18:19:07 +01:00
Harald Klimach df7d5669f0 Added export definitions for typemap in the demos/fortran project. 2016-01-20 17:40:42 +01:00
Thomas Nagy cbaab2f1b0 Circular dependencies may require passing the same library several times to the linker 2016-01-20 17:40:08 +01:00
Thomas Nagy aac6e800eb
Import libraries for Intel Fortran 2016-01-20 00:12:42 +01:00
Thomas Nagy 872f77f8b5
Build fcprogram_test with Intel compiler 2016-01-19 21:08:48 +01:00
Harald Klimach d00b90986c Set FC_NAME also in find_ifort_win32. 2016-01-18 21:57:01 +01:00
Thomas Nagy 22e150e0cb conf.check(..., comment='some text') to help with large config.h files 2016-01-17 17:02:10 +01:00
Thomas Nagy 05a15b229e
Code cleanup 2016-01-17 14:32:23 +01:00
Thomas Nagy 8ffbb6db0a
Code cleanup 2016-01-17 14:25:57 +01:00
Thomas Nagy 139b3f7a05
Unused variable LINK 2016-01-17 03:55:19 +01:00
Thomas Nagy e91fbe2d1b
Intel Fortran manifest files 2016-01-17 03:27:30 +01:00
Thomas Nagy 66009e5777
Intel Fortran detection on Windows 2016-01-17 02:30:41 +01:00
Thomas Nagy 7a93e7e443 Added the windows Intel Fortran flags from Harald's branch 2016-01-16 22:50:14 +01:00
Thomas Nagy 101dc83283 Detect newer sun compilers Issue 1686 2016-01-16 21:18:08 +01:00
Thomas Nagy 5b0e88adeb
Changed the cwd - working folders must be given as node objects 2016-01-16 13:03:09 +01:00
Thomas Nagy a167bcce5f
Better error message 2016-01-15 23:53:17 +01:00
Bálint Aradi d1ebc6f308 Fixing version flag for NAG compiler. 2016-01-15 00:14:37 +01:00
Thomas Nagy adc1ce1375
Simplification: added Task.get_cwd() 2016-01-11 05:25:46 +01:00
Thomas Nagy 85157243c4
Version number for waf 1.9 2016-01-11 03:20:07 +01:00
Thomas Nagy c016a5761e Missing variable dependency in compile_fun_shell for 2016-01-11 03:10:50 +01:00
Thomas Nagy b716d1ffb2
Docs, #1682 2016-01-07 15:27:54 +01:00
Thomas Nagy b9c41afdbc
docs 2016-01-06 18:33:03 +01:00
Thomas Nagy 47196bf688
docs 2016-01-06 18:27:47 +01:00
Thomas Nagy 331dd9f96c
Commands executed without a shell will merge flags of the form 2016-01-06 17:53:55 +01:00
Thomas Nagy d23490287a
Code simplifications - use enumerate 2016-01-06 14:53:18 +01:00
Harald Klimach 7541929609 Do not set the ARFLAGS unconditionally to rcs for ifort.
Instead, try invoke search for ar after looking for xiar.
2016-01-06 12:38:31 +01:00
Thomas Nagy 3430e18205
New option in waf_unit_tests --clear-failed - Issue 1678 2016-01-05 15:20:56 +01:00
Thomas Nagy 25ce2ac6da
docs - the latest cpython version we know of is 3.5 2016-01-03 13:47:53 +01:00
Thomas Nagy 69e51290fd Made this project build on Linux 2016-01-03 06:54:21 +01:00
Thomas Nagy 8083205b81 Additional merges from #1666 2016-01-03 05:08:10 +01:00
Thomas Nagy 43e26b5bef
cwd must be a Node object 2016-01-02 01:54:52 +01:00
Thomas Nagy 7b26ce74d1
Updated the cwd logic in glib2.py 2016-01-02 01:37:20 +01:00
Thomas Nagy e36420d68b
No chmod value for symlink_as at this time 2016-01-02 01:10:08 +01:00
Thomas Nagy 017d7a6257
Typo 2016-01-02 01:04:08 +01:00
Thomas Nagy da97d28d18
Fixed undefined variables 2016-01-02 00:58:38 +01:00
Thomas Nagy aa35adec74
docs: fixed 'document is not included in any toctree' 2016-01-02 00:56:33 +01:00
Thomas Nagy 2ebaf537c7
Removed the qt4 and kde4 modules from the apidocs 2016-01-02 00:50:21 +01:00
Thomas Nagy a3e014b0ae Enable lazy Visual Studio detection by default 2015-12-25 19:28:29 +01:00
Thomas Nagy 4111d559b4 docs 2015-12-25 18:06:18 +01:00
Thomas Nagy f73d3f1a2f Misleading attribute never_skip, replaced by always_run 2015-12-25 17:54:10 +01:00
Thomas Nagy 6aa1c74798 docs 2015-12-25 17:54:07 +01:00
Thomas Nagy ad2f3d420c Setting node signatures clears cached values if present 2015-12-25 17:54:02 +01:00
Thomas Nagy 4fdd8a520d Task cwd must be a node object 2015-12-24 23:10:56 +01:00
Thomas Nagy 8d3111235f Try to de-duplicate environment-provided flags such as CFLAGS or LINKFLAGS 2015-12-24 22:52:19 +01:00
Thomas Nagy d1fdf2f16a Removed the default include paths that were always added to vala 2015-12-24 22:49:22 +01:00
Thomas Nagy 2d36bfe7ff Removed the unused 'dummy' function from fc.py 2015-12-24 22:46:27 +01:00
Thomas Nagy 96a4487a57 New option to install files when symlinks are not possible 2015-12-24 22:45:27 +01:00
Thomas Nagy 5a3a89b4de Stop adding incompatible task data into the same dict objects 2015-12-24 18:36:48 +01:00
Thomas Nagy 6648d3e6e7 Docs 2015-12-24 18:36:45 +01:00
Thomas Nagy 06c7c09681 Provide node.exists() to increase filesystem abstraction 2015-12-24 18:36:42 +01:00
Thomas Nagy 72fda8ae36 Reduce the size of the build pickle file 2015-12-24 18:36:38 +01:00
Thomas Nagy ddaf29b78d Process CPPFLAGS at the end of commands 2015-12-23 19:26:34 +01:00
Thomas Nagy 281148b8eb Removed the old __eq__ and __hash__ which are not useful anymore in recent interpreters 2015-12-23 19:16:31 +01:00
Thomas Nagy e365a30215 Cache file hashes for performance reasons 2015-12-23 18:23:14 +01:00
Thomas Nagy 7681bddfb7 Remove Node.sig and Node.cache_sig 2015-12-23 17:55:44 +01:00
Thomas Nagy db31168eb6 New class attribute Task.never_skip to enable tasks to be always executed (the class decorator will be phased out) 2015-12-23 17:55:44 +01:00
Thomas Nagy 2ab00f7f49 Removed Node.cache_sig 2015-12-23 17:55:44 +01:00
Thomas Nagy 6ecd0d22c3 Let run_once process a list of arguments 2015-12-23 17:55:44 +01:00
Thomas Nagy 04449361e8 Detect clang first on FreeBSD, NetBSD, etc 2015-12-23 17:55:44 +01:00
Thomas Nagy e1d82be8a5 The tool kde4 is not included by default in waf 1.9 2015-12-23 17:55:44 +01:00
Thomas Nagy 972d8e4904 The tool qt4 is not included by default in waf 1.9 2015-12-23 17:55:44 +01:00
Thomas Nagy d3f788da4c Added the tool called 'nobuild' to help troubleshoot build scripts 2015-12-23 17:55:44 +01:00
Thomas Nagy b58a7d8057 Removed the command called 'update' 2015-12-23 17:55:44 +01:00
Thomas Nagy 8b74beb233 Removed the split functions from Node.py 2015-12-23 17:54:41 +01:00
ita1024 18449feb5e Merge pull request #1676 from haraldkl/master
Replaced spaces by tabs.
2015-12-23 16:10:41 +01:00
Harald Klimach c097fcc08a Replaced spaces by tabs. 2015-12-23 15:38:48 +01:00
ita1024 9b719ef150 Merge pull request #1675 from haraldkl/master
Regex change proposed by apthorpe
2015-12-23 15:34:08 +01:00
Harald Klimach 5c3a40d115 Loosened and simplified the regex for the version string of ifort as suggested by apthorpe 2015-12-23 15:28:43 +01:00
ita1024 f638a96f55 Merge pull request #1674 from haraldkl/master
Ignore error codes from cmd_and_log in getoutput for Fortran compilers
2015-12-23 15:20:07 +01:00
Harald Klimach f5cb7c9e2e Ensure the stdout and stderr attributes actually exist when capturing the
WafError in getoutput for the Fortran compilers.
2015-12-23 15:15:06 +01:00
Harald Klimach 2262f1009b Ignore error codes from cmd_and_log in getoutput that is used to obtain
the version string of Fortran compilers.
Some compilers will fail and return an error code if not provided with
a source file, yet they print the desired version string.
Thus, in case of an error code we ignore it here and just pass on the
stdout and stderr of the called subprocess.
2015-12-23 14:32:52 +01:00
Thomas Nagy 6132c8e055 Duplicate entry 'update' in default commands 2015-12-22 18:22:13 +01:00
Thomas Nagy a184a9e245 Experimental conf.define(key, val, comment='msg in config.h') 2015-12-20 14:26:14 +01:00
Thomas Nagy 95114ff205 wix.py - Issue 1666 2015-12-18 00:35:27 +01:00
Thomas Nagy bdca245588 Replace backslashes in resx.py - Issue 1666 2015-12-17 23:53:41 +01:00
ita1024 d368dee436 Merge pull request #1670 from MoSal/fix_1fbac66
c_config: Fix regression in exec_cfg() introduced in 1fbac66
2015-12-11 21:06:16 +01:00
Mohammad AlSaleh 6eb836e03d c_config: Fix regression in exec_cfg() introduced in 1fbac66
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
2015-12-11 21:52:38 +02:00
Thomas Nagy c618546130
docs 2015-12-09 00:52:48 +01:00
Thomas Nagy 41f005082f
Let msvc.py display encoding errors in the config.log file 2015-12-09 00:14:17 +01:00
Thomas Nagy 4293b8e19a
Compat - shorter version 2015-12-07 23:36:07 +01:00
Thomas Nagy d109ed4fc7
Additional fixes in extras/compat15.py 2015-12-05 14:00:56 +01:00
Thomas Nagy 8113778aab
Undefined name 'unicode' in the new json methods 2015-11-21 17:17:16 +01:00
Thomas Nagy 0e03aec82d
Unmask unicode errors in msvc - Issue 1657 2015-11-20 19:59:32 +01:00
Thomas Nagy eb5aeb8715
The json module is available only in Python 2.6, so the import cannot be on the top-level 2015-11-20 18:06:36 +01:00
ita1024 23ceb2262b Merge pull request #1659 from vcatechnology/node-read-json
Node JSON functions
2015-11-20 18:01:57 +01:00
Thomas Nagy 6c34e2a654
Force scanner functions to run after task failures - Issue 1660 2015-11-20 17:15:33 +01:00
Matt Clarkson 6c485625f4 Added a JSON example to the playground
The example reads a file as JSON, adds a key, then writes the new structure
to a JSON file in the build folder. The example accepts a '--pretty'
argument to output human readable JSON to the file.
2015-11-20 13:53:39 +00:00
Matt Clarkson 8b71e16989 Add Node.write_json()
Allows for a python object to be serialized to disk as JSON easily. By
default the function pretty prints the JSON which makes the file easily
human readable. A compact representation of the JSON can be done with
'pretty = False'
2015-11-20 13:52:26 +00:00
Matt Clarkson 2c617a42f8 Add a Node.read_json() function
This allows an easy way to read a JSON file into a python object. It, by
default, on Python2 converts all strings to normal strings. This is the
common use case for simple JSON files. Files that have UTF8 codepoints
over the normal ASCII range can use the 'convert = False' argument.
2015-11-20 13:51:11 +00:00
Thomas Nagy a46cb274a7
Intel fortran detection - Issue 1655 2015-11-18 19:12:15 +01:00
Thomas Nagy e66cf563ce
Uninitialized variables when qt options are not used 2015-11-16 19:30:07 +01:00
Thomas Nagy e414ad08fd
Version 1.8.17 2015-11-10 21:52:54 +01:00
Thomas Nagy cd7579a727
Do not try to post all task generator when installing, that will not work 2015-11-10 19:47:19 +01:00
Thomas Nagy 2fb1e0cfb2
Let gccdeps work when a custom cwd is provided through bld.cwdx 2015-11-08 11:48:53 +01:00
Thomas Nagy 65388a22c5
Adding . in include paths seems to cause problems 2015-11-08 11:22:27 +01:00
ita1024 d983a7e26d Merge pull request #1653 from mimon/xcode6-fixes
XCode 6 generator updates and fixes
2015-11-08 10:18:49 +01:00
Simon f3a20e293c Replaced 'source' arg to 'source_files'. Updated Docs and demo. Fixed bugs. 2015-11-08 10:06:03 +01:00
ita1024 2855dd2411 Merge pull request #1652 from mimon/find_file-fix
Enable usage of home folder/tilde ~ in Configure.find_files
2015-11-08 00:40:06 +01:00
Thomas Nagy 70be189ad2
Experimental option env.merge_config_header
This new option writes 'defines' into the test files
during the configuration tests for c/c++. This may
provide more readable config.log files.
2015-11-07 23:02:49 +01:00
Simon 842bd28c0d Changed so that calling expanduser after joining the paths in Configure.find_files 2015-11-07 22:01:37 +01:00
Thomas Nagy c2605e4dbb
Honor chmod on subst and rule when provided - Issue 1650 2015-11-07 00:29:03 +01:00
Thomas Nagy 8a3ff0e113
Missing Errors import in print_commands.py 2015-11-06 23:11:49 +01:00
Thomas Nagy ac226635d0
Quote arguments that contain spaces in print_commands.py, and use the latest version of exec_command 2015-11-06 23:07:23 +01:00
Thomas Nagy 7d25369e6c
Removed a leftover print statement 2015-11-06 22:55:45 +01:00
Thomas Nagy 02b8aafb8e
Let chmod on subst change the permissions for all files created (not just the first one) 2015-11-05 18:05:32 +01:00
Thomas Nagy c5b1aa4a33
Decorators @conf and @run_once must provide function wrappers having the same names as the original
The following will now work; mind the order of the wrappers:

@Configure.conf
@Utils.run_once
def print_it(self):
     print('hello')

def configure(ctx):
    ctx.print_it()
    ctx.print_it()
2015-11-05 02:01:32 +01:00
Thomas Nagy 18204eb963
Additional compatibility helpers in compat15.py 2015-11-05 00:57:37 +01:00
Thomas Nagy efbc47b434
Added a fake Constants module in compat15.py 2015-11-04 23:16:48 +01:00
Thomas Nagy d4334adfb9
Let waf -v catch invalid string on hcode values in Python3 2015-11-03 22:35:33 +01:00
Thomas Nagy c755de45c7
docs 2015-11-01 14:19:20 +01:00
Thomas Nagy 084d9a215d
Calculate ${SRC} and ${TGT} from user-defined folders
The current working directory used for expanding ${SRC} and ${TGT} is
assumed to be bld.bldnode. This change enables changing the current
working directory globally so that commands can be executed from
the 'build' folder instead of the 'variant' folder:

    def build(bld):
        bld.cwdx = bld.bldnode.parent
        bld.cwd = bld.cwdx.abspath()
        print("building from %r instead of %r" % (bld.cwdx, bld.bldnode))
        ...
2015-11-01 14:09:47 +01:00
Thomas Nagy cf334db465
Use options.enable_gccdeps if provided by user scripts 2015-10-31 11:24:53 +01:00
Simon 921483b335 Enabled usage of home folder/tilde ~ in Configure.find_files 2015-10-30 01:00:33 +01:00
ita1024 975fdde91b Merge pull request #1648 from mimon/xcode6-gen
Xcode6 generator
2015-10-29 18:59:16 +01:00
Simon f1da3b34ef Updated useage and docs in xcode6 2015-10-29 11:53:19 +01:00
Simon 53cb70ec44 Renamed stuff in demos to xcode6 2015-10-29 11:52:58 +01:00
Simon 5fcda128b5 Updated documentation 2015-10-29 11:16:25 +01:00
Simon 24dbd3c43c Changed name for the new Xcode tool to xcode6 and kept the original xcode tool 2015-10-29 11:16:05 +01:00
Thomas Nagy 3ff0277ea0
Enable global_define for conf.check() too 2015-10-27 22:22:35 +01:00
Thomas Nagy d2ade00ef8
waf 1.8.16 2015-10-26 22:58:04 +01:00
Thomas Nagy 722480b25c
Fixed the ruby detection for openindiana 2015-10-26 22:53:22 +01:00
Thomas Nagy 30336cd9ba
Reverted the changes to conf.check(header_name=) as this causes regressions. Use conf.check(header_name=, link_header_test=False) - #1647 2015-10-26 22:44:39 +01:00
Thomas Nagy 963c3b62c9
docs: apply_incpaths_emscripten will be removed in waf 1.9 2015-10-25 09:00:51 +01:00
Thomas Nagy 02423e440a
Make the emscripten option behave 2015-10-25 01:50:37 +02:00
ita1024 e99ddb3fd4 Merge pull request #1646 from thmo/sphinx12
Select HTML theme depending on Sphinx version.
2015-10-24 16:17:37 +02:00
Thomas Moschny ab3b16059f Make theme selection also work with older Sphinx. 2015-10-24 15:26:46 +02:00
Thomas Moschny 95ff02b7ad Select HTML theme depending on Sphinx version.
The 'default' theme has been renamed to 'classic' for Sphinx >= 1.3.
2015-10-24 13:50:53 +02:00
Thomas Nagy e3ac7630eb
Clearer error message when folders do not exist - Issue 1643 2015-10-21 01:08:14 +02:00
Thomas Nagy 0c07ff91b0
Propagate ldflags/LDFLAGS besides linkflags/LINKFLAGS 2015-10-20 21:37:29 +02:00
Jérôme Carretero a0de0eacd5 extras: file_to_object: clean-up and fix issues (reported by Philippe Brais)
Changes:

- Use Node.read('rb') to get bytes (!)

- Remove use of binascii and generate better-looking C.
Binascii returns bytes if input is bytes, requiring a decode()...
There's not benefit in using it, especially if we want to make
better-looking code.

- Remove dead code
2015-10-20 08:19:41 -04:00
Thomas Nagy f24d3b27b0
Ready to release waf 1.8.15 2015-10-18 19:58:49 +02:00
Thomas Nagy 6c5afc45b1
Workaround for msys2 inconsistent handling of slash characters
MINGW64 /C/msys2/demos/c
$ python -c "import os;print(os.getcwd())"
C:\msys2\demos\c

MINGW64 /C/msys2/demos/c
$ python3 -c "import os;print(os.getcwd())"
C:/msys2/demos/c
2015-10-18 12:26:45 +02:00
Thomas Nagy f340819d50
waf 1.8.15 2015-10-16 23:34:02 +02:00
Thomas Nagy 971b2d32b7
More Msys2 fun! 2015-10-16 22:45:27 +02:00
Thomas Nagy 0357db5156
Fail faster on invalid install_files inputs - Issue 1639 2015-10-15 20:07:05 +02:00
Thomas Nagy b5ffe6be31
Enable bld.program to recognize .gs in the same way as .vala 2015-10-14 23:26:56 +02:00
Thomas Nagy 26348711f0
Eliminated the last unused variables from the code 2015-10-13 22:57:45 +02:00
Thomas Nagy b91787d888
Simplify ././path when building the Waf file 2015-10-13 22:48:14 +02:00
Jérôme Carretero bd0008f252 extras: file_to_object: default to safer C code generation
Using asm links makes sense with big files, and if that's the case,
the user can specify it.
The C method also works on all compilers.
2015-10-13 11:46:28 -04:00
Jérôme Carretero ce892773c6 context: fixup load_special_tools ban when using the zip 2015-10-13 00:58:39 -04:00
Thomas Nagy f28426594e
Cleanup: removed most unused variables and imports 2015-10-11 11:32:27 +02:00
Thomas Nagy 1a47ae26c2
docs 2015-10-10 17:09:49 +02:00
Thomas Nagy 78403e3fbc
Enable relative paths to be processed in the --top and --out options 2015-10-10 17:05:13 +02:00
Thomas Nagy 731dfba711
docs 2015-10-10 10:28:21 +02:00
Thomas Nagy fcec20c9fd
Do not link header tests - ruby detection is broken when the compiler includes the symbols 2015-10-10 10:18:02 +02:00
Thomas Nagy 369bae306f
docs - write a newline in example file to remove warning with solaris compilers 2015-10-10 09:20:55 +02:00
Thomas Nagy ec0263f47c
docs - write a newline in example file to remove warning with solaris compilers 2015-10-10 08:52:58 +02:00
Thomas Nagy a306e30027
docs 2015-10-09 19:32:01 +02:00
Thomas Nagy 1886e77063
Workaround for python-config bug 7352 - Issue 1636 2015-10-09 19:19:59 +02:00
Jérôme Carretero 0f0da92a59 extras: cfg_cross_gnu: fix a typo... again 2015-10-08 16:18:15 -04:00
Thomas Nagy 807a193db6
build_logs disable colors - Issue 1631 2015-10-08 21:57:46 +02:00
Jérôme Carretero 996aca8b8f extras: cfg_cross_gnu: now use conf.env.env, and also clarify the way envars are gotten 2015-10-06 21:21:14 -04:00
Thomas Nagy 4708b1b730
Workaround for an IronPython pickle bug 2015-10-07 01:11:36 +02:00
Thomas Nagy acc64df657
IronPython fix for VisualStudio detection 2015-10-07 00:16:11 +02:00
Thomas Nagy f5b7209b02
Visual Studio detection in IronPython 2015-10-07 00:13:09 +02:00
Thomas Nagy 1fbac668cb
Pass a conf.env.env to check_cfg 2015-10-06 23:06:22 +02:00
Thomas Nagy 061f8e2b1d
With Jython, create a gzip file by default 2015-10-06 22:17:27 +02:00
Thomas Nagy 43aef10ebf
Enable waf file builds with Jython 2015-10-06 22:06:19 +02:00
Jérôme Carretero 5e7a7794c3 extras: cfg_cross_gnu: fixup typsdqdo 2015-10-06 10:27:19 -04:00
Jérôme Carretero 8da42b9365 extras: cfg_cross_gnu: improve environment variable passing
Changes:

- Can pass environment variables in the form `i686_pc_linux_gnu_AR`...
Dash didn't work...

- Use PKG_CONFIG_LIBDIR only if available
2015-10-05 15:34:30 -04:00
Thomas Nagy b970bfcb2d
docs 2015-10-03 11:54:22 +02:00
Thomas Nagy a6b467d73e
Moved the command hashing logic into a utility function 2015-10-03 09:12:08 +02:00
ita1024 c9d68d9ff0 Merge pull request #1630 from shoover/playground
playground/c: update bld methods. Use write_config_header for variants…
2015-10-03 08:31:36 +02:00
Thomas Nagy 201b8ac38f
Enable rules mixing functions with scriptlets 2015-10-01 19:25:29 +02:00
Shawn Hoover b0b773335c playground/c: update bld methods. Use write_config_header for variants so
cleanall doesn't delete them.
2015-09-30 23:34:08 -04:00
Thomas Nagy 0e76f676be
Let compile_fun process lists of string commands 2015-09-30 23:38:33 +02:00
Thomas Nagy f45e5c9d6e
Python 3 syntax cleanup 2015-09-28 21:44:50 +02:00
Thomas Nagy 1205f92a7f
Simplify the unicode type test for python 3 2015-09-28 21:33:48 +02:00
Thomas Nagy c6f98f80db
Sphinx 'default' html theme has been renamed to 'classic' 2015-09-27 16:49:41 +02:00
Thomas Nagy 7cba550826
Fixed a few Python3 compatibility issues in extras modules 2015-09-27 16:09:21 +02:00
Thomas Nagy f9f5e85616
Indentation issues 2015-09-22 07:08:21 +02:00
Thomas Nagy 9625343f91
docs 2015-09-20 12:26:21 +02:00
Thomas Nagy cf92a7bd24
waf 1.8.14 2015-09-20 12:18:01 +02:00
Thomas Nagy ce8234c396
docs - Issue 1605 2015-09-20 12:13:43 +02:00
Thomas Nagy dbdc95dfb6
The meaning of filter differs in Python 2/3 - Fixed MSVC builds without lazy for Python 3 2015-09-20 12:03:27 +02:00
Thomas Nagy ef72d4657f
Tests 2015-09-20 11:42:20 +02:00
Thomas Nagy 8ba068670a
Enable vala processing on a folder basis with the vala_dir parameter - Issue 1601 2015-09-19 19:53:46 +02:00
Thomas Nagy 7c982f1999
Missing configuration line for demos/vala/ to enable resource processing 2015-09-19 17:12:04 +02:00
Thomas Nagy 19042c840e
clean up in demos/vala 2015-09-19 17:01:03 +02:00
Thomas Nagy 8ea1de44a7
Vala resources - Issue 1626 2015-09-19 09:53:53 +02:00
Thomas Nagy 80d26d5dab
docs 2015-09-13 22:45:56 +02:00
Mohammad Alsaleh 6de1ac07d5 c_config: Avoid warnings/errors when checking for C functions
The check for C functions fails with '-Werror' in GCC (5.2).

  return (int)p;
         ^
  The cast here triggers this error:
    error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]

  p=(void*)(%s);
    ^
  This conversion triggers another error with '-pedantic -Werror':
    error: ISO C forbids conversion of function pointer to object pointer type [-Werror=pedantic]

  This patch fixes both errors.

Signed-off-by: Mohammad Alsaleh <CE.Mohammad.AlSaleh@gmail.com>
2015-09-13 22:45:32 +02:00
Thomas Nagy c5952e19ab
waf 1.8.13 2015-09-13 22:14:31 +02:00
Thomas Nagy 002706431d
docs 2015-09-12 23:49:38 +02:00
Thomas Nagy 49f51d547b
Missing change -Kpic/-xcode=pic32 for sun compilers in c++ mode 2015-09-12 23:32:39 +02:00
ita1024 58bb1ae87c Merge pull request #1625 from che2/fix-suncc-pic-flag
Update the pic build flag used for Sun CC
2015-09-12 23:30:41 +02:00
Chen He 411672c069 Update the pic build flag used for Sun CC
`-Kpic` had been used to generate position-indenpendent code for Sun CC.
This permits only 2^10 unqiue symbols per shared object on 64-bit
systems.  This is an unreasonably small default. Switching to `-KPIC`
increases the number to 2^29.

According to
http://docs.oracle.com/cd/E37069_01/html/E37074/bjapp.html#OSSCGbjatt,
both `-Kpic` and `-KPIC` have been deprecated, and the `-xcode` option
should be used instead. `-xcode` has been available since at least Sun
Studio 8.
2015-09-10 10:37:40 -04:00
ita1024 b01ae4d98c Merge pull request #1624 from shoover/consolidate-mobile-targets
Consolidate mobile targets
2015-09-09 23:00:05 +02:00
ita1024 8652c0b9da Merge pull request #1623 from shoover/no-save-lazy-targets
Don't save MSVC_INSTALLED_VERSIONS for lazy detection
2015-09-09 22:57:53 +02:00
Shawn Hoover c376be6f61 Fix duplicate winphone 8.0 targets in the detected versions list. 2015-09-09 12:31:09 -04:00
Shawn Hoover a8480cc2ff Fix to consolidate WinCE versions in the compiler versions list. 2015-09-09 12:30:23 -04:00
Shawn Hoover eb18a77a5f Override lazy detection and save MSVC_INSTALLED_VERSIONS if get_msvc_versions is called directly. 2015-09-09 10:52:23 -04:00
Shawn Hoover b00b9ab4e3 Don't save/print MSVC_INSTALLED_VERSIONS for lazy detection. 2015-09-09 10:52:20 -04:00
Thomas Nagy 48e48babb4
Override rule function outputs - Issue 1598 2015-09-07 21:03:16 +02:00
Thomas Nagy 7cca5e060f
Broken configurations may leave stale variables 2015-09-03 23:34:34 +02:00
Thomas Nagy c2f4f1b1e8
Force a chmod value for configuration tests executed 2015-09-03 21:31:46 +02:00
Thomas Nagy eb13629bda
clang seems to provide llvm-ar 2015-09-03 20:58:47 +02:00
ita1024 77a3469214 Merge pull request #1620 from shoover/msvc-fix-arch-variable
Fixed a local variable shadowing the arch return switch for setup_msvc.
2015-09-02 20:33:42 +02:00
Shawn Hoover fa41ac8213 Fixed a local variable shadowing the arch return switch for setup_msvc. 2015-09-02 09:16:48 -04:00
ita1024 b6af6c5919 Merge pull request #1619 from srouquette/boost
boost: check Boost.Log in check_boost if the user uses it.
2015-09-02 02:30:29 +02:00
Syl 973863e418 boost: check Boost.Log in check_boost if the user uses it. 2015-09-01 20:52:03 +02:00
Thomas Nagy 143ccb7a74
Pull request 1618 - cpplint 2015-09-01 19:40:26 +02:00
ita1024 36e07b3eaf Merge pull request #1614 from shoover/lazy-msvc-detect-1.8
Optionally lazily check installed msvc compilers' environments
2015-09-01 07:27:36 +02:00
Shawn Hoover 5e833ef3f8 Read the lazy autodetect option instead of passing a value everywhere. 2015-08-31 22:06:34 -04:00
Thomas Nagy 7e62e3a54f
search -> search_node - Issue 1617 2015-08-31 23:41:19 +02:00
Shawn Hoover 4b65d3f875 Optionally lazily check installed msvc compilers' environments and stop when one
is found that matches the user's options. This happens during autodetect only
when the new option msvc_lazy_autodetect or env.MSVC_LAZY_AUTODETECT is set.
2015-08-31 14:55:15 -04:00
Thomas Nagy e72c310b7d
Ruby 2.x detection - Issue 1613 2015-08-30 20:05:38 +02:00
Thomas Nagy ca5b8a8733
Env variables WAF_LOG_FORMAT/WAF_HOUR_FORMAT for custom log formats 2015-08-30 13:02:17 +02:00
Thomas Nagy 61f09a3f7c
Enable 'waf update' when use_config is provided - Issue 1541 2015-08-29 13:05:00 +02:00
Thomas Nagy 3e6b3bc5ca
Added fortran detection and warn when no link is possible - Issue 1603 and Issue 1610 2015-08-29 11:01:47 +02:00
Thomas Nagy 41bd22ebfa
Update use_config - Issue 1608 2015-08-29 10:31:02 +02:00
Thomas Nagy 34c6ee8c0e
loadFromSysPath -> with_sys_path 2015-08-28 22:43:38 +02:00
Thomas Nagy 48504f2c3d
Enable the wrapped method to be reentrant 2015-08-28 21:37:09 +02:00
Thomas Nagy cadd260a9e
Always remove the timeout and input arguments from the Popen constructor 2015-08-23 18:52:45 +02:00
Thomas Nagy 03ad2fff74
Adding input to cmd_and_log/exec_command enables stdin=PIPE 2015-08-23 17:39:25 +02:00
Thomas Nagy bfbcc73eb2
C/FC detection and outputs to be written in config.log 2015-08-23 17:16:03 +02:00
Thomas Nagy 274fba398c
Fixed the invalid docstring 2015-08-23 17:05:57 +02:00
Thomas Nagy a08b9fe26a
Added new parameters input/timeout to cmd_and_log/exec_command 2015-08-23 17:01:25 +02:00
Thomas Nagy e9e8df28a4
iteritems does not work in python3 2015-08-12 18:31:14 +02:00
Thomas Nagy ccdbd79ffa
Python3 fix 2015-08-09 23:50:49 +02:00
Jérôme Carretero c913b779f5 extras: c_emscripten: use emar as AR 2015-08-07 08:50:15 -04:00
Thomas Nagy 6ca1c7cad4
Simplify Clang macro detection 2015-08-07 10:51:45 +02:00
Thomas Nagy 45ffae6d4e
Ensure __GNUC_PATCHLEVEL__ is always of str type 2015-08-07 10:48:22 +02:00
Thomas Nagy a98baba3e8
Unused code fragment 2015-08-07 10:47:06 +02:00
Jérôme Carretero ae07720a6d extras: add c_emscripten tool 2015-08-06 23:28:19 -04:00
Jérôme Carretero 699b836728 extras: cfg_cross_gnu: make pkg-config also use PKG_CONFIG_LIBDIR...
... to avoid having the default stuff prepended, and system libs found
when you want to do x-compilation.
2015-08-02 19:14:17 -04:00
ita1024 bc8840e0df Merge pull request #1595 from nikoder/increase_control_over_tool_loading
Disable regular sys.path when loading tool with specified tooldir.
2015-07-28 13:28:34 +02:00
Nikolaus Lieb 64f557a17e Ensure restoration of sys.path in Context.load_module() 2015-07-28 16:47:46 +08:00
Nikolaus Lieb b22118a2de Add an option to skip searching the regular sys.path when loading waf tools.
Granting this control allows the avoidance of issues such as accidentally
loading the "cython" module from from Cython itself, rather than the
"cython" waf tool.
Conflicts:
	waflib/Configure.py
	waflib/Context.py
2015-07-28 16:47:35 +08:00
ita1024 68585933f1 Merge pull request #1604 from mattfischer/waf-1602
Handle .. within paths in gccdeps
2015-07-28 09:37:09 +02:00
Matt Fischer 2424393afd Handle .. within paths in gccdeps
The current code handles .. at the beginning of a path, but not within the path
2015-07-27 17:26:53 -05:00
Simon 70b294f2e1 Added unique_fileref() method to get reference of already existing file references 2015-07-17 00:23:27 +02:00
Simon 70fa79b181 Clean-up 2015-07-15 12:53:30 +02:00
Simon 20c0b72cbb Removed import statement from demo 2015-07-13 20:10:22 +02:00
Simon 64405a8c1a Reduced the ConfigureContext to a configure() func. Also replaced dependencies cxx/cxxprogram with ccroot 2015-07-13 13:43:15 +02:00
Simon 3924f60974 Added more target types. Added bld wrappers 2015-07-13 12:47:01 +02:00
Simon 7d50934a8e Removed unused method 2015-07-13 02:25:13 +02:00
Simon 47b5783be5 Docs 2015-07-13 02:24:49 +02:00
Simon a3a74e59c1 Added default values for required build settings 2015-07-13 02:16:52 +02:00
Simon dd19e4b1ee Fixes 2015-07-13 00:51:55 +02:00
Simon da9a86d2a6 Clean up 2015-07-12 22:31:10 +02:00
Simon a59e38835d Clean up 2015-07-12 22:17:26 +02:00
Simon e44ab6e6ec Support for framework,lib,stlib, etc. 2015-07-12 22:06:51 +02:00
Thomas Nagy e10398fcd3
docs 2015-07-11 20:17:16 +02:00
Simon 6891ebb7c9 Switched over to use tmp_use_seen istead of link_framework 2015-07-11 16:04:10 +02:00
Thomas Nagy 0d9a9b7e77
Let write_config_header use env.WAF_CONFIG_H_PRELUDE
A prelude will be added from the variable env.WAF_CONFIG_H_PRELUDE if provided. This
can be used to insert complex macros or include guards::

    def configure(conf):
        conf.env.WAF_CONFIG_H_PRELUDE = '#include <unistd.h>\\n'
        conf.write_config_header('config.h')
2015-07-11 12:01:26 +02:00
Thomas Nagy 4f93b4e814
docs 2015-07-07 22:30:00 +02:00
Thomas Nagy 4949c0d894
Ensure Doxygen outputs are installed even when the task is not run 2015-07-07 21:00:18 +02:00
Thomas Nagy 140453a959
Prevent installation tasks having postpone=False from running twice 2015-07-07 20:58:58 +02:00
Simon b8330b29cb Improved Project -> Configuration API 2015-07-07 18:21:35 +02:00
Simon 5f9a900dc1 Made better integrations with the standard INCPATHS variable 2015-07-07 18:07:21 +02:00
Simon ae4f1f5e27 Fixed some issues 2015-07-07 17:54:08 +02:00
Simon 9563da7875 Streamlined API more 2015-07-07 12:17:43 +02:00
Simon 79c91daffc Improved include paths. Added support for c_config files 2015-07-06 13:38:27 +02:00
Thomas Nagy 1427497785
Docs 2015-07-05 20:24:39 +02:00
Simon 1f918ce546 Added documentation 2015-07-05 16:57:27 +02:00
Simon 4167c43c2a Getting Custom file grouping reworked 2015-07-05 15:53:59 +02:00
Simon db2587ea61 Getting Custom source/include heirarchy to work - fixes 2015-07-05 12:37:25 +02:00
Simon d0279469df Getting Custom source/include heirarchy to work 2015-07-05 00:06:56 +02:00
Simon 922be2ff58 Custom source/include heirarchy 2015-07-04 22:56:54 +02:00
Simon d5c5db686a Custom project build configurations fix 2015-07-04 22:23:16 +02:00
Simon 0c864ecaac Custom project build configurations fix 2015-07-04 22:22:19 +02:00
Simon b7e4aed28b Custom project build configurations 2015-07-04 19:13:11 +02:00
Simon a62bef1323 Target dependecies now works 2015-07-04 12:11:10 +02:00
Simon 2424b81f30 Clean-up 2015-07-03 23:41:05 +02:00
Simon 7992473f7d Found out and made some fixes to parent build configurations 2015-07-03 21:16:27 +02:00
Thomas Nagy 19473a0721
env = conf.env.derive().detach() 2015-07-02 20:52:41 +02:00
Simon ce6a58cd5f Removed recusive writing 2015-06-29 18:31:37 +02:00
ita1024 2011f4a852 Merge pull request #1591 from yotann/fix-exec-command
Fix exec_command and cmd_and_log when cmd is tuple
2015-06-29 06:40:21 +02:00
Sean Bartell 03a510f480 Fix exec_command and cmd_and_log when cmd is tuple 2015-06-28 14:59:49 -05:00
Thomas Nagy 933feab352
Glob mac_app resource trees - Issue 1586 2015-06-27 15:18:57 +02:00
Thomas Nagy 705404211a
Removed the unnecessary executable bit on files 2015-06-27 14:04:36 +02:00
Thomas Nagy a946ca8383
Removed the executable bit on c_config.py 2015-06-27 14:03:04 +02:00
Thomas Nagy f8a3d56775
Preparations for Waf 1.8.12 2015-06-27 12:41:16 +02:00
Simon 616dd559ec Added ID print wrapper 2015-06-26 23:16:37 +02:00
Simon 11d85e44ee Removed duplicate elements being written 2015-06-26 21:42:02 +02:00
Simon b5b1d520ad Added headers search paths and support for other build settings 2015-06-25 00:44:28 +02:00
Simon c34269bb8c Initial impl. for Xcode 6 - basic tests 2015-06-24 19:32:46 +02:00
Thomas Nagy ae508f2f82
Building in subdirectory broke in 1.8.10 #1590 2015-06-24 18:54:03 +02:00
Thomas Nagy acf9032687
enable more tests on the build farm 2015-06-21 23:58:43 +02:00
Thomas Nagy f7b4940158
docs 2015-06-21 22:43:19 +02:00
Thomas Nagy 1ee400aca5
docs 2015-06-21 21:55:12 +02:00
Thomas Nagy 1debaf5f03
Better error message when the c compiler is clang and gcc is not found 2015-06-20 23:17:24 +02:00
Thomas Nagy a336bb1b8b
waf 1.8.11 2015-06-20 22:24:30 +02:00
Thomas Nagy d761ad1397
Better error message when the c compiler is clang and gcc is not found 2015-06-20 22:21:43 +02:00
Thomas Nagy 42fb4f08a0
Hide the command update that appears in the logs 2015-06-20 14:55:08 +02:00
Thomas Nagy 57d804c16e
docs 2015-06-20 14:54:41 +02:00
Thomas Nagy dfd6f7e958
Grey color 2015-06-16 07:35:46 +02:00
ita1024 18d8c6025f Merge pull request #1585 from caitp/macplist
[macplist]: interpolate file
2015-06-14 22:09:10 +02:00
Caitlin Potter 9d763fc74f [macplist]: interpolate file
Rather than using an inline interpolated heredoc string, or generating
the file in a pre-build step, allow the macplist task itself to
perform string interpolation on the contents of a plist file.
2015-06-14 15:53:46 -04:00
Thomas Nagy 65150769cd
Cleanup 2015-06-14 11:48:05 +02:00
Thomas Nagy c91214e216
generated .py files might need to be byte-compiled and installed 2015-06-11 18:15:10 +02:00
ita1024 a12bfc9a94 Merge pull request #1584 from nikoder/nikoder_fix_tool_caching
Add tooldir to cache-check on loading module in Configure context.
2015-06-10 17:54:28 +02:00
Nikolaus Lieb 9fc9464238 Add tooldir to cache-check on loading module in Configure context. 2015-06-10 21:44:37 +08:00
ita1024 4a9d2bb7b9 Merge pull request #1583 from cawka/feature-shlib
Change with shared library compatibility version handling
2015-06-06 13:23:27 +02:00
Alexander Afanasyev 728205fe3c Change with shared library compatibility version handling
For ELF binaries (e.g., Linux): default compatible version (SONAME =
`<library-name>.so.<MAJOR>`) can be specialized using additional `cnum`
parameter to `<library-name>.so.<MAJOR>.<MINOR>` or
`<library-name>.so.<MAJOR>.<MINOR>.<PATCH>`.

For Mach-O binaries (e.g., OS X):

- (bugfix) install-name points to compatible version (not absolute path
  to a non-versioned library)
- Default install-name `<install-path>/<library-name>.<MAJOR>.dylib` can
  be specialized using `cnum` parameter to
  `<install-path>/<library-name>.<MAJOR>.<MINOR>.dylib` or
  `<install-path>/<library-name>.<MAJOR>.<MINOR>.<PATCH>.dylib`
- `-Wl,-compatibility_version` and `-Wl,-current_version` flags use
  version from cnum/vnum (default cnum is vnum.split('.')[0])
2015-06-05 17:27:32 -07:00
Thomas Nagy 92f584fd8f
Repeated failures remove signatures - Issue 1580 2015-05-31 16:51:44 +02:00
Thomas Nagy f6b6191480
Additional crutches for protoc 2015-05-28 23:08:07 +02:00
Thomas Nagy 04556a4d28
Use adequate variable for include paths in protoc.py 2015-05-27 18:45:20 +02:00
ita1024 c5d0619c9e Merge pull request #1577 from arteymix/master
Fix the '--threading' option for valac.
2015-05-26 16:59:34 +02:00
Guillaume Poirier-Morency f14678f3e6 Fix the '--threading' option for valac.
The actual compiler option is named '--thread', not '--threading'.

Renames the waf option for 'thread': it shouldn't be breaking anyone as
it was not even working.
2015-05-26 03:25:33 -04:00
Thomas Nagy 3886c70929
waf 1.8.10 2015-05-24 15:39:46 +02:00
Thomas Nagy ea59b302c5
Fixed conf.multicheck error handling 2015-05-23 15:09:37 +02:00
Thomas Nagy f048d6d20f
Do not duplicate flags from the OS environment - https://github.com/waf-project/waf/issues/1574 2015-05-16 14:26:43 +02:00
ita1024 be7c6103dc Merge pull request #1573 from dale-stewart/master
qt5: cope with library names like 'Qt5Core' instead of 'QtCore5'
2015-05-14 23:53:12 +02:00
Dale Stewart 1bc6c745c9 qt5: cope with library names like 'Qt5Core' instead of 'QtCore5', as in Qt 5.4 on Windows 2015-05-14 16:15:57 -05:00
Thomas Nagy 802e937d73
Regression caused by 588f809ffa - https://github.com/waf-project/waf/pull/1572 2015-05-08 18:16:48 +02:00
ita1024 4adc55a9c9 Merge pull request #1571 from srouquette/master
cpplint: keep the old import
2015-05-06 23:09:51 +02:00
Syl 8ef1fa7733 cpplint: keep the old import 2015-05-06 22:33:31 +02:00
ita1024 398be70a11 Merge pull request #1570 from srouquette/master
cpplint: fixed import.
2015-05-06 21:15:44 +02:00
Syl 085b80fdb3 cpplint: fixed import. The version on pypi is now up to date and works with Python3. 2015-05-06 19:19:05 +02:00
Thomas Nagy a4c2370ee4
WriteConsole type - https://github.com/waf-project/waf/issues/1567 2015-05-05 07:33:47 +02:00
ita1024 a3b8ba5d03 Merge pull request #1566 from yag00/master
swig tool can handle -outdir parameter
2015-05-03 19:30:05 +02:00
christophe.duvernois 28639e5c98 playground test update for swig with -outdir parameter 2015-05-03 18:47:05 +02:00
christophe.duvernois 533599b7ba swig tool can handle -outdir parameter 2015-05-03 16:58:50 +02:00
Thomas Nagy b45f52165b
docs 2015-05-03 10:22:28 +02:00
Thomas Nagy 120af4f1d0
docs 2015-05-03 01:03:11 +02:00
Thomas Nagy 9fdfec763d
provide --no-lock-in-top and --no-lock-in-run for packagers 2015-05-02 17:13:00 +02:00
Thomas Nagy d4ec554cdf
Simplify initialization of --top and --out in out-of-tree builds 2015-05-02 16:48:48 +02:00
Thomas Nagy de6b9bde38
Replace cygwin paths in solution files - https://github.com/waf-project/waf/issues/1562 2015-05-01 13:00:45 +02:00
Thomas Nagy 3e3c84abfb
hcode in why.py - https://github.com/waf-project/waf/issues/1561 2015-04-30 20:58:44 +02:00
Thomas Nagy 3d6a35070a
waf-1.8.9 2015-04-26 21:32:12 +02:00
Thomas Nagy 06e49b2a82
undefined variables 2015-04-26 21:13:52 +02:00
Thomas Nagy 44211e0bb5
Enabled errors on warnings for the apidoc generation 2015-04-26 21:00:15 +02:00
Thomas Nagy 69f924bd00
Added a configuration test for dblatex 2015-04-26 20:40:28 +02:00
Thomas Nagy e230700c0a
Cache pictures in the repository 2015-04-26 20:36:48 +02:00
Thomas Nagy 9cafbf7580
docs 2015-04-26 18:23:21 +02:00
Thomas Nagy 0da5029e35
No more dia for diagrams 2015-04-26 18:03:45 +02:00
Thomas Nagy 6c7eb129af
docs: update the version number automatically 2015-04-26 17:09:01 +02:00
Thomas Nagy ffd6c60113
docs 2015-04-26 16:52:45 +02:00
Thomas Nagy b807733cad
docs 2015-04-26 12:18:15 +02:00
Thomas Nagy 924f8bbce8
Inserting LDFLAGS at the end of the command-line causes less overhead than expected, and LINKFLAGS can still be used for flags in the beginning of the line 2015-04-22 21:34:45 +02:00
ita1024 7d039ef84c Merge pull request #1554 from dsvensson/master
Use same prefix convention for python as with ruby and perl.
2015-04-11 18:57:49 +02:00
Daniel Svensson 588f809ffa Use same prefix convention for python as with ruby and perl.
Should /usr/local/.../site-packages not be in sys.path in some
platform, a user would pass --pythondir, and --pythonarchdir to
waf when compiling, or modify sys.path.

This makes waf work more predictable, as when passing --prefix
parameter to the build, everything will be installed under this
directory.
2015-04-11 16:26:30 +02:00
ita1024 dee5ac6fe0 Merge pull request #1553 from dsvensson/master
Find xsubpp in order, privlib, vendorlib and path.
2015-04-11 13:25:03 +02:00
Daniel Svensson c53a6f9e07 Find xsubpp in order, privlib, vendorlib and path. 2015-04-11 13:17:21 +02:00
Thomas Nagy ba7295d555
xsubpp misconfiguration on redhat systems 2015-04-11 10:51:19 +02:00
Thomas Nagy 0c0e0388a0
More accurate rpath parsing in parse_flags 2015-04-08 23:32:53 +02:00
Thomas Nagy d46bc99b22
No more ftp.waf.io 2015-04-08 19:11:49 +02:00
Thomas Nagy 41c7b2dcf8
docs 2015-04-06 17:55:40 +02:00
Thomas Nagy 8ac4646d09
Updated the apidocs and The Waf Book 2015-04-06 14:46:55 +02:00
Thomas Nagy 47cf5cecaa
Issue 1552 - attempt to fix the installation path regression on 32-bit Ubuntu caused by Issue 1536 2015-04-03 21:24:46 +02:00
Thomas Nagy cb2f3ff7d5
new readme for github 2015-04-03 20:22:21 +02:00
Thomas Nagy ecac06a341
new readme for github 2015-04-03 20:11:53 +02:00
Thomas Nagy b8c965153c
Issue 1551 - use -Bstatic and -Bdynamic in parse_flags 2015-03-26 21:50:23 +01:00
Jérôme Carretero 01f0ee1005 extras: file_to_object: allow source=[...] 2015-03-18 22:27:53 -04:00
Daniel Welty 94a48cc4ae
msvc: Support additional cross-compile types
VS 2013 supports cross-compiling for x86 and arm from amd64, but Waf
wouldn't search for these compilers.

Change-Id: I5b0d6809b666587d5aea19e6491fa7f0572c1a40
Type: Bug Fix

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2015-03-17 02:11:41 +01:00
Thomas Nagy d1f7f7c78d
Miscellaneous platform support 2015-03-14 03:02:01 +01:00
Thomas Nagy eefb67755e
Issue 1529 - conf.check(function_name) 2015-03-13 17:47:53 +01:00
Thomas Nagy fb1d5440ea
cleanup 2015-03-12 19:24:02 +01:00
Thomas Nagy 4a362be394
More accurate regexp on re_vnum 2015-03-12 19:22:08 +01:00
Harald Klimach 52f63ac945 Fixed logic to identify intel fortran compiler. 2015-03-10 16:59:53 +01:00
Thomas Nagy 7f05ab7290
Optimizations 2015-03-08 18:30:57 +01:00
Thomas Nagy cca30e91f4
Re-use the functions defined in waflib/Utils.py 2015-03-07 02:29:42 +01:00
Thomas Nagy 02f4e0f1c0
Fortran errors lead to broken signatures - Issue 1546 2015-03-07 02:13:22 +01:00
Thomas Nagy 6a73ff9512
Do not use colors for jython in cmd.exe by default 2015-03-06 23:02:23 +01:00
Thomas Nagy ea8ff1c6ab
Jython detection enhancements 2015-03-06 22:02:10 +01:00
Thomas Nagy 6cfc3ebeef
docs 2015-03-06 18:27:43 +01:00
Thomas Nagy 82743d7966
docs 2015-03-05 19:49:57 +01:00
Thomas Nagy ff2ab4076f
Fix for gcc detection under msys - it behaves like cygwin 2015-03-05 16:18:51 +01:00
Daniel Vollmer b1a606c8e6
Generate doxygen into a sub-folder of build
When no OUTPUT_DIRECTORY was set for doxygen, then the parent
directory of the doxyfile was used. If the doxyfile is in the
root-directory, then this was the build-directory itself, which
led to the complete build-directory (including all other build
artifacts) to be installed.

The OUTPUT_DIRECTORY set (if not given) now includes the name
of the doxyfile itself (+ suffix '.doxy').

The install of doxygen-generated files also did not preserve
the directory structure.

The doxy playground example was simplified and updated, as
separate installation is no longer needed.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2015-03-05 15:14:22 +01:00
Thomas Nagy 1b65d73c56
Unraised exception in get_targets, get_tgen_by_name already raises one 2015-03-05 03:16:28 +01:00
Thomas Nagy df379d3ecd
Look up doxygen inputs relative to the doxygen file - Issue 1542 2015-03-04 19:25:35 +01:00
Harald Klimach 8d788d3e28 Make the NEC Fortran compiler detection flexible to cover the sxf03 as well as the sxf90. 2015-03-04 09:23:00 +01:00
Thomas Nagy 80344dee5e
Use splitlines when possible 2015-03-03 12:19:25 +01:00
Jérôme Carretero 340551d8a0 extras: file_to_object: basic file name escape (fixes issue on Windows) 2015-03-02 18:22:24 -05:00
Thomas Nagy c47b9bcd85
Configuration test for gccdeps flags 2015-03-02 16:54:56 +01:00
Thomas Nagy a72bd89be3
Removed the accidental dependency on git to create the waf file 2015-03-01 12:04:11 +01:00
Thomas Nagy 9a72b14976
Enable environment-provided flags for cross-compilation in python.py 2015-03-01 11:59:16 +01:00
Thomas Nagy e49afff0fe
waf 1.8.7, coming soon 2015-02-27 21:16:03 +01:00
Thomas Nagy 47a100480f
Issue 1538 - make detection of pyembed optional 2015-02-27 12:03:53 +01:00
Thomas Nagy fa139c5d09
Invalid indentation in Python 3 and regexp enhancements 2015-02-26 23:05:27 +01:00
Thomas Nagy e5056b9ade
Example to how how to obtain build dependencies through strace 2015-02-26 22:30:47 +01:00
Thomas Nagy a4202b3501
docs 2015-02-25 16:46:27 +01:00
Harald Klimach d0c1333396 Corrected the module name convention for the NEC SX compiler. 2015-02-25 15:46:54 +01:00
Harald Klimach 8b58f728b9 Merge branch 'master' of https://code.google.com/p/waf 2015-02-25 11:21:01 +01:00
Harald Klimach 7775cda5c3 Added NEC compiler descriptions for SX machines. 2015-02-25 11:15:55 +01:00
Thomas Nagy f87ff1060d
xz compression is new in Python 3.5 2015-02-24 21:20:15 +01:00
Thomas Nagy b9e3d25918
Issue 1537 - batched_cc /Fo option requires a trailing path separator 2015-02-24 17:50:01 +01:00
Thomas Nagy c4e25382cd
Regression on windows caused by r823b4cd2dc03d06a81e0ab003606067da03d8745 (default bindir and libdir) 2015-02-23 17:03:48 +01:00
Thomas Nagy a933244f48
Enable unity builds for C too 2015-02-23 10:44:57 +01:00
Thomas Nagy 17ab93f32a
Enable Visual Studio support in batched_cc for Issue 1537 (the unity tool provides best performance though) 2015-02-22 13:30:25 +01:00
Jérôme Carretero 49911f72a8 extras: file_to_object: support using the C compiler to support the feature more portably (WIP) 2015-02-20 12:05:08 -05:00
Thomas Nagy 1f314af77b
Docs 2015-02-20 16:02:05 +01:00
Thomas Nagy e8ae9c1a59
Enable gccdeps for clang too 2015-02-20 14:43:55 +01:00
Thomas Nagy bbf26e0e12
Fix the g++ compiler detection which is broken by the new clang tool 2015-02-20 14:23:04 +01:00
Thomas Nagy 269c90fe1a
Cache the files read in c_dumbpreproc.py 2015-02-20 12:06:08 +01:00
Thomas Nagy 823b4cd2dc
Issue 1536 - default 64 suffix for Redhat systems 2015-02-19 13:46:18 +01:00
Thomas Nagy 517578b5d2
Keep run_str on orig_run_str to help subclasses 2015-02-19 08:58:53 +01:00
Thomas Nagy 6481398a82
Note on Configure.autoconfig (True/False/'clobber') 2015-02-18 01:03:10 +01:00
Thomas Nagy 68a1bab004
Let the forked processes drop closed connections immediately - prefork 2015-02-17 17:10:47 +01:00
Thomas Nagy 9d37801661
Show how to re-use the outputs from a task generator into another - vala 2015-02-17 16:50:19 +01:00
Thomas Nagy 8f4df2085c
Support for single-number versioned libraries 2015-02-15 11:53:47 +01:00
Thomas Nagy e3d8daf8bc
Issue 1527 - a not on as-needed 2015-02-14 22:38:25 +01:00
David Robillard a3a209b352
Fix compiler detection on OSX 10.6.
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2015-02-14 22:29:19 +01:00
Thomas Nagy e0c1f331dc
Do not create the same file twice in demos/subst 2015-02-14 15:41:32 +01:00
Thomas Nagy 412a677e06
Allow prefork.py builds to run concurrently (use random ports) 2015-02-14 15:29:58 +01:00
Thomas Nagy f8ff53ef02
Terminate preforked process if the parent terminates abruptly 2015-02-14 15:04:09 +01:00
Thomas Nagy 5716e35fdd
Slightly better error handling in prefork and preforkunix 2015-02-14 14:04:57 +01:00
Thomas Nagy d17bb06e36
waf 1.8.6 2015-02-14 12:07:13 +01:00
Thomas Nagy cc875ba2c2
Updated demos/vala - namespace required 2015-02-14 11:05:45 +01:00
Thomas Nagy ad5a6cb0e4
Issue 1467 2015-02-12 00:13:18 +01:00
Jérôme Carretero e1acde1bfb extras: file_to_object: fixup file extension of generated file
- append, don't change
- file extension is .s (don't run preprocessor)
2015-02-09 17:34:19 -05:00
Thomas Nagy e22f7b0cc2
reverting r522e3fb43a1dca184aa346a0cf00ac6bc83b3366 - Issue 1338 2015-02-08 18:51:39 +01:00
Thomas Nagy 1985579cb4
Example of tracking files in the build directory to force partial rebuilds 2015-02-08 11:05:28 +01:00
Thomas Nagy d68e1ff072
Handle non-string and non-list values in substitutions (subst) 2015-02-07 22:27:54 +01:00
Thomas Nagy 15d14c7bdf
Update playground/dynamic_headers - Issue 1530 2015-01-31 23:07:36 +01:00
Thomas Nagy 3064694440
Updated the dynamic_headers2 example 2015-01-31 18:18:26 +01:00
Thomas Nagy 38ae92994d
Update in demos/d/ 2015-01-30 01:06:15 +01:00
Thomas Nagy 004b866789
Updated the netcache client/server 2015-01-29 00:00:01 +01:00
Thomas Nagy 8bb6b1d299
Updated netcache_client to waf 1.8 2015-01-28 00:54:06 +01:00
Thomas Nagy ca497f062b
Support more header extensions in subst/is_copy 2015-01-27 22:27:45 +01:00
Robert 57ea6be9fc
Issue 1526 - handle reasons for rebuild indepently in extas/why.py
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2015-01-22 23:21:41 +01:00
Thomas Nagy 0c66df0fab
New option --pin-process for the preforks 2015-01-20 23:13:31 +01:00
Thomas Nagy e044142c8e
Disable preforkunix on w* systems 2015-01-20 22:13:50 +01:00
Thomas Nagy ae3c7ee7e1
Have 'waf -ppp' display no progress bar 2015-01-20 22:05:19 +01:00
Thomas Nagy 0bf605e194
Cleanup in the prefork scripts 2015-01-20 21:48:41 +01:00
Thomas Nagy d9908f38ef
Python 3 fixes 2015-01-20 18:47:31 +01:00
Thomas Nagy f10accf861
cleanup 2015-01-19 22:35:20 +01:00
Thomas Nagy fa8d113d41
Additional notes on preforked build processes 2015-01-18 23:56:51 +01:00
Thomas Nagy 8d9e7fda30
New tool nobuild for profiling, and a unix-only version of prefork.py 2015-01-18 13:51:06 +01:00
Thomas Nagy 760b34e264
Do not run processes with file descriptors on the server 2015-01-16 22:14:29 +01:00
Thomas Nagy 59974469fc
Report errors from prefork.py 2015-01-16 21:32:58 +01:00
Thomas Nagy 2d43b3416c
Prevent external connections to the servers 2015-01-16 19:21:20 +01:00
Jérôme Carretero 0bdcae3e41 playground: embedded_resources: fixup typo 2015-01-13 13:32:10 -05:00
Jérôme Carretero 7c33626306 extras: cfg_cross_gnu: update docs 2015-01-13 13:27:54 -05:00
Jérôme Carretero 0f4a1d5f7d extras: file_to_object: rerun on DEST_CPU change 2015-01-13 13:27:38 -05:00
Thomas Nagy 45d21e96a1
prefork example for executing commands - this can improve full build performance quite a bit 2015-01-11 15:42:27 +01:00
Jérôme Carretero 5746e9a99a extras: cfg_cross_gnu: parse LDFLAGS environment variable 2015-01-06 13:10:28 -05:00
Jérôme Carretero f3320a4b07 extras: cfg_altoptions: use option group 2015-01-06 13:10:20 -05:00
Thomas Nagy 1551b070b2
Fix and test for class names containing utf-8 characters - Python 2.7 and 3.x 2015-01-06 12:29:06 +01:00
Thomas Nagy 6d674de8c9
qt5 detection improvements 2015-01-06 11:18:28 +01:00
Syl 291a3077dd improved error message when a path contains unicode character.
display the path and raise the exception.
2015-01-02 20:10:56 +01:00
XZS 6d5bde451d
install compiled python files besides sources
Compiled python files are now placed in a __pycache__ directory besides
the source file, which is in fact the only location PEP 3142 specifies.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2015-01-02 19:30:08 +01:00
Thomas Nagy 149653a937
First commit of the year 2015 2015-01-01 16:24:54 +01:00
Thomas Nagy 0b926c7682
Issue 1524 - ruby configuration in 2.2 2014-12-29 20:01:02 +01:00
Thomas Nagy 6c11f91e12
Issue 1522 2014-12-27 20:31:11 +01:00
Thomas Nagy 90e7031d2d
blender.py belongs to extras/ 2014-12-20 18:46:55 +01:00
poxip 644ab20549
blender: Do not use default platform
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-12-20 18:45:24 +01:00
poxip 229d5b93d6
Create blender tool
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-12-20 18:45:15 +01:00
Thomas Nagy 18ce4bdc21
waf 1.8.5 2014-12-14 16:22:24 +01:00
Eeshan Garg b694c0da84
Write a generic script signing utility
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-12-11 19:01:22 +01:00
Emil Dudev 1fe49f2017
Let wscripts be executable
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-12-04 01:24:00 +01:00
Thomas Nagy 20a1ed6146
Advanced example of library propagation in distnet 2014-11-22 11:53:13 +01:00
Thomas Nagy 740763c236
Issue 1511 - emacs pretends it has a tty 2014-11-20 21:20:46 +01:00
Thomas Nagy 1689bc658a
Issue 1510 - suncc and CC 2014-11-20 20:43:56 +01:00
Thomas Nagy 86245460d6
docs 2014-11-16 23:11:05 +01:00
Thomas Nagy f0ba17bb8e
docs 2014-11-16 22:34:15 +01:00
Thomas Nagy fba4094bdc
No more dia diagrams! 2014-11-16 22:30:54 +01:00
Thomas Nagy 1145171b62
New diagrams 2014-11-16 21:35:01 +01:00
Thomas Nagy 4e0157be02
docs 2014-11-16 14:12:40 +01:00
Thomas Nagy 81cedd8774
docs 2014-11-16 13:23:58 +01:00
Thomas Nagy c18f457215
Issue 1509 cmd -> cmd.exe 2014-11-13 19:27:58 +01:00
Thomas Nagy 9a46ff7558
No one has ever used conf.as_needed() 2014-11-10 22:08:36 +01:00
Thomas Nagy e048bed13d
More tests for the Waf preprocessor 2014-11-02 00:16:48 +01:00
Thomas Nagy 67a5bb5c73
Regression due to Issue 1502 2014-11-01 23:38:02 +01:00
Thomas Nagy 28ebd858d5
waf 1.8.3 2014-10-31 22:56:47 +01:00
Thomas Nagy 2fa4078c47
Clean orphan Qt files 2014-10-31 22:47:58 +01:00
Thomas Nagy 7ffd53b803
Use EnvironmentError more often 2014-10-30 19:09:53 +01:00
Thomas Nagy 2e98ef1313
stale.py improvements 2014-10-30 07:49:59 +01:00
Thomas Nagy 046c55a97e
Issue 1506 2014-10-28 22:15:52 +01:00
Thomas Nagy 803bbe6674
Issue 1504 - Use absolute paths if relative path requires drive letters 2014-10-28 20:59:36 +01:00
Thomas Nagy 0cb547e65d
Issue 1498 - no python-config on windows, use the system from waf 1.7 2014-10-27 04:02:39 +01:00
Thomas Nagy e297881d30
Missing method in qt5.py 2014-10-25 13:50:23 +02:00
Thomas Nagy d24092184a
Issue 1502 - too much caching in qt logic 2014-10-25 13:39:22 +02:00
Thomas Nagy ddfabfd80a
Enable the stale.py tool to work with Qt projects 2014-10-25 13:19:22 +02:00
Thomas Nagy a3e882dbba
Moved the stale files example to a single module 2014-10-25 01:57:13 +02:00
Thomas Nagy 9fa6e0aa95
Issue 1503 - 'unicode' built-in handling in python3 2014-10-25 01:08:38 +02:00
Thomas Nagy 86b25fa523
print the latex command executed 2014-10-23 22:22:18 +02:00
Thomas Nagy 995c8a231d
Issue 1501 - Biber tool update 2014-10-22 18:45:21 +02:00
Thomas Nagy 7b7531b0c6
Missing sorting, which may lead to unnecessary rebuilds 2014-10-18 11:23:57 +02:00
Thomas Nagy c50f084ac8
docs 2014-10-15 20:57:16 +02:00
Thomas Nagy 9f6f814999
Issue 1497 - keep the hcode in subclasses 2014-10-13 19:45:05 +02:00
Jérôme Carretero bb6ad916b2 extras: cfg_altoptions: fix check_cfg to return True on success 2014-10-12 12:19:16 -04:00
Jérôme Carretero d70cd50352 extras: rename my inadvertently offending 'c_' tools to 'cfg_' which hopefully will be more appropriate 2014-10-11 21:14:39 -04:00
Thomas Nagy 293612bcf9
waf 1.8.2 2014-10-12 01:32:19 +02:00
Thomas Nagy 30fb9699ef
c_* modules are reserved by compiler_c. These modules redefine check_cfg which will break configuration tests in a very nasty way. 2014-10-12 00:08:16 +02:00
Thomas Nagy 310e691209
BOM is unnecessary 2014-10-11 19:35:16 +02:00
Thomas Nagy c705d019d1
Python3 syntax 2014-10-11 19:24:43 +02:00
Thomas Nagy 172d5db155
Apidoc compilation 2014-10-11 18:57:09 +02:00
Thomas Nagy 037cb7af78
waf 1.8.1 2014-10-11 11:49:00 +02:00
Jérôme Carretero 05ef26f3b8 waflib: extras: add c_cross_gnu tool that shortcuts cross-compilation config 2014-10-11 01:44:47 -04:00
Thomas Nagy b2cd86fc21
Do not force task generator attributes to be all lists 2014-10-10 07:31:16 +02:00
Thomas Nagy bea70e4e91
Issue 1495 - Option group names from waf 1.7 2014-10-07 18:43:44 +02:00
Thomas Nagy 49f9cd2aa4
Issue 1494 - Use the upper class just in case 2014-10-07 18:31:00 +02:00
Thomas Nagy a71bc05547
Removed python 2.4 from the list of interpreters for testing 2014-10-04 13:58:53 +02:00
Thomas Nagy 8c0ead0ca1
Python 2.5 is definitely required 2014-10-04 13:49:28 +02:00
Thomas Nagy 5e4110443e
Optimizations 2014-10-04 12:44:03 +02:00
Thomas Nagy 71e318e371
docs update 2014-10-04 10:44:12 +02:00
Thomas Nagy 1979e7425c
Cosmetic changes 2014-10-04 02:02:38 +02:00
Thomas Nagy 6c9e7c6233
Much faster version of get_config_header 2014-10-02 21:09:16 +02:00
Damián Nohales a9edfca3c8 glib2: Remove r_change_ext function 2014-10-01 01:23:42 +02:00
Thomas Nagy a3b59a5c02
Obtain the default prefix from the wscript file if provided 2014-10-01 01:11:05 +02:00
Thomas Nagy f748a01907
Some more compatibility in compat15.py 2014-09-30 23:53:52 +02:00
Thomas Nagy 9a0a7ca562
Added crutches for python-config detection on Python 2.5 2014-09-28 23:07:02 +02:00
Thomas Nagy c422a1c647
Let waf 1.8 run under python 2.4 - with ugly outputs 2014-09-28 22:47:14 +02:00
Thomas Nagy 05d117bad8
Fix for Python 2.5 2014-09-28 22:01:46 +02:00
Thomas Nagy a3942d386b
Fixed the accidental data sharing introduced by the previous patches 2014-09-28 21:32:59 +02:00
Thomas Nagy 8fc4aacb7f
Regressions due to the changes in find_program 2014-09-28 21:16:54 +02:00
Thomas Nagy c35c7237d6
Other problems with encodings 2014-09-28 19:27:02 +02:00
Thomas Nagy 608c2c51e1
Update load_module in compat15.py too 2014-09-28 02:58:24 +02:00
Thomas Nagy 388d94cca2
Ensure that Python scripts are read in the desired encoding 2014-09-28 01:30:00 +02:00
Thomas Nagy fcc950dd46
Short build outputs by default in waf 1.8 2014-09-27 16:35:33 +02:00
Damián Nohales 2459bee8af intltool: add style option to intltool_in
This allow to user to get abstracted about the passed intltool-merge
flags, so this code:

    bld(
        features = 'intltool_in',
        flags    = ['-d', '-q', '-u'],
        source   = 'myapp.desktop.in',
    )

Now is equivalent to:

    bld(
        features = 'intltool_in',
        style    = 'desktop',
        source   = 'myapp.desktop.in',
    )
2014-09-22 20:13:00 +02:00
Thomas Nagy 620dea5fb7
Issue 1487 - there can be race conditions or other kinds of errors to ignore 2014-09-22 19:31:01 +02:00
Jérôme Carretero 02ad15eb17 extras: halide: support generation of arbitrary outputs 2014-09-22 00:46:28 -04:00
Thomas Nagy ee1f04770d
waf-1.8.0rc1 2014-09-21 21:04:48 +02:00
Thomas Nagy d43e1278cf
missing import 2014-09-21 21:02:54 +02:00
Damián Nohales 471e8faf6e demos: add GResource examples in glib2 demo 2014-09-21 20:59:25 +02:00
Damián Nohales 9cd10fe885 glib2: add GResource support 2014-09-21 20:59:04 +02:00
Thomas Nagy c427ab45af
Issue 1392 - extras/use_config.py 2014-09-21 20:50:43 +02:00
Thomas Nagy fec1956327
Issue 1212 2014-09-21 12:47:32 +02:00
Thomas Nagy 10f0efd217
Issue 1319 - make unit test paths more configurable 2014-09-21 11:03:34 +02:00
Thomas Nagy 69c1fb1fec
Issue 1319 - make unit test paths more configurable 2014-09-21 10:58:52 +02:00
Thomas Nagy cb030505af
Issue 1487 - delete files or folders only if they exist on the filesystem 2014-09-21 10:10:55 +02:00
Damián Nohales f990fca8ff intltool: use APPNAME by default in intltool_po
Now user doesn't need to specify appname for intltool_po taskgen if he
has declared APPNAME.
2014-09-20 22:00:06 +02:00
Thomas Nagy e1076cea83
Issue 1461 - Faster LaTeX processing 2014-09-20 21:51:54 +02:00
Thomas Nagy 95dad25c78
Issue 1485 again 2014-09-20 20:35:43 +02:00
Thomas Nagy c182070bc5
Issue 1067 2014-09-20 19:27:27 +02:00
Thomas Nagy 9a782b0179
Issue 1322 2014-09-20 17:41:10 +02:00
Thomas Nagy 23e98b81e0
Issue 1485 2014-09-20 16:53:33 +02:00
Thomas Nagy 954056a782
Issue 1480 - force Node.children to the desired type 2014-09-20 14:29:16 +02:00
Thomas Nagy 74b5ffc153
Issue 1173 - resolve symlinks to the build directory 2014-09-20 13:46:11 +02:00
Thomas Nagy 7f2cc4ef42
Issue 1462 - Swig file installation example 2014-09-20 11:19:19 +02:00
Thomas Nagy d246665be2
Let the swig tool scan <> includes 2014-09-20 11:04:33 +02:00
Damián Nohales c0314641b7 intltool: move some code outside a loop in intltool_in
It's fine to execute this code just one time since the environment
variables won't change throughout the different source files.
2014-09-18 16:54:35 -03:00
Damián Nohales 2b5cab25d0 intltool: don't install merged files by default in intltool_in
It doesn't make sense to install merged files in LOCALEDIR in most
cases.
2014-09-18 16:54:35 -03:00
Damián Nohales 71b21ac6ed intltool: fix INTLCACHE directory 2014-09-18 16:54:35 -03:00
Damián Nohales 8cf01e50b1 intltool: make podir default value consistent
Is more predictable if intltool_po and intltool_in have the same default
podir, that is, the current src directory.
2014-09-18 16:54:35 -03:00
Damián Nohales d3badc58b4 intltool: be more clear on what is the default podir 2014-09-18 16:54:35 -03:00
Thomas Nagy 7b291268d4
Issue 1483 - i enjoy removing code 2014-09-17 19:14:30 +02:00
Thomas Nagy 7e84079cc7
docs 2014-09-14 20:26:07 +02:00
Thomas Nagy 470219ee6b
Issue 1477 - boost python detection 2014-09-14 20:08:35 +02:00
Thomas Nagy d02127d136
sort the boost libraries by version number too, there may be more than one version installed on the system 2014-09-14 19:46:24 +02:00
Thomas Nagy de249291c7
Removed the unnecessary and broken variable PYTHON_LIB defined in waf.bat 2014-09-14 18:57:03 +02:00
Thomas Nagy d491de7486
conf.check generalization using arbitrary build functions 2014-09-14 10:58:29 +02:00
Thomas Nagy 08c4b175bf
Include all static libraries specified in the use=line 2014-09-14 10:48:12 +02:00
Jérôme Carretero b541cd7327 extras: halide: handle variants, for cross-compilation 2014-09-13 13:49:25 -04:00
Jérôme Carretero cacc8c343b file_to_object: use different alignments 2014-09-08 17:36:49 -04:00
Jérôme Carretero e8f4715c8d extras: file_to_object: change method to work with the assembler instead of linker 2014-09-08 17:31:22 -04:00
Harald Klimach 7605c17732 Include the '-' in the regex to match the IA-32 string on 32 bit windows. 2014-09-03 13:50:10 +02:00
Syl 2242b53413 reworked previous fix to match the extension in the regex, based on if the lib is linked statically or dynamically.
removed regex "group" because no rules were applied (+?), they were mandatory.
2014-09-03 00:23:19 +02:00
Syl e0d6bcd1bb related to #1477, add extension filter when matching lib names. 2014-09-02 23:42:55 +02:00
Thomas Nagy a112808610
Issue 1481 - unreadable configuration cache file 2014-09-02 22:14:51 +02:00
Syl ebfabe3cdb fix indent 2014-09-01 23:17:52 +02:00
Syl 6f228d762a fix issue #1477, thanks to Maxime Arthaud for the patch. 2014-09-01 23:14:10 +02:00
Matt Clarkson f550175c7f
Add the 'errors' attribute to AnsiTerm
When using input in Python3 an exception is thrown because the AnsiTerm does not
have the errors attribute. This patch fixes that.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-09-01 18:33:56 +02:00
Jérôme Carretero 4b03c35660 extras: add c_config_alt tool 2014-09-01 11:26:03 -04:00
Jérôme Carretero a4d0442e45 extras: add file_to_object tool 2014-08-31 22:37:07 -04:00
Jérôme Carretero 3e378c45bf extras: add halide code generation tool 2014-08-31 22:18:03 -04:00
Thomas Nagy 49a8bb15b2
Issue 1471 - use python-config to detect python 2014-08-31 21:11:41 +02:00
Thomas Nagy 69bb9f9209
Handle the -Xlinker case in parse_flags 2014-08-31 21:03:03 +02:00
Thomas Nagy 6ffde12338
Use os.path.join to enable builds from drive letters X:\ 2014-08-30 13:05:46 +02:00
Thomas Nagy f7fb6e2f95
Enable waf to run from an existing python process 2014-08-29 22:30:20 +02:00
Thomas Nagy 671add18e0
Install in the pycache folder of the file, not in the one of the task generator - Issue 1478 2014-08-29 20:05:58 +02:00
Harald Klimach 80f8225f8d Do not use /logo on windows, as ifort expects input files with this option. 2014-08-28 11:27:44 +02:00
Thomas Nagy fdc868858d Merge branch 'master' of https://code.google.com/p/waf 2014-08-25 20:19:48 +02:00
Thomas Nagy 3bf6def01d
Issue 1476, regressions in syms.py due to find_program 2014-08-25 20:01:43 +02:00
Thomas Nagy 7e9c18f5e7
NameError -> TypeError - Issue 1475 2014-08-22 22:45:55 +02:00
Thomas Nagy a122bc98c9
another example 2014-08-20 21:25:41 +02:00
Harald Klimach 3c49de07a7 Modified ifort to use the -logo option for search of the compiler version. 2014-08-18 19:47:11 +02:00
Thomas Nagy 002badce44
new command-line option --color - Issue 1474 2014-08-17 22:59:18 +02:00
Harald Klimach ad330d76bc Changed version option on windows to use /-prefix. 2014-08-14 20:19:51 +02:00
Thomas Nagy cc1d38d14c
It seems that the Intel compiler dropped 'ifort' string 2014-08-14 20:03:28 +02:00
Thomas Nagy 679b2850d7
print_usage is useless - override with print_help 2014-08-10 21:38:08 +02:00
Thomas Nagy 32d2f0e1da
merged the os2 case in Utils.is_win32 2014-08-09 18:08:39 +02:00
Thomas Nagy 6eec35c1de
Fixed the 'missing shutdown function' error 2014-08-05 15:43:28 +02:00
Thomas Nagy 4958b4ec47
New extra tool for network shares and long paths handling 2014-08-04 23:09:54 +02:00
Thomas Nagy 2b5377cd87
Better support for UNC paths in external tools 2014-08-04 19:52:58 +02:00
Thomas Nagy 81ce0b6c17
max path limitation in file installation - Issue 1469 2014-08-04 15:17:28 +02:00
Thomas Nagy bd26b078ca
Issue 1468, accents in python files 2014-08-03 17:34:18 +02:00
Thomas Nagy f6aca05fdd
Create __pycache__ files - Issue 1403 2014-07-25 18:15:23 +02:00
Thomas Nagy e9ae4cc5b0
Moved the ocaml, fluid, go and swig examples to the playground area 2014-07-20 05:14:56 +02:00
Thomas Nagy 1491e620ad
Added Configure.autoconfig = 'clobber' to force previous configuration options 2014-07-20 05:13:22 +02:00
Syl 76731c8155 qt5: added Qt5WinExtras 2014-07-14 22:27:40 +02:00
Thomas Nagy e48ed4d37a
Issue 1465 2014-07-14 19:59:01 +02:00
Syl 2db34905bd fixed --make-waf with python3 2014-07-06 17:41:54 +02:00
Syl ffc07831cc boost: find_file throw an exception is the file isn't found. 2014-07-06 17:30:14 +02:00
Syl b704a18559 boost: on Windows, install DLL for libs linked dynamically.
It will only install DLL when waf is called with the "install" parameter, and will install the DLL in the install directory.
If the user wants to run his exe in the build dir, I'd recommend setting boost lib in the PATH.
2014-07-06 16:35:52 +02:00
Syl 4a3a3116c5 qt5: added qtmain to the possible lib
on Windows, build with QTMAIN and subsystem="windows" to create a Qt app without the console, Qt will use your "main" and manage the "WinMain" for you.
2014-07-06 11:28:54 +02:00
Thomas Nagy 6bd7beb194
Enable case-insensitive Node lookup 2014-07-05 23:02:38 +02:00
yngwe 342b4ab1ce c_config: cleanup directory after configuration if no cache is needed. 2014-07-02 09:37:22 +02:00
Matt Hoosier 78c9384e1c
Improve support for BuildContext.install_*() to overwrite exiting files
A request such as:

  def build(bld):
    bld.install_files('/usr/share/foo/', bld.path.find_node('foo.txt'),
                      chmod=0444)

Will currently cause an IOError (especially on Windows) upon repeated
requests to invoke 'waf install'. This is due to a wedged state in
which the first 'waf intall' makes the destination file with 0444
permissions, but the OS (again, especially Windows) refuses to honor
subsequent attempts to write the file as the current
InstallContext.do_install() handles this attempt.

This changeset adjusts InstallContext.do_install() so that its
behavior is more similar to the familiar 'install' program used during
an Autotools programs' "make install" phase. That is, we now
explicitly attempt to temporarily adjust the permissions of the target
file to include user-writability (0644) for the moment of overwrite.
This has no observable effect on the end result; the last bit of
InstallContext.do_install() forcibly resets the target file to the
user's requested permission mask anyway.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-29 22:25:16 +02:00
Thomas Nagy d96844a913
Updated the pdflatex example for newer texlive versions (Ubuntu 14) 2014-06-20 11:40:49 +02:00
Syl 679fe6f807 boost.py: use a different variable to not overwrite tags when matching libs (with python) 2014-06-18 00:12:30 +02:00
Syl 398c505d3d removed testing code. 2014-06-17 23:52:57 +02:00
Syl 1b4eef898f boost.py:
improved regex, removing unnecessary plus sign (we want to match only one group)
reworked python matching (mostly for ubuntu I guess). In case of boost_python, tags and python version are optional, which should work on ubuntu and other cases, without duplicating matching patterns if we aren't searching for boost_python.
added back mandatory tags for the last line (for windows) and added a last line to match boost_lib only (arch/manjaro)
2014-06-17 23:40:21 +02:00
Syl 62879268b2 another potential breakage with previous boost.py
changed the way how the abi is generated, the tag for static (-s) is now added automatically based on the lib you specified in 'lib' and 'stlib'
added back --boost-mt
When checking file pattern, the abi is now optional in the last rule. It's now easier to find a lib on linux if your wscript if also configured for windows.
2014-06-17 20:29:26 +02:00
Syl 6251983780 WARNING: I broke the compatibility with previous boost.py
- removed "static" parameter, now use stlib to specify static libs (added a warning if you were using it)
- removed "mt" parameter, now specify it as part of the abi (see help)
- added "stlib" parameter, to specify which lib will be linked statically. "lib" is used to link shared libs.

explanation:
After struggling to link Boost.Log, the problem lies into which libs can/must be linked statically and dynamically.
I built a small test with only system, locale, log_setup, log and thread, and could link it as static.
But after adding boost_filesystem, I couldn't link everything as static anymore and would fail on a dependency in "locale" (icu, nconv).
Linking everything as shared would failed aswell (log). But linking only "locale" as shared, and the rest as static would work.
Hence the change.

Since I broke everything, I figured I would rework the "mt" parameter, since it's kinda part of the abi on windows.
2014-06-15 17:28:26 +02:00
Thomas Nagy 89d3870951
Another regression due to the change in find_program from Jerome 2014-06-12 21:32:23 +02:00
Thomas Nagy e6b729487a
Moved the doxygen example to where it belongs under playground/ 2014-06-12 07:24:55 +02:00
Josh Bartel 20112c4556
doxygen: Ensure output directory is created
Ensure the output directory is always created to avoid issues when
trying to install on a clean build.

Change-Id: I64be30348af7862971cbbc1f17bc53213b9998f3
Type: Bug Fix
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-12 07:20:31 +02:00
Josh Bartel a7eb3d811b
msvc: Create new task to install pdb file
Previously the msvc tool was re-using the install_task set up by ccroot
in apply_link by appending files to install_task.sources.

This is problematic because the install task is posted by the time the
call to install_files returns and the post method of the install task
copies files from sources to inputs and inputs as the list of files
that get installed.  This usually worked due to the fact that the
install_task does not guard against getting posted multiple times.  In
some situations such as installing and building a single target using
the --targets flag this was not working and pdb files would not be
installed.

This updates the msvc tool to create a separate task to install the
pdb files instead of re-using the existing install_task.  This fixes
the issue observed with pdb files not being installed when building and
installing a single target and is also consistent with how other files
are being installed from ccroot such as in apply_implib and apply_vnum.

Change-Id: I9fc53061847453fdb5cf105f2276a2eab5fd43b4
Type: Bug Fix
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-11 00:26:14 +02:00
Josh Bartel 81c3ec0bf3
doxygen: Add install support
This adds support to the doxygen tool for installing the documentation
that was generated.  A new install_path attribute can be added to the
doxygen TaskGen to control where it should be installed to.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-09 00:33:20 +02:00
Josh Bartel 53945acb25
doxygen: Set cwd to the Doxyfile folder
The doxygen tool had previously been modified to always run from the
root of the build directory.  This was done as a workaround to allow
the OUTPUT_PATH in the doxyfile to contain a relative path.  The tool
then had to be modified to fix up any relative paths in the Doxyfile
to be relative to the root of the build directory.  This is problematic
because there are many DoxyFile parameters that can be relative paths.

This patch fixes up the logic to execute doxygen in the same directory
where the DoxyFile lives.  This allows all relative paths in the
Doxyfile to work so they no longer need fixed up.  It then updates the
logic for OUTPUT_DIRECTORY to handle relative paths correctly.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-09 00:31:13 +02:00
Alexander Afanasyev 9bad7d4f58
ccroot: Setting chmod=Utils.O644 for installation of static libraries
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-06-09 00:25:52 +02:00
Thomas Nagy 3ee08a88f4
Issue 1451 2014-06-08 17:34:35 +02:00
Thomas Nagy 1889619dd4
miscallenous enhancements - Issue 1450 2014-05-30 20:35:09 +02:00
Thomas Nagy 8c678183b0
Follow-up on Issue 1450 2014-05-29 07:23:57 +02:00
Thomas Nagy 3f484f4446
End of Issue 1450 2014-05-24 09:01:31 +02:00
Thomas Nagy 4161ce4827
Issue 1457 - boost or.hpp file 2014-05-23 00:49:27 +02:00
Thomas Nagy 27f0fc9450
Issue 1454 2014-05-21 17:21:29 +02:00
Thomas Nagy 6566072086
missing file
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-05-21 17:05:48 +02:00
Thomas Nagy 8821ab2b28
moved pch out of demos (requires extras/pch.py) and disabled the dependency on boost 2014-05-21 01:37:14 +02:00
Alexander Afanasyev 3970ffd149
extras/pch.py: Experimental extension to enable precompiled headers for clang++ and g++
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-05-21 00:56:41 +02:00
Thomas Nagy c21317c727
Issue 1453 2014-05-19 21:32:24 +02:00
Thomas Nagy 6be13a74bb
cosmetic change: have you forgotten to load a waf tool? 2014-05-18 17:53:03 +02:00
Thomas Nagy 905d0295f6
Issue 1452 2014-05-17 00:11:34 +02:00
Thomas Nagy e4a0e0746b
Escape null bytes potentially present in the waf file - workaround for Pypy 2.3 2014-05-10 06:17:00 +02:00
Thomas Nagy 79ef335d3d
Added defines for asm - #1442 2014-04-30 22:37:36 +02:00
Thomas Nagy d4ca0e8cdc
Issue 1440 2014-04-27 20:06:04 +02:00
Jérôme Carretero 955c09d037 playground: add embedded resources example 2014-04-24 00:53:36 -04:00
Thomas Nagy 14a8f03012
Cosmetic changes in extras/swig.py 2014-04-20 02:32:25 +02:00
Thomas Nagy 65d25a9a69
Unmask as many exceptions as possible 2014-04-20 02:29:27 +02:00
Thomas Nagy 8e7c583496
add bld(ut_cmd=True) to enable specific test execution commands - Issue 1438 2014-04-14 18:54:04 +02:00
Thomas Nagy 5f95323ecb
Added a note for -kk in 'waf --help' 2014-04-12 18:16:44 +02:00
Thomas Nagy 4004dd47f3
do not eliminate backslashes from scriptlet expressions when shell=False - Issue 1433 2014-04-12 14:01:10 +02:00
Thomas Nagy 0c4b23fe88 hard-coded code snippets in boost.py - Issue 1432 2014-04-10 07:44:17 +02:00
Thomas Nagy ffb298fabc
Define all platform-specific functions in Utils.py so that they can be replaced again later 2014-04-09 22:27:17 +02:00
Thomas Nagy 063da21871
Changed the default installation folders for import libraries 2014-04-09 22:24:55 +02:00
Thomas Nagy 7cc366513f
fixed the case: CC='ccache gcc' waf configure build 2014-04-07 22:10:56 +02:00
Thomas Nagy 3e426d9198
better location for the finalizer - Issue 1374 2014-04-07 19:02:29 +02:00
Thomas Nagy 97b1dca7b8
Issue 1374 - close config.log 2014-04-01 23:06:10 +02:00
Thomas Nagy 816023237b Define the intltool cache flag automatically - Issue 1221 2014-03-30 01:33:15 +01:00
Thomas Nagy 6a419b6289 New qt5 libs 2014-03-25 22:17:51 +01:00
Chris Winter 53387d8eff c_config: parse_flags: add support for parsing '-isystem' and friends
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-03-24 12:43:29 +01:00
Thomas Nagy b5ceb9ef12
Regression due to lists in GHCPKG 2014-03-17 21:14:19 +01:00
Thomas Nagy 9f7e6a1bfb
Revert "it turns out that writeconsole in ansiterm.py is not needed"
This reverts commit 3deaeb241a.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-03-14 21:47:19 +01:00
Thomas Nagy 0cd060c394
Make it easier to declare asm or preprocessed outputs to c/c++ tasks
The following can be used to add asm outputs to a c++ task (gcc):

        from waflib import Task
        from waflib.TaskGen import feature, after_method
        @feature('cxx')
        @after_method('process_source')
        def add_asm_outputs(self):
                for tsk in self.compiled_tasks:
                        node2 = tsk.outputs[0].change_ext('.s')
                        tsk.env.append_value('CXXFLAGS', '-Wa,-adhln=%s' % node2.abspath())
                        tsk.outputs.append(node2)
2014-03-11 21:23:57 +01:00
Thomas Nagy 11180ae9f6 rcc detection for rcc-qt4 2014-03-11 01:24:49 +01:00
Thomas Nagy 15f24dc7d6
Fix for bld(features='subst', fun=xyz) 2014-03-11 01:18:58 +01:00
Thomas Nagy 584bc46c55 Let subst_fun write empty files 2014-03-09 18:56:12 +01:00
Thomas Nagy 92638245ff
Fixed bld(features='tex', deps='wscript') 2014-03-09 18:25:53 +01:00
Thomas Nagy dd6fd8ce5d support for included gpg signatures (use utils/verify-sig.py to verify them) 2014-03-05 22:52:54 +01:00
Thomas Nagy 72334441ce Issue 1419 - gcc 2.95 detection 2014-03-05 21:23:32 +01:00
Syl 1afdb9bb73 gtest: fixed multiline output 2014-03-04 21:26:07 +01:00
Thomas Nagy 66c28e3578 hybrid builds 2014-03-04 08:22:48 +01:00
Thomas Nagy 015ad7349b Write a different waf-print-msvc.py file each time to help debugging 2014-02-26 07:24:47 +01:00
Syl 300d0cf0bc fixed cpplint with -p command line parameter 2014-02-25 22:52:17 +01:00
Syl 45507b2cdf #1413: moved a test 2014-02-24 20:36:36 +01:00
Syl 33bd87417d fix #1413: added sanity tests for LIB and INCLUDE in boost tool. 2014-02-24 20:35:38 +01:00
Thomas Nagy afd9d8fae9 Issue 1412 - reduce multiple underscores to one in computed define names 2014-02-22 10:47:19 +01:00
Syl a8626ef19c boost: rolled back one of my previous patch, "s" for static needs to be passed by abi.
(for example, sgd for static debug)
2014-02-22 09:13:18 +01:00
Thomas Nagy 40673e8860 api fix - Issue 1410 2014-02-20 22:38:22 +01:00
Syl e241496f3e gtest: reduced build requirements
(strange behavior with bld.stlib)
2014-02-20 22:20:48 +01:00
Syl 825b7b5abf gtest: output alignment 2014-02-20 21:36:56 +01:00
Syl 1edb8a2f00 gtest: added Google Unit Test example to playground 2014-02-20 21:33:00 +01:00
Thomas Nagy f4185e7a26 Added global file installation pointcut 2014-02-17 00:26:58 +01:00
Thomas Nagy ab82dd8b8b possible race when stripping libraries 2014-02-16 23:42:47 +01:00
Thomas Nagy 2d709c24d5 docs 2014-02-16 23:20:32 +01:00
Syl 0e6728ea6e cpplint: fixed import, sry. 2014-02-16 01:47:18 +01:00
Thomas Nagy 87b447772a
Issue 1409 - syms for mac-o/darwin 2014-02-16 01:28:46 +01:00
Syl 67eebf06a0 cpplint: skip it if waf can't import the module 2014-02-15 13:04:44 +01:00
Syl ab108c002d boost: added "s" to lib pattern, to link with static lib 2014-02-15 13:01:26 +01:00
Syl b0330b0d5d boost: split env variable by ";" instead of space
allows to specify multiple path in INCLUDE and LIB
2014-02-15 11:09:37 +01:00
Joe Steeve 876d640d71 #1404, "boost tool misses libs in Debian multiarch (x86_64)", fixed
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-02-14 21:39:54 +01:00
Thomas Nagy fde332a58b Slightly better error messages 2014-02-14 21:25:38 +01:00
Syl 9febff1d4a cpplint: added --cpplint-output, if the user don't want to use my custom output (choices are vs7, emacs, eclipse, from original script)
cpplint: improved options to env parsing
2014-02-11 23:56:37 +01:00
Krzysztof Kosiński f88bf4f554 Fix defining the xxx_compiler variables in configure().
Due to recent changes, setting xxx_compiler in configure() had no effect.
This commit fixes the problem and changes the examples to show setting
the xxx_compiler variables at the top level of the wscript, so that
the default compilers are correctly reported in the help output.
2014-02-10 09:27:11 +01:00
Syl a71edf58e7 cpplint: changed the way to initialize env from options
cpplint: fixed --cpplint-break
2014-02-09 22:10:47 +01:00
Thomas Nagy 0aa480fdf0 docs 2014-02-09 18:23:26 +01:00
Syl 610d0d59f2 Merge branch 'master' of https://code.google.com/p/waf 2014-02-08 21:04:00 +01:00
Syl c2d1e1b3e5 added cpplint tool 2014-02-08 20:57:46 +01:00
Thomas Nagy 1b49106197 Added a solver to distnet 2014-02-08 15:49:25 +01:00
Gustavo Carneiro 69fb126a4c Issue 1405 2014-02-04 10:55:26 +00:00
Thomas Nagy 45f0f3b77a Ported distnet to Python 3 2014-02-03 23:16:32 +01:00
Thomas Nagy 8faafeb913 Issue 1276 - suppress configuration outputs 2014-02-02 04:04:21 +01:00
Jérôme Carretero d15bf94934 add distnet extras tool, and assorted examples (WIP)
vs. builds on shared folders...
2014-02-01 14:41:05 -05:00
Thomas Nagy ff4b88c82f Removed unused variables from Task.py 2014-02-01 14:33:00 +01:00
Thomas Nagy 6e1e59a999 Do not print tasks that have nothing to display 2014-02-01 14:28:00 +01:00
Thomas Nagy e085c8d25d Moved the find_binary function into a replaceable method 2014-02-01 14:13:16 +01:00
Thomas Nagy 1018065c2e Disabled the duplicate flag filter in bld(...) 2014-01-30 21:37:00 +01:00
Thomas Nagy c8bc800432 A more robust way of sorting commands in remote.py 2014-01-30 08:07:07 +01:00
Krzysztof Kosiński 6f18c1bd99 Revert the prune_flags changes.
The changes break flags such as -framework X -framework Y.
2014-01-27 16:34:40 +01:00
Krzysztof Kosiński c9fe554af4 Fix typos in compiler_* tools.
Commit ca60d62bed contaied some errors resulting from copy-pasting
code around, which caused problems with D and Fortran compiler tools.
2014-01-27 16:20:01 +01:00
Krzysztof Kosiński 48a82dacbf ccroot: allow overriding the prune_flags setting
through a taskgen parameter
2014-01-27 16:12:02 +01:00
Krzysztof Kosiński 1e92b72aa6 ccroot: optional deduplication of command line flags.
Introduce a global variable in ccroot called prune_flags.
If set to "True", only the last repetition of each flag
will be left in the command line.
2014-01-27 04:46:14 +01:00
Krzysztof Kosiński 8147d0a18b Add support for parameter define_name to check_cfg 2014-01-27 03:45:35 +01:00
Krzysztof Kosiński 47bd581246 Modularize the tools 'glib2' and 'intltool'.
In some scenarios only some components of the glib2 tool are
necessary; for example, if intltool-merge is only used for
creating localized desktop files, it's not useful on Windows.

Rewrite the configuration function of the tools into several methods,
so that the 'funs' parameter can be used to only configure
specific programs from the tools.
2014-01-27 02:34:27 +01:00
Thomas Nagy d4b2f086a1 Enable automatic ssh host discovery in remote.py 2014-01-26 17:57:49 +01:00
Krzysztof Kosiński b0f8796a27 c_bgxlc: append rather than prepend the compiler 2014-01-26 05:12:56 +01:00
Krzysztof Kosiński f3c57157ea Revert "Rename the c_bgxlc tool to bgxlc." 2014-01-26 05:11:13 +01:00
Thomas Nagy eb9bf12473
added a note regarding the branch waf-1.7 2014-01-26 01:27:02 +01:00
Krzysztof Kosiński 38d6ae7d57 Merge master into waf-1.8, without changing contents 2014-01-26 01:05:02 +01:00
Thomas Nagy 74b36a1002 Removed a warning in remote.py and ensured each variant runs a remote command 2014-01-25 23:58:41 +01:00
Thomas Nagy 4a0a7106c4 Do not climb if a command starts by 'configure' 2014-01-25 23:38:29 +01:00
Jérôme Carretero 173cd3beca add remote tool, for review 2014-01-25 16:55:03 -05:00
Krzysztof Kosiński 1986a6a80b Interpret leftover arguments containing an equals sign
as environment variable definitions rather than commands
2014-01-25 22:28:07 +01:00
Krzysztof Kosiński e4afaa957e Update default compilers in compiler_c and compiler_cxx
to include the clang tools
2014-01-25 22:12:29 +01:00
Krzysztof Kosiński b0b7227ddd Rename the c_bgxlc tool to bgxlc.
Tool names starting with "c_" are reserved for special tools.
2014-01-25 21:34:28 +01:00
Krzysztof Kosiński e95b150c56 Add simple compiler tools for clang and clang++ 2014-01-25 21:00:27 +01:00
Krzysztof Kosiński 30bdee769b Clean up some cruft in the compiler tools (icc, icpc, gxx) 2014-01-25 20:59:14 +01:00
Krzysztof Kosiński 82ab2fcaf5 Merge branch 'waf-1.8' of https://code.google.com/p/waf into waf-1.8 2014-01-25 20:35:48 +01:00
Krzysztof Kosiński 80b831a958 Improvements to conf.find_program()
1. When using a relative name passed through the environment,
search for it in PATH rather than using it as-is.
This is better, because PATH could have been changed.

2. Do not search for absolute paths in PATH.
2014-01-25 20:28:30 +01:00
Thomas Nagy 564c4c1a60 (keep the -1 in ansiterm for now) 2014-01-25 20:26:11 +01:00
Thomas Nagy d897666aa7 ansiterm fix: use FillConsoleOutputCharacterW instead of FillConsoleOutputCharacterA 2014-01-25 20:02:20 +01:00
Thomas Nagy 1b534ee8d2 ansiterm fix: use FillConsoleOutputCharacterW instead of FillConsoleOutputCharacterA 2014-01-25 19:59:51 +01:00
Krzysztof Kosiński 9a824a5649 Fix missing module import in compiler_c 2014-01-25 19:31:11 +01:00
Krzysztof Kosiński c38a4fb4f0 More consistent error messages in the generic compiler tools 2014-01-25 19:28:55 +01:00
Krzysztof Kosiński 86b87413c8 Always return a value which evaluates to True when check_cfg succeeds. 2014-01-25 19:12:44 +01:00
Krzysztof Kosiński ca60d62bed Modify the generic compiler tools to use the "Configuration options" group.
Add a mechanism to set the compiler precedence for D, for consistency.
2014-01-25 18:50:04 +01:00
Krzysztof Kosiński cffbb89cb4 Move the initialization of default options from opt_parser
to OptionsContext, so that tools can add options to the default
option groups without using black magic.
2014-01-25 18:28:14 +01:00
Krzysztof Kosiński f386392fb2 Change the option group for glib2 schema dir to be the same
as the one for gnu_dirs installation directories.
2014-01-25 18:24:51 +01:00
Krzysztof Kosiński 526abea553 Improve the directory descriptions in gnu_dirs 2014-01-25 18:23:07 +01:00
Thomas Nagy c395bffed8 Workaround for Issue 1401 - the progress bar cannot display the last character on windows 2014-01-25 02:02:28 +01:00
Krzysztof Kosiński 303c6113fa Always return a value which evaluates to True when check_cfg succeeds. 2014-01-25 01:35:47 +01:00
Thomas Nagy d413616400 The progress bar should always appear on stderr 2014-01-23 22:22:15 +01:00
Thomas Nagy cb98fcf6cc Issue 1399 - invalid cast in syms.py 2014-01-23 21:20:57 +01:00
Thomas Nagy 2943824c51 Issue 1399 - invalid cast in syms.py 2014-01-23 21:19:57 +01:00
Thomas Nagy 3498ef6773 info to stdout, warning and errors to stderr 2014-01-19 21:28:17 +01:00
Thomas Nagy d2f265c8c7 'x use y use AAA' will add the AAA flags to x, but 'x use y uselib AAA' will not 2014-01-18 01:47:29 +01:00
Thomas Nagy fa8fed39a0
'x use y use AAA' will add the AAA flags to x, but 'x use y uselib AAA' will not 2014-01-18 01:46:53 +01:00
Thomas Nagy fbb7a0e720
Merge from Jerome's branch 2014-01-16 02:03:53 +01:00
Thomas Nagy 0c3ab4ce21 waf 1.7.15 2014-01-14 21:12:21 +01:00
Matt Fischer 2f2866a4cd msvs: Added support for MSVS 2012
With the addition of one new field, the project files generated by
the msvs command can be opened by 2012 as well as 2010.

Change-Id: I27c3a04ec156029f7a6690b27cf27013f5816d2f

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-01-14 20:26:09 +01:00
Matt Fischer f63ac9793d msvs: Added support for MSVS 2012
With the addition of one new field, the project files generated by
the msvs command can be opened by 2012 as well as 2010.

Change-Id: I27c3a04ec156029f7a6690b27cf27013f5816d2f

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2014-01-14 20:25:37 +01:00
Thomas Nagy e055513883
waf 1.7.15 2014-01-14 20:14:35 +01:00
Thomas Nagy 9f7ceb0e91 Issue 1395 2014-01-14 20:11:11 +01:00
Thomas Nagy acb3b406a4 Issue 1395 2014-01-14 20:10:23 +01:00
Thomas Nagy 835528be01 docs for the regexp substitution in demos/subst/ 2014-01-14 20:01:05 +01:00
Thomas Nagy 37f051a3a2 Enable custom regexp in bld(features='subst', re_m4=...) 2014-01-14 19:59:22 +01:00
Thomas Nagy 3581b89fbb
Enable custom regexp in bld(features='subst', re_m4=...) 2014-01-14 19:58:45 +01:00
Thomas Nagy a29f775851 Merge from Jerome's branch 2014-01-14 02:31:08 +01:00
Thomas Nagy f035709cfb Testcase for the mem_reducer tool 2014-01-12 22:28:55 +01:00
Thomas Nagy 44c4fe8b6e Testcase for the mem_reducer tool 2014-01-12 21:35:33 +01:00
Thomas Nagy b11454526d Fixed the KeyError for multiple dependencies on the same task 2014-01-12 21:19:49 +01:00
Thomas Nagy d778b64c11 Fixed the KeyError for multiple dependencies on the same task and added imported the missing Logs module 2014-01-12 21:15:32 +01:00
Thomas Nagy 08de887cfb undefined variable in an example file 2014-01-12 19:55:47 +01:00
Thomas Nagy f7e709fa2d undefined variable in an example file 2014-01-12 19:53:14 +01:00
Thomas Nagy 010b944062 typo 2014-01-12 19:49:31 +01:00
Jérôme Carretero 0e7df22ad5 Utils: check_exe() to return an absolute path so it can be called
Because there cases where subprocess.Popen'ing the [result] can fail.
2014-01-08 01:58:11 -05:00
Thomas Nagy 12b1212f4d
command-line options override environment variables, and not the other way around 2014-01-06 15:00:45 +01:00
Thomas Nagy 9db44ff4a5
Removed the temporary range objects from ansiterm 2014-01-06 13:03:27 +01:00
Thomas Nagy 0cc696faa3
Invalid parameter type c_int passed to FillConsoleOutputCharacterA 2014-01-06 01:14:21 +01:00
Thomas Nagy cb3950ed1c
Invalid parameter type c_int passed to FillConsoleOutputCharacterA 2014-01-06 01:12:24 +01:00
Thomas Nagy 5c85d5907d
FillConsoleOutputCharacterA seems to be requiring a c_char, not a c_wchar 2014-01-06 01:01:10 +01:00
Thomas Nagy b2eb048d86
Cleanup in ansiterm.py 2014-01-06 00:58:00 +01:00
Thomas Nagy 001488b8d3
Signatures for the rest of ctype functions 2014-01-06 00:54:35 +01:00
Jérôme Carretero 33a60e79e7 treecleaner: 'in [...]' replaced by 'in (...)' where appropriate 2014-01-05 16:27:06 -05:00
Thomas Nagy d01f7f36e0
Stop creating range objects in ansiterm 2014-01-05 21:47:21 +01:00
Thomas Nagy f7ed219004
Fix for color failures on Windows 7 64-bit 2014-01-05 21:41:57 +01:00
Thomas Nagy 8d8ba52810
Removed the workaround in ansiterm.py 2014-01-05 21:39:39 +01:00
Thomas Nagy e01695d536
Trying to get rid of the invalid handle errors in ansiterm 2014-01-05 21:31:54 +01:00
Thomas Nagy 107ebc9251
Trying to get rid of the invalid handle errors in ansiterm 2014-01-05 21:30:52 +01:00
Thomas Nagy ece779b5ed
Temporary workaround for ctype errors (invalid handle is returned sometimes) 2014-01-05 20:53:13 +01:00
Thomas Nagy 68acc6a2b9
Return the column count on windows 2014-01-05 11:23:49 +01:00
Thomas Nagy f8b24e70a9
Forgot to change always/never by yes/no in Options.py 2014-01-05 10:54:18 +01:00
Thomas Nagy 85bfd3eded
Minor changes in the logging system 2014-01-05 10:51:24 +01:00
Thomas Nagy 3deaeb241a
it turns out that writeconsole in ansiterm.py is not needed 2014-01-05 10:18:57 +01:00
Thomas Nagy 4107a0e29d
New option --color to control the coloring, and split the coloring from the output synchronization code 2014-01-05 01:39:32 +01:00
Thomas Nagy fa5f149775
removed the is_vista verification, write the text by chunks and default to the default stream writer when not a tty 2014-01-04 23:20:17 +01:00
Thomas Nagy 526620f16d
Cleanup in ansiterm.py 2014-01-04 17:20:19 +01:00
Thomas Nagy 4ce22a6fa2
Typo 2014-01-04 12:15:21 +01:00
Thomas Nagy 1b34dadd88
Re-added Parallel.error_handler 2014-01-04 11:04:59 +01:00
Thomas Nagy 8ae91879ce
Revert 2f7d561cb0 - there are regressions and the performance improvement is in Pypy only 2014-01-03 22:32:58 +01:00
Thomas Nagy 5032695f26
Simplified the error handling on task status in Runner.py (API change) 2014-01-03 18:22:34 +01:00
Jérôme Carretero f462fd9f31 extras: clang_compilation_database: python3 fixes 2014-01-02 18:26:10 -05:00
Thomas Nagy f5e26ff749 make mem_reducer.py ready for python 3 2014-01-02 23:57:07 +01:00
Thomas Nagy f098a0dde4
make mem_reducer.py ready for python 3 2014-01-02 23:56:31 +01:00
Thomas Nagy 2f7d561cb0
Runtime improvements in Runner.py by using deques by default (python >= 2.4) 2014-01-02 23:35:17 +01:00
Thomas Nagy 5fc835639e
Encapsulate task skipping in a method to help with the shrinking sets feature 2014-01-02 20:21:45 +01:00
Jérôme Carretero 9d6eb24abf extras: gccdeps: fix for CXX_NAME (but some issues remain) 2014-01-02 18:13:55 +01:00
Thomas Nagy 44720924b6 case when c classes are brough by msvc but no c compiler is required, demos/c++/wscript on windows 2014-01-02 18:12:35 +01:00
Jérôme Carretero a99ddb808f extras: gccdeps: fix for CXX_NAME (but some issues remain) 2014-01-02 06:24:52 -05:00
Jérôme Carretero 6546e34176 Tools: ar: support for ARFLAGS environment variable
For instance, to make deterministic archives::

ARFLAGS=rcsD waf configure
2014-01-02 06:24:39 -05:00
Thomas Nagy 80bc0a65ce
moved the TINY_STEP variable to the module level 2014-01-01 19:59:59 +01:00
Thomas Nagy 0fad288425 wrong exception name in demos/subst/wscript 2014-01-01 16:07:19 +01:00
Thomas Nagy d74a2900a3 wrong exception name in demos/subst/wscript 2014-01-01 16:07:08 +01:00
Thomas Nagy 118bbfbf4d let ansiterm write to the standard error on windows 2014-01-01 15:11:32 +01:00
Thomas Nagy 4445b7e0b6 Issue 1391 xrange 2013-12-24 15:32:09 +01:00
Thomas Nagy 29252511d0 Issue 1390 - conf.check(lib='several libs') 2013-12-21 17:29:06 +01:00
Thomas Nagy 1b5560cf1c Issue 1390 - conf.check(lib='several libs') 2013-12-21 17:28:50 +01:00
Thomas Nagy d1eef8b272 Issue 1388 2013-12-20 18:16:56 +01:00
Thomas Nagy 69f73f9625 Issue 1388 2013-12-20 18:16:41 +01:00
Thomas Nagy a34eda4e8f Issue 1389 fc scanner improvements 2013-12-20 18:02:03 +01:00
Thomas Nagy c24471e4c0 Issue 1389 fc scanner improvements 2013-12-20 18:00:05 +01:00
Thomas Nagy 88485f61bb waf-1.7.14 2013-12-18 23:28:58 +01:00
Thomas Nagy 5c289a931a special case of files created in the source directory in combination with update_outputs 2013-12-18 23:21:49 +01:00
Thomas Nagy d2fcc7b7be special case of files created in the source directory in combination with update_outputs 2013-12-18 23:21:34 +01:00
Thomas Nagy be1d02c8d0 another optimization spot for the shrinking sets system 2013-12-15 17:21:17 +01:00
Thomas Nagy 2048f0fb89 another optimization spot for the shrinking sets system 2013-12-15 17:21:02 +01:00
Thomas Nagy 865abb89b7 shrinking sets for the memory reducer 2013-12-15 12:47:33 +01:00
Thomas Nagy f9536abbb8 shrinking sets for the memory reducer 2013-12-15 12:47:12 +01:00
Thomas Nagy 6ad49ae816 removed the set copy to enable faster iterations 2013-12-15 12:19:19 +01:00
Thomas Nagy a4b03b0fd6 removed the set copy to enable faster iterations 2013-12-15 12:19:01 +01:00
Thomas Nagy 48823f947f Memory usage reducer, based on a post to the mailing-list by Christian Nilsendahl 2013-12-12 15:27:23 +01:00
Thomas Nagy 6d05e237d2 Memory usage reducer, based on a post to the mailing-list by Christian Nilsendahl 2013-12-12 15:26:56 +01:00
Thomas Nagy c3e33a5eeb Issue 1384 - pickle changes in Python 3.4 2013-12-07 20:18:08 +01:00
Thomas Nagy c09de54b82 Issue 1384 - pickle changes in Python 3.4 2013-12-07 20:17:43 +01:00
Thomas Nagy ea549ae36e Issue 1382, hash randomization on python 3.3 causes reconfigurations 2013-11-28 20:16:00 +01:00
Thomas Nagy 6fb96036f0 Issue 1382, hash randomization on python 3.3 causes reconfigurations 2013-11-28 20:00:50 +01:00
Thomas Nagy 16c0bc9d2b problem when merging qt5.py (no run method) 2013-11-24 18:24:03 +01:00
Thomas Nagy 5664664a1a regression in qt4.py when adding qt5.py 2013-11-24 17:58:50 +01:00
Thomas Nagy cf75dc3308 qt5 tool 2013-11-24 14:19:28 +01:00
Thomas Nagy 1a2e877d33 qt5 tool 2013-11-24 12:55:52 +01:00
Thomas Nagy bccf38b50a Issue 1381 - moc file caching 2013-11-23 12:50:39 +01:00
Thomas Nagy c7c299ddf0 unused variable 2013-11-17 13:24:14 +01:00
Thomas Nagy 2226ee472f notes 2013-11-17 01:09:04 +01:00
Thomas Nagy 5fa6fb7c8e Issue 1379, nasm trailing slashes 2013-11-16 20:19:41 +01:00
Thomas Nagy c521b1d076 Issue 1379, nasm trailing slashes 2013-11-16 20:13:41 +01:00
Thomas Nagy d3191f574b handle empty defines when pasting tokens 2013-11-15 23:25:27 +01:00
Thomas Nagy 346601b103 handle empty defines when pasting tokens 2013-11-15 23:24:51 +01:00
Thomas Nagy afad85cb6d Issue 1377 2013-11-15 23:08:07 +01:00
Thomas Nagy 797b935305 Issue 1377 2013-11-15 18:20:25 +01:00
Thomas Nagy fb022f4787 do not convert to png anymore, and added a templating engine to replace the string appending 2013-11-14 22:44:12 +01:00
Thomas Nagy 4953daf3d4 Issue 1376: Hide commands starting by _ 2013-11-12 21:25:09 +01:00
Thomas Nagy 7b6c4e2c9d inconsistent tabs/spaces 2013-11-10 19:53:56 +01:00
Thomas Nagy cc6de0b989 Guess the console columns in the general case by trying stderr and then stdout 2013-11-10 06:02:04 +01:00
Thomas Nagy a2691d82dd variants docs, Issue 1147 2013-11-10 06:00:17 +01:00
Thomas Nagy ecc1f63a63 moved imports to the top 2013-11-10 05:32:50 +01:00
Thomas Nagy 6055744a5f Use explicit imports in ansiterm.py 2013-11-10 05:27:18 +01:00
Thomas Nagy 603af4ce6a docs 2013-11-09 15:29:22 +01:00
Thomas Nagy 6470326caf missing change 2013-11-08 22:47:03 +01:00
Thomas Nagy 8571c15a1b missing change 2013-11-08 22:46:51 +01:00
Thomas Nagy dcd6184d3f Issue 1372 version detection for old and buggy sun compilers 2013-11-08 22:45:34 +01:00
Thomas Nagy ec7c651394 Issue 1372 version detection for old and buggy sun compilers 2013-11-08 22:45:11 +01:00
Thomas Nagy 067ade9a40 Issue 1375, doxygen and paths containing spaces 2013-11-07 23:11:57 +01:00
Thomas Nagy de94ba37c9 enable dist/distcheck on windows, Issue 1373 2013-11-07 22:07:05 +01:00
Thomas Nagy 3884124886 Issue 1371 2013-11-03 00:14:04 +01:00
Thomas Nagy 2f43179c39 1.7 -> 1.8 2013-10-28 21:32:25 +01:00
Thomas Nagy ca4c933a28 Missing folders for Issue 1325 2013-10-28 21:26:12 +01:00
Thomas Nagy feaad909d5 Missing folders for Issue 1325 2013-10-28 21:25:58 +01:00
Thomas Nagy 12cade1ec8 typo 2013-10-28 21:05:57 +01:00
Thomas Nagy ff820ccf49 Extract rpath flags into use variables 2013-10-27 14:56:04 +01:00
Thomas Nagy ed661ed41c have distclean remove the waf cache on windows 2013-10-27 14:01:38 +01:00
Thomas Nagy 96ccc17eeb have distclean remove the waf cache on windows 2013-10-27 14:01:22 +01:00
Thomas Nagy b13e98f1e4 Match file extensions in the order of declaration 2013-10-27 12:42:41 +01:00
Thomas Nagy be92aa67d2 recompile swig files if the swig version changes 2013-10-27 10:18:06 +01:00
Thomas Nagy 8f24d28534 recompile swig files if the swig version changes 2013-10-27 10:17:38 +01:00
Matt Fischer f381bfd901 syms.py: Fix dep_nodes manipulation
Fixed a line in syms.py to append to the dep_nodes list instead of
forcibly overwriting it.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-10-25 00:02:48 +02:00
Matt Fischer 045f5fd8d4 syms.py: Fix dep_nodes manipulation
Fixed a line in syms.py to append to the dep_nodes list instead of
forcibly overwriting it.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-10-25 00:02:33 +02:00
Thomas Nagy 84c9aa9a04 another regression caused by find_program changes 2013-10-23 00:10:28 +02:00
Thomas Nagy 979973c04e Python 3.4 now provides non-inheritable file handles by default 2013-10-21 20:58:18 +02:00
Thomas Nagy 50737b138a Python 3.4 now provides non-inheritable file handles by default 2013-10-21 20:58:00 +02:00
Thomas Nagy 0f0f36b040 Issue 1367, python 2.4 and boost.py 2013-10-20 19:39:28 +02:00
Thomas Nagy 2ff420f6f2 Issue 1367, python 2.4 and boost.py 2013-10-20 19:39:11 +02:00
Thomas Nagy b0ec707975 Issue 1366, swig defines 2013-10-17 21:37:30 +02:00
Thomas Nagy 4252f2f162 Issue 1366, swig defines 2013-10-17 21:36:22 +02:00
Thomas Nagy 0aeecb0f3d Issue 1362, docs 2013-10-15 01:16:51 +02:00
c6db9bc291 Issue 1362, docs 2013-10-15 01:08:38 +02:00
7f2fe42579 implicit cython dependency pyx->pxd, Issue 1363 2013-10-15 00:42:13 +02:00
a522e45f2d Merge branch 'waf-1.8' of https://code.google.com/p/waf into waf-1.8 2013-10-15 00:25:44 +02:00
Dariusz Pelowski 53ab568fe5 fix for missing package name argument for 'pkg-config' call during fetching custom variables
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-10-15 00:25:26 +02:00
52059358ae Merge branch 'master' of https://code.google.com/p/waf 2013-10-15 00:25:13 +02:00
Dariusz Pelowski d3de3e6968 fix for missing package name argument for 'pkg-config' call during fetching custom variables
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-10-15 00:24:43 +02:00
Dariusz Pelowski 9e6d92d0d2 fix for missing package name argument for 'pkg-config' call during fetching custom variables
Signed-off-by: young <tnagy2pow10@gmail.com>
2013-10-15 00:18:50 +02:00
Dariusz Pelowski bc9cd753d4 fix for missing package name argument for 'pkg-config' call during fetching custom variables
Signed-off-by: young <young@yang.(none)>
2013-10-15 00:10:13 +02:00
Thomas Nagy 6f6c284bec docs: uselib -> use 2013-10-01 23:45:14 +02:00
Thomas Nagy 4c3af52305 docs: uselib -> use 2013-10-01 23:44:27 +02:00
Thomas Nagy 455e22838a Issue 1361, syms.py and python3 2013-09-30 17:56:48 +02:00
Thomas Nagy b923643d66 Issue 1361, syms.py and python3 2013-09-30 17:55:42 +02:00
Thomas Nagy 90b491e834 moved the parser function definition out of the while loop 2013-09-30 00:05:36 +02:00
Thomas Nagy 9ec230fb4d cleanup 2013-09-29 23:45:36 +02:00
Thomas Nagy 54d4ff7ce0 'is not None' is unnecessary 2013-09-28 23:55:08 +02:00
Nate Rosenblum 87403f4285 Allow doxygen parameters to be passed to task
The doxygen demo program suggests that doxy parameters can be passed
as arguments to the task, e.g.,

   bld(features="doxygen", doxyfile="doxy.conf",
        pars={'INPUT': bld.path.ant_glob("**/*.c")})

Previously, these inputs were not passed from the task generator
to the task, and only the parameters read from the doxy configuration
file were used. This patch retrieves parameters (if any) from the task
generator and uses them to override those in the doxy file,
allowing more flexible overriding for individual build targets.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-09-28 23:54:55 +02:00
Thomas Nagy a90d82112c 'is not None' is unnecessary 2013-09-28 23:52:19 +02:00
Nate Rosenblum 112199eb1f Allow doxygen parameters to be passed to task
The doxygen demo program suggests that doxy parameters can be passed
as arguments to the task, e.g.,

   bld(features="doxygen", doxyfile="doxy.conf",
        pars={'INPUT': bld.path.ant_glob("**/*.c")})

Previously, these inputs were not passed from the task generator
to the task, and only the parameters read from the doxy configuration
file were used. This patch retrieves parameters (if any) from the task
generator and uses them to override those in the doxy file,
allowing more flexible overriding for individual build targets.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-09-28 23:51:35 +02:00
Jérôme Carretero e7425bc2ba extras: rst: fix typo 2013-09-24 00:59:16 -04:00
Thomas Nagy 9838d0bb08 New cppckeck tool from Michel Mooij 2013-09-22 17:41:17 +02:00
Jérôme Carretero dcea4231ef extras: rst: also build rst2html from the folder in which the target is built 2013-09-20 13:32:03 -04:00
Jérôme Carretero b170b314ad extras: rst: shorter rst2*tex code 2013-09-18 23:57:05 -04:00
Jérôme Carretero 4e205c4487 extras: rst: add rst2s5 support via extension of rst2html 2013-09-18 23:25:09 -04:00
Jérôme Carretero 7a20f2fd44 rst: rst2pdf fixup for includes in source and build folder 2013-09-18 02:15:54 -04:00
Jérôme Carretero 952c5b1ec7 extras: rst: fix another typo and add rst2xetex support 2013-09-18 02:06:01 -04:00
Jérôme Carretero 27afbfe600 extras: rst: fix "typo" 2013-09-18 02:01:09 -04:00
Thomas Nagy ad2eb7d58e broken indentation in waf_unit_test.py for python 3 2013-09-17 14:15:07 +02:00
Thomas Nagy d693385073 merged the openbsd shared library installation fixes from waf 1.7 2013-09-17 00:26:16 +02:00
Jérôme Carretero a98f85795f playground: add c-objects-stlib-shlib 2013-09-15 16:11:58 -04:00
Jérôme Carretero 57f6a272e2 Tools: tex: note on target bypass 2013-09-14 00:34:13 -04:00
Jérôme Carretero 8a9b3825a2 Tools: msvc: fix regression in msvc MT tool call (issue #1357)
Yeah, env['MT'] is a list.
2013-09-12 18:50:06 -04:00
Thomas Nagy e07529ad89 Issue 1348, gdc detection for gdc-msys 2013-09-11 07:52:27 +02:00
Thomas Nagy 487cc43df2 Issue 1354, clang compilation databases 2013-09-11 07:50:25 +02:00
Thomas Nagy 4fef9dcbaa typo 2013-09-10 22:09:33 +02:00
Thomas Nagy dedafdfa81 Disabled the pickle gc optimization by default (computers are fast enough now, and it can be reenabled if necessary) 2013-09-10 21:28:25 +02:00
Thomas Nagy ebec33a835 waf-1.7.13 2013-09-09 22:09:03 +02:00
Jérôme Carretero f81e6c5499 extras: rst: little fixes 2013-09-09 01:01:57 -04:00
Thomas Nagy fe1bbf536f Issue 1356 icl detection with python 3 2013-09-07 13:27:13 -04:00
Thomas Nagy daa91dba4b Issue 1356 icl detection with python 3 2013-09-07 10:33:33 +02:00
Jérôme Carretero 00946bacdb extras: protoc: document protoc trickiness
I tried to quickly go through the protoc source to find how the include
paths are interpreted, but I'm sleepy now.
2013-09-05 01:10:20 -04:00
Jérôme Carretero bf5ce8b30c extras: protoc: add dep scanner 2013-09-05 00:48:29 -04:00
Jérôme Carretero 12b5c2f2a4 TaskGen: create_task: allow passing attributes to task instance via kw
use case: some programs want to run in specific folders
2013-09-05 00:48:00 -04:00
Jérôme Carretero 863662fa65 extras: rst: fix typo 2013-09-05 00:18:15 -04:00
Jérôme Carretero 150d1ed0b5 extras: ocaml: env.OCAMLC is a list 2013-09-05 00:16:50 -04:00
Jérôme Carretero 8076e8d52e Tools: c_config: one more fix for the path, which can also be a string... 2013-09-05 00:12:45 -04:00
Jérôme Carretero 89358e70d4 Tools: flex: env.FLEX is a list 2013-09-05 00:08:00 -04:00
Jérôme Carretero da5d43d418 Tools: perl: env.PERL is a list (+ simplifications) 2013-09-05 00:05:04 -04:00
Jérôme Carretero 5b97eefb66 Tools: vala: env.VALAC is a list 2013-09-04 23:53:30 -04:00
Jérôme Carretero 85e7df4ea1 Tools: c_config: fix mistake in previous commit 2013-09-04 23:47:47 -04:00
Jérôme Carretero 95679a89bb Tools: ruby: env.RUBY is a list 2013-09-04 23:36:21 -04:00
Jérôme Carretero 14ee893d20 Tools: qt4: command paths are lists already 2013-09-04 23:35:58 -04:00
Jérôme Carretero 8d37f79ea2 Tools: c_config: pkg-config is indeed a list of strings 2013-09-04 23:21:19 -04:00
Jérôme Carretero d6dd3fd8ab Tools: unit test: fix indentation 2013-09-04 23:20:51 -04:00
Jérôme Carretero dc75919559 extras: swig: env.SWIG is a list now 2013-09-04 23:15:12 -04:00
Jérôme Carretero 1f4c66f0c7 Tools: ruby: env.RUBY is a list 2013-09-04 23:13:34 -04:00
Jérôme Carretero 5064fd92ef always use the convention that commands are lists, remove find_perl_program, add interpreter 2013-09-04 23:10:10 -04:00
Thomas Nagy 6747ec18d8 Issue 1335 - library installation again 2013-09-04 08:36:37 +02:00
Jérôme Carretero 1fad148b2c Tools: python: allow passing PYTHON in environment 2013-09-04 00:35:49 -04:00
Thomas Nagy 578816dbca Issue 1335 - regression in the library installation 2013-09-04 00:20:42 +02:00
Thomas Nagy 85441cdd87 Issue 1335 - explanations are not clear at all 2013-09-04 00:04:47 +02:00
Thomas Nagy 2b2e79d7e4 Issue 1355 - openbsd fix for the link in the build directory 2013-09-03 23:17:05 +02:00
Thomas Nagy 673f34aae8 Issue 1355 - openbsd fix for the link in the build directory 2013-09-03 22:37:04 +02:00
Thomas Nagy 7696b4f7d3 Issue 1355, shared libs installation on openbsd 2013-09-03 17:53:03 +02:00
Thomas Nagy cfe7242d48 Issue 1355, shared libs installation on openbsd 2013-09-03 17:49:21 +02:00
Thomas Nagy e87782e58b removed Node.bld_base, used only once 2013-09-01 21:46:43 +02:00
Thomas Nagy a1b8eb3831 Issue 1352, changed the default name for qt resources 2013-09-01 21:29:34 +02:00
Thomas Nagy 7eeb28e511 New version Waf 1.7.12 2013-08-31 18:34:06 +02:00
Thomas Nagy c4b82f4337 (changelog update) 2013-08-31 18:13:02 +02:00
Thomas Nagy c4afa5daf1 (changelog update) 2013-08-31 18:08:55 +02:00
Thomas Nagy 1c4d085cfe cosmetic changes 2013-08-30 17:35:17 +02:00
Jérôme Carretero 24cc97f42e Utils: remove str_to_dict 2013-08-30 10:23:10 -04:00
Jérôme Carretero cc67d628c1 playground: c: do not use Utils.str_to_dict 2013-08-30 10:22:34 -04:00
Jérôme Carretero 3f356dd4fd playground: c: fix Node search->search_node 2013-08-30 10:22:10 -04:00
Jérôme Carretero 2e08d80fce Utils: shave a few bytes from Timer 2013-08-30 01:10:29 -04:00
Thomas Nagy 07cb27929e cosmetic changes in the demos/tex/wscript file 2013-08-27 12:19:32 +02:00
Joe Steeve bced7cedb0 Test case for Tools.tex with 'makeglossaries' support
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-08-27 12:15:30 +02:00
Thomas Nagy f14314faa2 Mention that makeglossaries is a program when raising the error 2013-08-27 12:11:50 +02:00
Joe Steeve 4cbee2c4ed Issue 1342 Tools.tex, run 'makeglossaries' if 'glossaries' is used
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-08-27 11:54:16 +02:00
Jérôme Carretero a67c8c9017 fix shlib vnum for OpenBSD 2013-08-26 16:09:19 -04:00
Jérôme Carretero 34d75558ab fix shlib vnum for OpenBSD 2013-08-26 15:33:09 -04:00
Jérôme Carretero ccec98efc4 tools: tex: replace warnings by info as they are not warnings at all 2013-08-25 20:09:42 -04:00
Jérôme Carretero 6d5cbfc3e6 playground: rst: more demos 2013-08-25 19:57:29 -04:00
Jérôme Carretero 459f04cbee extras: rst: fix scan regression 2013-08-25 18:33:53 -04:00
Jérôme Carretero 6cc46d9c39 playground: rst: more crazy stuff 2013-08-25 17:01:28 -04:00
Jérôme Carretero 06759c0a59 playground: rst: more examples 2013-08-25 16:35:49 -04:00
Jérôme Carretero 7f571e0a28 tools: tex: allow to pass a Node as manual dep 2013-08-25 15:37:11 -04:00
Jérôme Carretero f9944a5ec7 rst: make parser overridable 2013-08-25 15:35:33 -04:00
Jérôme Carretero 45a85542c5 playground: add rst example 2013-08-25 15:34:45 -04:00
Jérôme Carretero e62d3771e1 extras: rst: add basic rst2latex support 2013-08-24 21:26:37 -04:00
Jérôme Carretero f982e0461a tools: tex: scan (local) style files too 2013-08-24 20:24:02 -04:00
Jérôme Carretero 2b309cfb79 extras: rst: use to_list on rst options, use -o switch to make older rst2pdf happy 2013-08-21 01:21:17 -04:00
Jérôme Carretero 669094a51f extras: rst: add install_path processing (defaults to not installing) 2013-08-20 13:59:45 -04:00
Jérôme Carretero 24abf4f08c extras: rst: pimp the scanner
Changes:
- update the include regexp to support the figure directive, and
  substitution targets.
- warn on missing files that would be included
2013-08-18 23:29:50 -04:00
Jérôme Carretero 5e16b5dbbc extras: add rst tool, for reStructuredText processing 2013-08-18 17:17:00 -04:00
Alexander Afanasyev 8e50cda867 extras/doxygen: Adding support for RECURSIVE and making detection non-mandatory by default
added: support for RECURSIVE, as well as for included and excluded files

changed: detection of doxygen is non-mandatory by default. If it is
         desired that doxygen is mandatory, user is expected to check
         bld|conf.env.DOXYGEN and bld|conf.env.TAR variables

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-08-18 21:31:22 +02:00
Thomas Nagy 135fed0830 Issue 1334 2013-08-17 20:24:21 +02:00
Thomas Nagy 20ae777428 disabled the check_exe validation by default and enabled invalid name detection 2013-08-17 18:19:10 +02:00
Alexander Afanasyev 9b75b843ae Tools/python: Extending python tool
add: show more command-line arguments to control which
     python is used and where py/pyext files should be installed.
     The new options are in addition to the existing PYTHON, PYTHONDIR,
     and PYTHONARCHDIR environment variable, providing the help messages
     to the user, so it can easily change parameters without second-guessing
     of what are they.

     Environmental parameters override command line arguments (is it right?)

updated: An extension to Configure.find_command to allow specification
         of the name for the searched command (using `msg` option). This is
         helpful when the search command is a huge list, as in the case of
         python's python-config case.

updated: Do not specify prefix for `get_python_lib`, since this way it
         can result in a wrong PYTHONDIR and PYTHONARCHDIR on certain platforms
         (e.g., OSX)

updated: Changing logic with byte-compilation of python files. Mow, files are
         compiled during the build stage, not install stage.  During the
         install stage files are simply copied to the requested
         location.

updated: If there is an error in python source code, byte-compilation
         phase will raise an exception and abort building process.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-08-17 18:15:05 +02:00
Jérôme Carretero b32ab8c7c5 utils: fix "typo" in check_exe()
Yeah, I was returning the directory name in some cases...
2013-08-14 17:57:26 -04:00
Thomas Nagy 19e624b5f4 Issue 1345 multibib support in tex/latex 2013-08-14 18:37:16 +02:00
Jérôme Carretero 8c2c8f1615 Context: simplify waf tool loading error handling
- Assuming that an exception could have been raised, the worst thing
  we do is presenting the wrong exception to the user.
- Actually, the exception is more precise now:

  - if we want to load('pouet'), the error will always be::

      ``No module named pouet``.

  - if we want to load('pouet.coin') the error will always be::

      ``No module named pouet.coin``

    Before it could be either::

      ``No module named pouet.coin``

    or::

      ``No module named coin``
2013-08-14 11:31:44 -04:00
Jérôme Carretero 5db6202ce1 context: "fix" waf tool loading with python 3.3 2013-08-14 11:20:01 -04:00
Jérôme Carretero f3f9e9f99d provide a clearer error message in case Popen'ed executable is not executable
subprocess.Popen() will give a proper error message if the first
argument is an absolute path, but if it's a bare command name, it will
complain with a "Permission Denied" error.

This change provides a clear error every time.

If speed is proven to have an impact on this code, we could add
the "Logs.verbose > 0" precondition or add memoization.
2013-08-12 20:00:47 -04:00
Jerome Carretero a40dbe073b waf-zip: zip-packed waf
Ability to use a waflib.zip file with waf-zip entry point

Changes:

- created waf-zip entry point
- waflib.zip can created by doing::

     zip waflib -9 waflib/*.py waflib/Tools/*.py waflib/extras/*.py

- the wscript also builds waflib.zip
- allow selecting which core tools to use (saves 31k for C/C++ only)
  By default, everything is included.
- altered module loading functions to allow loading modules from a zip file.
2013-08-12 19:34:43 -04:00
Thomas Nagy 30c10e85d5 Issue 1343, regression in qt4 support after some refactoring 2013-08-12 07:55:01 +02:00
Jerome Carretero 3c00a614d7 Revert "Issue 1334 - let FOO_ST:FOO return empty when FOO_ST is empty/undefined"
This reverts commit d4d33bba2a.

It breaks demos/c
2013-07-20 14:57:20 -04:00
Jerome Carretero edf26656ab Tools: ccroot: fix typo introduced in e5cd63a6 2013-07-20 14:52:19 -04:00
Thomas Nagy 93e24091d3 Issue 1335 2013-07-16 21:11:02 +02:00
Thomas Nagy 007acd87cf Issue 1335 2013-07-16 21:10:32 +02:00
Thomas Nagy e9fd0660dc Undefined 'logger' variable 2013-07-16 21:00:02 +02:00
Thomas Nagy dd74c243d0 Undefined 'logger' variable 2013-07-16 20:59:36 +02:00
Matt Hoosier 1aad65b886 Add 'msvcdeps' tool
This tool operates similarly to 'gccdeps' by offloading the
flattening of the #include dependency tree to the compiler.

Change-Id: I5e58e8ca838f3d3dc65efa6ce4abf161110632ea

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-07-16 20:57:06 +02:00
Matt Hoosier 043cf665d2 Add 'msvcdeps' tool
This tool operates similarly to 'gccdeps' by offloading the
flattening of the #include dependency tree to the compiler.

Change-Id: I5e58e8ca838f3d3dc65efa6ce4abf161110632ea

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-07-16 20:56:31 +02:00
Thomas Nagy 8aed4e882c Issue 1339 detect the sun compiler version number 2013-07-13 19:06:57 +02:00
Thomas Nagy f588f95a27 Issue 1339 detect the sun compiler version number 2013-07-13 19:06:08 +02:00
Thomas Nagy d4d33bba2a Issue 1334 - let FOO_ST:FOO return empty when FOO_ST is empty/undefined 2013-07-08 19:37:42 +02:00
Thomas Nagy b26126694d Issue 1337 typo in the protoc docs 2013-07-08 08:03:39 +02:00
Thomas Nagy 2bb9b691aa Issue 1336 on_results->update_outputs 2013-07-08 08:00:18 +02:00
Thomas Nagy 76f0a02f9f simplification in syms.py 2013-06-27 22:22:54 +02:00
Thomas Nagy a1d35c0a69 simplification in syms.py 2013-06-27 22:22:25 +02:00
Matt Hoosier 9a1d7bf0ce syms.py: allow environment to supply paths to dumpbin and nm
This is required when doing cross-compilation.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-06-27 22:19:51 +02:00
Matt Hoosier 24983316d6 syms.py: allow environment to supply paths to dumpbin and nm
This is required when doing cross-compilation.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-06-27 22:18:59 +02:00
Thomas Nagy 5ea64b56ac Issue 1329 C# response file flag quoting issues 2013-06-21 18:22:43 +02:00
Thomas Nagy 000922c394 Issue 1329 C# response file flag quoting issues 2013-06-21 18:22:00 +02:00
Thomas Nagy 3f78d2223a Issue 1328 forgot to use the maxdepth argument in ant_glob() 2013-06-21 18:16:37 +02:00
Thomas Nagy 054afb8921 Issue 1328 forgot to use the maxdepth argument in ant_glob() 2013-06-21 18:15:17 +02:00
Thomas Nagy 58fe611bb9 Issue 1327 - typo 2013-06-09 09:47:39 +02:00
Thomas Nagy 319289ec3c Issue 1223 2013-06-09 09:47:18 +02:00
Thomas Nagy 3a285c62b1 Issue 1327 2013-06-09 09:47:01 +02:00
Thomas Nagy b241462a2a Issue 1327 2013-06-09 09:46:44 +02:00
Thomas Nagy 3662eb290a Issue 1327 - typo 2013-06-05 21:42:49 +02:00
Thomas Nagy a4cb0114aa Issue 1223 2013-06-05 00:18:55 +02:00
Thomas Nagy 251d27d5eb Issue 1327 2013-06-05 00:12:35 +02:00
Thomas Nagy c996c3222a Issue 1327 2013-06-05 00:03:21 +02:00
Thomas Nagy 1e2e7f6074 Issue 1323 2013-06-01 03:53:06 +02:00
Thomas Nagy e455950fe6 Issue 1323 2013-06-01 03:52:12 +02:00
Thomas Nagy 4e8fda5644 Fix for systems without threading - Issue 1323
Conflicts:

	ChangeLog
2013-05-30 21:18:26 +02:00
Thomas Nagy c33333285b Merge branch 'master' of http://code.google.com/p/waf 2013-05-30 21:09:27 +02:00
Thomas Nagy 48c3889917 Fix for systems without threading - Issue 1323 2013-05-30 21:08:27 +02:00
Thomas Nagy a6aa2ac051 Fix for systems without threading - Issue 1323 2013-05-30 21:06:30 +02:00
Thomas Nagy 144f4a4d25 Issue 1321, more accurate task count for qt4 and build groups 2013-05-29 22:36:07 +02:00
Thomas Nagy fa5ed99a21 Removed the unused env parameter from conf.write_config_header() 2013-05-26 21:48:26 +02:00
Thomas Nagy e8eafe4b9b removed Node.search (use Node.search_node) and an old compiler_cc references 2013-05-26 21:43:27 +02:00
Thomas Nagy 5c6d626048 removed the cache from the task level, it usually degrades performance and is better implemented on the compiler level 2013-05-26 10:14:49 +02:00
Thomas Nagy e5cd63a670 Issue 1320, do not propagate external libraries uselib vars 2013-05-26 09:58:11 +02:00
Thomas Nagy e20207811f bad version number on the apidocs, changing to 1.7.11 2013-05-25 23:18:41 +02:00
Thomas Nagy 5b3dc2c5ab apidoc fixes 2013-05-25 22:49:22 +02:00
Thomas Nagy f1677f347c some more docs on update_outputs 2013-05-25 22:40:58 +02:00
Thomas Nagy 04a6db6a06 docs 2013-05-25 21:37:10 +02:00
Thomas Nagy ca809854c3 typo 2013-05-25 20:39:15 +02:00
Thomas Nagy 5906f37447 Simple system for logging the outputs
Add the following to your wscript file:

def init(ctx):
    ctx.load('build_logs')
2013-05-25 17:39:41 +02:00
Thomas Nagy 7733029b47 changelog update 2013-05-25 15:35:11 +02:00
Thomas Nagy 10347ac94f more docs 2013-05-25 15:31:30 +02:00
Thomas Nagy ff4c5d301d docs 2013-05-25 15:26:28 +02:00
Thomas Nagy 856db9cc90 added export_includes/export_defines parameters to read_shlib/read_stlib 2013-05-25 15:17:25 +02:00
Thomas Nagy f4a6a218e3 docs 2013-05-25 14:15:25 +02:00
Thomas Nagy c9fa0b75b5 preparation for waf 1.7.11 2013-05-25 12:00:37 +02:00
Thomas Nagy 50f631bc5e docs 2013-05-25 11:58:07 +02:00
Thomas Nagy 760d0f875c Issue 1319 Reduce the amount of paths for the unit test execution 2013-05-19 08:49:40 +02:00
Thomas Nagy c4685a8cb8 Issue 1310 use INCLUDE/LIB environment variables to detect boost libs on windows 2013-05-19 08:36:00 +02:00
Thomas Nagy 6d570f08bd use os.remove instead of os.unlink for consistency 2013-05-18 19:51:45 +02:00
Thomas Nagy 426637d10a Prevent unnecessary rebuilds in the qt processing
A list was changed during iteration, causing an unnecessary dependency to be
kept, and triggering subsequent rebuilds. This only occured with multiple .moc included.
2013-05-18 19:31:56 +02:00
Thomas Nagy 8267e7ae97 Issue 1318 reuse moc tasks 2013-05-18 14:08:41 +02:00
Thomas Nagy 29f80f4aeb Issue 1317 append to moc flags 2013-05-18 09:48:27 +02:00
Thomas Nagy 174b01bba9 Issue 1313 extra check_dir call causing uninstall failures 2013-05-16 08:33:05 +02:00
Thomas Nagy 621ffa83ed Issue 1315 QtDesigner library detection in qt4.py 2013-05-16 08:22:16 +02:00
yngwe 031e94ffa7 allow c_config to recognize clang as gcc 2013-05-13 20:07:25 +02:00
Thomas Nagy 7af8b2f268 slightly faster regexp for replacing c/c++ comments 2013-05-09 11:01:46 +02:00
Thomas Nagy b0bae3baa1 Merge branch 'master' of http://code.google.com/p/waf 2013-05-08 23:19:10 +02:00
Thomas Nagy 3934918217 Issue 1253 2013-05-08 23:18:53 +02:00
Thomas Nagy 57f0df2c8a Remove the requirement for opt.load('qt4') 2013-05-08 16:51:14 +02:00
Thomas Nagy 1da291a1e6 Force a fixed order in the link task inputs to prevent unnecessary rebuilds 2013-05-07 17:49:59 +02:00
Thomas Nagy 69f5f71120 Removed the annoying assert in msvs.py 2013-05-07 10:08:49 +02:00
Thomas Nagy 417b2c53cd deployment extension in msvs projects 2013-05-07 08:53:18 +02:00
Thomas Nagy 57eaf369c5 extend the subst task to support other copy modes such as hard linking 2013-05-05 22:54:19 +02:00
Thomas Nagy ba3ac73559 Issue 1263 2013-05-04 14:20:17 +02:00
Thomas Nagy d151c86ad1 Issue 1262 2013-05-04 09:24:38 +02:00
Thomas Nagy 43caa85c5a Issue 1272 2013-05-01 10:55:26 +02:00
Alexander Afanasyev b059ce784d Correcting Darwin compilation
gcc, gxx, and fc_config for Darwin platform were specifying
-compatibility_version and -current_version compilation flags.  These
flags are actually are link flags and generate warnings by clang
compiler.

Also, these flags were specified in non-standard way, which was
confusing clang compiler.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-04-28 10:11:17 +02:00
Alexander Afanasyev 522e3fb43a protoc: small correction
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-04-28 10:08:42 +02:00
Thomas Nagy 01ef0ed313 Issue 1297 2013-04-28 00:15:32 +02:00
Thomas Nagy 1caaec653a Issue 1299 2013-04-27 09:19:16 +02:00
Thomas Nagy 230d35c9c3 Issue 1300 2013-04-27 02:10:15 +02:00
Thomas Nagy 7739cd7369 Issue 1300 2013-04-27 01:33:27 +02:00
Thomas Nagy 345f6bc99f Issue 1278 2013-04-16 17:19:30 +02:00
Caitlin Potter 1c562a034a Explicitly execute python binary (sys.executable) in distcheck
Signed-off-by: Caitlin Potter <snowball@defpixel.com>
Signed-off-by: Thomas Nagy <tnagy1024@gmail.com>
2013-04-15 14:52:15 +02:00
Stian Selnes 336c3f2e3f msvc: fix check of intel composer version with visual studio 2010
Signed-off-by: Thomas Nagy <tnagy1024@gmail.com>
2013-04-02 17:04:44 +02:00
Thomas Nagy c3cbd4c353 New version 1.7.10 2013-03-22 15:47:41 +01:00
Thomas Nagy 661a034d91 Issue 1257 (docs) 2013-03-16 16:09:44 +01:00
Thomas Nagy 7eef6588af Use Utils.readf/Utils.writef whenever possible 2013-03-14 13:45:10 +01:00
Oliver Sauder 813a1aff14 Exclude auto-generated .intlcache
Signed-off-by: Thomas Nagy <tnagy1024@gmail.com>
2013-03-13 11:52:08 +01:00
Thomas Nagy fecda37b1c Changelog update 2013-03-12 14:12:48 +01:00
Thomas Nagy 77dc8ea368 Issue 1266 2013-03-12 14:10:12 +01:00
Harald Klimach 7bfe947b31 Do not try to tokenize non-python files when using Python 3: Issue 1265. 2013-03-11 09:35:54 +01:00
Thomas Nagy 0f64aea102 Issue 1261 2013-03-04 17:13:31 +01:00
yngwe 7aab452acb Merge branch 'master' of https://code.google.com/p/waf 2013-02-17 15:11:25 +01:00
Thomas Nagy 526fe68773 Issue 1231 2013-02-17 14:29:41 +01:00
yngwe 46f51a3925 Added support for Windows Phone 8 compilers; added feature support for Windows Desktop Application and Windows Phone Application compilation 2013-02-17 14:09:32 +01:00
Thomas Nagy 582a1a59f1 Issue 1255 2013-02-15 10:35:20 +01:00
Thomas Nagy a308c89c35 Issue 1180 2013-02-10 11:45:35 +01:00
Thomas Nagy 89ae826782 New codelite plugin 2013-02-02 11:06:20 +01:00
Thomas Nagy fd1305af1d Issue 1248 2013-02-01 23:52:13 +01:00
Thomas Nagy ba984b57b7 Issue 1248 2013-02-01 23:45:30 +01:00
Thomas Nagy bf27d10fd5 Issue 982 2013-02-01 23:01:53 +01:00
Thomas Nagy 17aff345ea New release 1.7.9 2013-01-13 11:51:07 +01:00
Harald Klimach 2d29dfc528 Issue 1245 2013-01-08 19:45:14 +01:00
Daniel Welty 9e92489dbc gccdeps: Cache path to node lookup
The find_resource call is slow, so caching the resulting Node object
gives a significant speed up, about twice as fast.

Issue: 1244

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-01-04 18:24:40 +01:00
Thomas Nagy 99919342f0 Merge branch 'master' of https://code.google.com/p/waf 2013-01-04 02:28:51 +01:00
Thomas Nagy 67b8e27c34 Issue 1237 2013-01-04 02:27:42 +01:00
Matt Hoosier 3b699e3fed Make msvc.py behave itself when other toolchains are loaded
Chain down to the pre-existing Task.exec_command() implementation if
task.env.CC_NAME indicates that the current taskgen isn't building using
Microsoft tools.

Attempt #2. The previous version (9b443a4e, reverted in 148598a8) was
found in Issue 1243 to lead to unusual infinite regress if the
monkeypatching code executed more than once in a Python interpreter
lifetime. This version uses dynamic subclassing to avoid that problem.

Issue 1237.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2013-01-04 02:11:26 +01:00
Kevin Ollivier 13ad17f96c Add support for parsing more MSVC command line options to check_cfg. 2013-01-01 12:13:23 -08:00
Thomas Nagy 148598a815 reverted the changes from #1212 and #1237 2012-12-28 21:58:37 +01:00
Thomas Nagy c0776f63ee docs 2012-12-22 17:42:54 +01:00
Thomas Nagy ed52334a57 Issue 1232 2012-12-19 02:51:33 +01:00
Matt Clarkson 6e87e321bf Change the apply_vnum installation tasks to be created only if there is already an install_task. It checked to see if self.bld.is_install was not False but that can lead to exceptions being thrown when a shared library is created but install_path=None
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-12-19 02:04:10 +01:00
Thomas Nagy 0e243e4212 New release 1.7.8 2012-12-17 18:08:43 +01:00
Matt Clarkson 8c566d1a42 Fixed up a bug in the gather_intel_composer_versions that results in an exception being thrown on windows systems with no intel composer versions installed. Raise in issue 1239
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-12-17 18:07:25 +01:00
Thomas Nagy f42b9410c2 documentation update, and preparation for the release 2012-12-16 17:18:10 +01:00
Thomas Nagy c0575b8528 New release 1.7.7 2012-12-16 17:08:08 +01:00
Thomas Nagy 59363114c3 Issue 1232 2012-12-16 16:58:55 +01:00
Thomas Nagy 023329adb4 cleanup in Netcache.java 2012-12-15 20:21:52 +01:00
Thomas Nagy 083b6e138e Issue 1234 2012-12-15 00:32:20 +01:00
Thomas Nagy fc9d6f4200 Issue 1222 2012-12-14 23:43:28 +01:00
Thomas Nagy 687df069db docs 2012-12-14 22:21:09 +01:00
Matt Hoosier 9b443a4e88 Make msvc.py behave itself when other toolchains are loaded
Chain down to the pre-existing Task.exec_command() implementation
if task.env.CC_NAME indicates that the current taskgen isn't building
using Microsoft tools.

Issue 1237.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-12-14 22:20:22 +01:00
Thomas Nagy 4b4aaf7dc5 Issue 1236 2012-12-12 20:09:40 +01:00
Thomas Nagy 2da7b2f549 missing r for strings containing \ 2012-12-10 19:32:25 +01:00
Matt Clarkson c7529b3a09 Added a warning message about the intel compilervars_arch.bat file because it only searches for \IDE\VSWinExpress.exe to determine if VS Express is installed. However, Microsoft have changed up VS2012 with differnt SKUs that install with different executable names. I have filed this on the Intel forums at http://software.intel.com/en-us/forums/topic/328487 and hoping for a fix in 2013.03 C++ composer. In the meantime it checks the compilervars_arch.bat to see if the VS2012 express SKU it is searching for is not installed and prints a warning, only once, about patching the batch script. Without the patch the intel compiler cannot be found for command line processing with any Visual Studio Express SKU other than the one for Windows 8
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-12-10 19:29:02 +01:00
Matt Clarkson 3723b8bdbe Added a new function gather_intel_composer_versions and fixed up get_msvc_version so that it correctly strips the output of intel batch files. Also added new supported compilers too the comments at the top of the file as I have tested the configure and it finds VS2012, Intel 13 and WSDK 7.1 compilers
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-12-10 19:27:39 +01:00
Thomas Nagy 597e4a4f4c import libraries should go to LIBDIR along with the 2012-12-10 19:23:34 +01:00
Thomas Nagy a71ca54558 Issue 1232 2012-12-09 05:29:59 +01:00
Thomas Nagy 20b2e61468 docs for Issue 1233 2012-12-09 05:14:42 +01:00
Thomas Nagy 072edeb396 possible fix for python 3 IO issues on windows 2012-12-05 01:23:52 +01:00
Thomas Nagy e9d5d29ce1 missing change 2012-12-05 00:40:50 +01:00
Thomas Nagy f824ab8481 Issue 1230 2012-12-05 00:38:58 +01:00
Thomas Nagy 79e2901e4e typo in the API documentation 2012-12-01 17:36:53 +01:00
Thomas Nagy df67c02a0e simple tool for unity builds 2012-11-30 21:21:22 +01:00
Thomas Nagy e21ec6a3fe Merge branch 'master' of https://code.google.com/p/waf 2012-11-28 01:02:20 +01:00
Thomas Nagy 07c5337f8b possible osx fixes 2012-11-28 01:02:07 +01:00
Harald Klimach 04eb20b1e1 Fixed fc_xlf to import Errors 2012-11-12 17:36:32 +01:00
Thomas Nagy e0820153c8 Make demos/subst work in Python 3.2 2012-11-11 22:58:50 +01:00
Thomas Nagy 704f85f131 New release 1.7.6 2012-11-11 22:44:11 +01:00
Thomas Nagy 96e3676951 docs 2012-11-04 10:38:25 +01:00
Thomas Nagy 82b49862e2 Issue 1220 2012-11-04 10:29:36 +01:00
Thomas Nagy 5eed580a0c Merge branch 'master' of https://code.google.com/p/waf 2012-11-04 10:28:44 +01:00
Thomas Nagy 6635a9788b Issue 1220 2012-11-04 10:28:34 +01:00
immerrr 54464995c6 Avoid possible "unused parameter" warnings in check_c/check_cc boilerplates
When CFLAGS/CXXFLAGS contains '-Wextra -Werror', such warnings are reported
and become errors, which causes respective checks to fail.

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-11-04 10:24:34 +01:00
alexrp ba6718fb05 Add more stuff to the macro-to-DEST_CPU list. 2012-11-01 14:14:08 +01:00
Thomas Nagy c679843693 No symlinks in the tree 2012-10-31 02:02:50 +01:00
Thomas Nagy b022f8a314 no more file() in python 3.3 2012-10-31 02:00:01 +01:00
Thomas Nagy 90157ca97d Python 3.2 sucks 2012-10-31 01:54:57 +01:00
Thomas Nagy 352b329420 Cleanup 2012-10-31 01:46:38 +01:00
Thomas Nagy 6f6d5792b5 no f*** symlinks in the tree, i've been too permissive again 2012-10-31 01:45:23 +01:00
Thomas Nagy 022e2e6ff3 updated the stash() anti-example 2012-10-27 08:36:47 +02:00
Thomas Nagy 5ce68b696a Issue 1218 2012-10-26 22:54:53 +02:00
Thomas Nagy 27aeab577c Issue 1218 2012-10-25 21:36:41 +02:00
Thomas Nagy 689fe3c0b9 Merge branch 'master' of https://code.google.com/p/waf 2012-10-21 11:29:49 +02:00
Thomas Nagy 85698bdb53 support for python modules in fortran -_- 2012-10-21 11:29:40 +02:00
alexrp b3b0383840 Add output file patterns for D tasks on Darwin. 2012-10-21 02:13:33 +02:00
Thomas Nagy 1350ebc7a5 Issue 1212 2012-10-20 23:45:16 +02:00
Thomas Nagy 38ab5028c0 Issue 1213 (docs) 2012-10-20 00:35:24 +02:00
Thomas Nagy a1d0f9c13e force a stable name in bld(rule=...) 2012-10-17 18:50:20 +02:00
Thomas Nagy d1ea3e814d docs 2012-10-15 23:33:30 +02:00
Thomas Nagy c85678dc4a hash subst_fun 2012-10-10 22:52:30 +02:00
Anthony Baire 57b555b5fe allow using the flex shipped with MSYS
(it expects path separated by / instead of \)

Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-10-10 18:39:51 +02:00
Thomas Nagy 6499810aec Issue 1209 2012-10-09 22:35:58 +02:00
Thomas Nagy 43277c8e77 provide bld(features='subst', subst_fun= fun(task, text)) for convenience 2012-10-08 18:30:47 +02:00
Thomas Nagy 294050ff41 Potential fix for #1204 2012-10-05 00:21:27 +02:00
Anthony Baire 2c22ec2a59 fixed `waf clean` to preserve config files from all environments
Signed-off-by: Thomas Nagy <tnagy2pow10@gmail.com>
2012-10-05 00:07:59 +02:00
Thomas Nagy 0856e2492b Issue 1207 2012-10-05 00:06:24 +02:00
Thomas Nagy c575dc1392 Removed the hard-coded python3 syntax to raise meaningful exceptions 2012-10-02 03:46:52 +02:00
Thomas Nagy 85d863bd52 Issue 1205 2012-10-02 03:43:58 +02:00
Thomas Nagy 0d6cd93f95 empty --prefix 2012-09-29 17:32:46 +02:00
Thomas Nagy 9c7c864fcc Merge branch 'master' of https://code.google.com/p/waf 2012-09-27 21:08:37 +02:00
Thomas Nagy b52d97adff Issue 1184 2012-09-27 21:08:26 +02:00
Thomas Nagy d3210ea74b configuration fix for kde4 2012-09-27 19:48:30 +02:00
alexrp c62073538b The fsc tool should set FS_NAME, not CS_NAME. 2012-09-27 14:47:41 +02:00
912 changed files with 37278 additions and 53407 deletions

36
.gitignore vendored
View File

@ -8,4 +8,40 @@ build
demos/*/build*
playground/*/build*
.waf-*
waf-*
.waf3-*
waf3-*
*.log
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# Windows build output
waf.bat
# Vim temporary files
*.swp
# YouCompleteMe configuration
.ycm_extra_conf.py

292
.pipelines/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,292 @@
pipeline {
agent none
stages {
stage('Build and Lint') {
parallel {
stage('Python 2.7') {
agent {
label "ubuntu"
}
steps {
sh 'python3 ./waf-light'
sh 'python2.7 ./waf --help'
stash includes: 'waf', name: 'waf'
}
}
stage('Python 3.6') {
agent {
label "freebsd"
}
steps {
sh 'python3.6 ./waf-light'
}
}
stage('Deprecation warnings') {
agent {
label "ubuntu"
}
steps {
sh '''
cd waflib
find . -iname "*.pyc" -exec rm -f {} \\; || true
! (((PYTHONWARNINGS=all python3.6 -m compileall . > /dev/null) 2>&1 ) 2>&1) | grep -i DeprecationWarning
'''
}
}
stage('Pyflakes') {
agent {
label "freebsd"
}
steps {
sh '''
cd waflib
var=`(/usr/local/bin/pyflakes3.py *.py Tools/*.py extras/*.py 2>&1) | egrep "undefined name|invalid syntax|inconsistent use|unindent does not match any outer indentation level" | wc -l`
if [ "0" -eq "$var" ]
then
/usr/local/bin/pyflakes3.py *.py Tools/*.py extras/*.py || true
else
# just do it again and fail
/usr/local/bin/pyflakes3.py *.py Tools/*.py extras/*.py
exit 1
fi
'''
}
}
stage('Unit tests') {
agent {
label "fedora"
}
steps {
sh '''
./waf-light
cd tests/preproc/
../../waf distclean
../../waf configure build
cd ../..'''
sh '''
cd tests/install/
../../waf distclean
../../waf configure build
cd ../..'''
sh '''
cd tests/general/
../../waf distclean
../../waf configure build
cd ../..'''
sh '''
export PATH=$PATH:$PWD
cd tests/init/
../../waf distclean
../../waf configure build
cd ../..'''
sh '''
export WAF_TEST_GROUP=waftest
cd tests/install_group/
../../waf distclean
../../waf configure build
'''
}
}
}
}
stage('Integration') {
parallel {
stage('Ubuntu') {
stages {
stage('py25') {
agent {
label "ubuntu"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=c'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=c++'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=java'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=perl'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=python'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=qt5'''
sh '''cd demos; LD_LIBRARY_PATH=/opt/lib ./waf distclean configure clean build --top=subst'''
}
}
stage('py36') {
agent {
label "ubuntu"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos; python3 ./waf configure clean build --top=c'''
sh '''cd demos; python3 ./waf configure clean build --top=c++'''
sh '''cd demos; python3 ./waf configure clean build --top=java'''
sh '''cd demos; python3 ./waf configure clean build --top=perl'''
sh '''cd demos; python3 ./waf configure clean build --top=python'''
sh '''cd demos; python3 ./waf configure clean build --top=qt5'''
sh '''cd demos; python3 ./waf configure clean build --top=subst'''
}
}
stage('py27') {
agent {
label "ubuntu"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos; ./waf configure clean build --top=c'''
sh '''cd demos; ./waf configure clean build --top=c++'''
sh '''cd demos; ./waf configure clean build --top=java'''
sh '''cd demos; ./waf configure clean build --top=perl'''
sh '''cd demos; ./waf configure clean build --top=python'''
sh '''cd demos; ./waf configure clean build --top=qt5'''
sh '''cd demos; ./waf configure clean build --top=subst'''
}
}
}
}
stage('OpenBSD') {
stages {
stage('Jython') {
agent {
label "openbsd"
}
steps {
sh '''
export WAF_NO_PREFORK=1
python3 ./waf-light
cp waf demos/c
cd demos/c
/home/jenkins/jython/bin/jython ./waf distclean configure clean build
'''
}
}
stage('py38') {
agent {
label "openbsd"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos/asm; python3 ../waf configure clean build'''
sh '''cd demos/c; python3 ../waf configure clean build'''
sh '''cd demos/c++; python3 ../waf configure clean build'''
sh '''cd demos/glib2; python3 ../waf configure clean build'''
sh '''cd demos/perl; python3 ../waf configure clean build'''
sh '''cd demos/python; python3 ../waf configure clean build'''
sh '''cd demos/subst; python3 ../waf configure clean build'''
}
}
}
}
stage('Windows') {
stages {
stage('C/py34') {
agent {
label "windows"
}
steps {
bat ''' C:/Python34/python.exe waf-light --tools=msvs '''
bat '''
copy waf demos\\c /Y
cd demos\\c
C:/Python34/python.exe waf distclean
C:/Python34/python.exe waf configure --no-msvc-lazy build -v
'''
bat '''
copy waf demos\\qt5 /Y
cd demos\\qt5
C:/Python34/python.exe waf distclean
C:/Python34/python.exe waf configure --no-msvc-lazy build -v
'''
bat '''
copy waf playground\\msvs /Y
cd playground\\msvs
C:/Python34/python.exe waf distclean
C:/Python34/python.exe waf configure
C:/Python34/python.exe waf msvs
'''
}
}
stage('C/Msys2/py27') {
agent {
label "windows"
}
steps {
unstash 'waf'
bat '''
copy waf demos\\c /Y
cd demos\\c
set MSYSTEM=MINGW64
set WD=C:\\msys64\\usr\\bin
set CHERE_INVOKING=1
C:\\msys64\\usr\\bin\\sh --login -c 'exec /bin/bash -c "python waf configure clean build && python waf distclean"'
'''
}
}
stage('C/Msys2/py35') {
agent {
label "windows"
}
steps {
unstash 'waf'
bat '''
copy waf demos\\c /Y
cd demos\\c
set MSYSTEM=MINGW64
set WD=C:\\msys64\\usr\\bin
set CHERE_INVOKING=1
C:\\msys64\\usr\\bin\\sh --login -c 'exec /bin/bash -c "python3 waf configure clean build && python3 waf distclean"'
'''
}
}
}
}
stage('FreeBSD') {
stages {
stage('py36') {
agent {
label "freebsd"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos/c; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/c++; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/java; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/jni; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/perl; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/python; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/ruby; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/glib2; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/qt5; python3.6 ../waf distclean configure clean build'''
sh '''cd demos/dbus; python3.6 ../waf distclean configure clean build'''
}
}
}
}
stage('MacOS') {
stages {
stage('py27') {
agent {
label "macos"
}
steps {
dir('demos') {
unstash 'waf'
}
sh '''cd demos/c; ../waf distclean configure clean build'''
sh '''cd demos/python; ../waf distclean configure clean build'''
sh '''cd demos/mac_app; ../waf distclean configure clean build'''
}
}
}
}
}
}
}
}

339
ChangeLog
View File

@ -1,309 +1,34 @@
NEW IN WAF 1.7.4
----------------
* Fixed a regression in the Node,Task and Context classes
CHANGES IN WAF 2.1.0
--------------------
* While the Waf file runs on Python 2 and 3, creating it requires Python 3
+ Added wafcache
+ waf_unit_test: Added task in returned tuples, custom reports should be adapted
~ Ensure ConfigurationContext.load and Context.load definitions are consistent and remove unused *k parameters
~ Remove the dependency on optparse and use argparse instead
- Remove waflib.Runner.PriorityTasks.appendleft
- Remove waflib.Task.TaskBase
- Remove the upper class of waflib.Task.Task (metaclass syntax)
- Remove Winphone/WinCE detection in msvc.py
- Remove conf.add_as_needed because it does not check for the flag usage
NEW IN WAF 1.7.3
-----------------
* Fixed the LD_LIBRARY_PATH race condition in waf_unit_test #1200
* Library detection fixes in boost.py #1199
* Various waf_unit_test enhancements #1194
* Use the same function signature main(int, char**) in all configuration tests #1192
* Fixed the Clang version number detection #1191
* Let the feature 'includes' propagate INCLUDES and FRAMEWORKPATH variables
* Fix for incorrect installation paths #1202
* Cabal script (haskell)
NEW IN WAF 1.7.2
----------------
* Install bld.subst() targets
* New scanner for winrc processing #1186
NEW IN WAF 1.7.1
----------------
* Updated the exclusion regexps for "waf dist"
* Added an example in playground/nasm
* Enabled compatibility with pkgconf
* Response files for c# #1182
* Minor docstring updates #1188
* New tool for compiling .net resource files (waflib/extras/resx.py) #1183
* New tool for compiling .midl files (waflib/extras/midl.py) #1185
NEW IN WAF 1.7.0
----------------
* The compat15 tool is disabled by default (the README file explains how to enable it)
* Python >= 2.4 is now required
* Python >= 2.6 is required for creating the Waf file in the source tree
* Added Utils.writef (similar to Utils.readf)
* Added Node.evict() to provide more control over invalid references
* Do not raise exception on --help when running on python 2.4
* Node.search -> Node.search_node (consistent with make_node and find_node)
* Errors are reported on configuration test failures with execute=True #1111
* Added header prefixing (autoconf-like) #1117
* Removed the warnings on "waf install" #1120
* Extended bld.subst() to perform simple copies to the build directory
* Removed the default DLL_EXPORT define on gcc/g++ shared libraries
* Calling ctx.root.ant_glob(abspath) will now return results #1135
* New case-insentive option for ant_glob #1148
* Ported demos/asm to 64-bit, forcing gcc over as
* Updated the gccdeps tool #1162
* Improved the C# processing #1154, #1153
* Removed the empty flags from LIB/INCLUDE in the msvc configuration #1159
* Added an 'encoding' parameter to bld.subst()
* Detect Visual Studio 2011 beta
* Detect cython dependencies of the form "from module import x" #1044
* Use the cython includes in the dependency scanner #1166
* Improved the behaviour of Utils.readf/Utils.writef on Win32
* Made Task.__repr__ more robust #1174
* Fixed the gcc builds on hp-ux
* Let gccdeps work with other compilers #1179
NEW IN WAF 1.6.11
-----------------
* Enable custom variables for the boost detection #1089
* Disable the config test execution when detecting boost #1090
* Process moc classes in .cpp files by default #1095
* Apply the chmod attribute to the versioned libraries (vnum) #1097
* Fixed the python detection on OSX #1098
* Changed the win32 color settings for Windows 7 #1099
* Set the default fortran linker for ifort to xiar #1104
NEW IN WAF 1.6.10
-----------------
* Fixed the 'remove' attribute propagation in ant_glob #1086
* Fixed the behavior of recurse(name=xyz) when looking in existing folders
* Fixed a problem with include paths in the relocation tool #1078
* Improved the pgicc compiler detection #1080
* Fixed the behavior of 'waf options' #1076
* Process larger java projects #1074
* Remove the ':' from the drives when dealing with foreign files and folders on Win32
* Let the 'subst' feature process a chmod attribute
* Added a hook for distutils variable query #1083
NEW IN WAF 1.6.9
----------------
* Fixed the duplicate moc file creation in slow_qt4 #1047
* Fixed the Visual Studio 2008 projects creation #1033
* Added a workaround to avoid creating include folders not under the build directory #1049
* Added a default virtual folder structure for out-of-tree build files #1053
* Added a way to set variants containing /, for example linux/debug
* Added a more intuitive behaviour for conf.setenv() #1062
* Fixed the multiple bibliography processing for tex #1040
* Windows CE detection improvements #1065
* Fixed the library installation on OSX
* Fixed the Powerpc/IPhone platform detection
* Added an Xcode project generator
NEW IN WAF 1.6.8
----------------
* Fixed a typo in Utils.py affecting Win32 platforms (copystat) #1029
* Fixed a minor bug in the Eclipse project generator
* Fixed a typo that prevented Waf from running on Pypy-trunk
* Make the xlc/xlc++ compiler detection more accurate by looking at the version number #1022
* Minor perl, python and ruby tool improvements
* Better logs for the boost detection #1036
* Fixed a performance issue in Runner.py #1039
* Changed the position of the linker flags #1025
NEW IN WAF 1.6.7
----------------
* Provide more diagnostic for invalid build groups #914
* Various enhancements to msvs.py
* Read MSVC_VERSIONS and MSVC_TARGETS from the command-line
* Minor cross-compiler detection fix on msvc.py
* Fix the redirections with pipes (waf configure > log)
* Do not display runnable_status exceptions when running with -k
* Let -k stop at the first runnable_status error and -kk run even further
* Merge the add_object extension in the main line (source='file.o')
* Make update_outputs more robust with changes in the task definition #1017
* Qt4 detection on Win32
NEW IN WAF 1.6.6
----------------
* Fix the performance regression related to #974
NEW IN WAF 1.6.5
----------------
* More documentation
* Re-enable the colors for msys
* Add the .ui files for the qt4 translations
* Fix the conf.check_large_file() test
* Fix the conf.check_library() in C++ mode #955
* Improve the latex scanner to avoid depending on generated files #943
* Remove the @file processing from the winrc tasks
* Fix the python detection using python-config
* Add the missing default includes and defines to the moc command
* Improve support for hierarchical go-lang packages #953
* Fix the gfortran verbose flag detection on Windows
* Fix the support of fortran import libraries #950
* Added a fix for running with Python 2.4 on Windows #949
* Limited support for IronPython
* Support for older Visual Studio versions (VC6) #952
* New waf.bat file #964
* New method ConfigSet.keys
* New Visual Studio and Eclipse CTD project generators (waflib/extras)
* New lru_cache tool for use with WAFCACHE (waflib/extras)
NEW IN WAF 1.6.4
----------------
* Fix the Python detection on win32 #883
* Optimize the Python file installation #892
* Force +x permissions on installed fortran programs #893
* Qt library detection fixes #895
* Ensure that unit tests are executed only after the symlinks are created
* Fix the precedence constraints for classes ending in _task #896
* Support the install_path attribute with add_pcfile #913
* Make the goprograms executable when installed #928
* Allow non-python data files in the waf executable #927
* Enforce a build order based on the scanner results #777, #922
* Multiple msvc detection fixes #907 #910 #923 #924 #926
* Fix the -of flag append with dmd #917
* Boost detection fixes #920
* Support newer javac compilers #921
* Fix the execution on python 2.3 for: "waf update", msvc.py, fc.py
* Improve the support for mac applications (demos/mac_app)
* Better default regexps in "waf step"
* New error check for tasks creating the same nodes or having the same identifiers (waf -v)
* New variables conf.env.NO_LOCK_IN_TOP/OUT/RUN for special projects (top='..')
* New example on avoiding rebuilds when moving a project (playground/relocate)
* Improve go-lang support for cgo-packages (fixes #932)
* Fix the progress bar on cmd and msys
NEW IN WAF 1.6.3
----------------
* Fixed the interaction of Fortran configuration tests and WAFCACHE #842
* Various documentation fixes
* Set the PYTHONARCHDIR variable for installing python extensions
* Fixed the Waf file creation with --zip-type=gz (bunzip2 was not replaced by gzip -d)
* Fixed multiple problems in the call to TaskGen.declare_chain(...) #850
* Fixed the task attribute 'vars' which might cause unnecessary rebuilds #852
* Return the value of post_check(...) in conf.check(...) #857
* Rewrite the boost tool (waflib/extras/boost.py) #814, #454, #424
* More fortran file extensions: .for, .FOR #867
* Searching above the root nodes no longer raise exceptions #868
* Msvc detection fixes for non-utf8 encodings #873
* Fixed the destdir processing on Windows #874
* Stop changing the flags on waf -v (make the errors more visible) #875
* Fixed the resource file compilation on Windows #876
* Fixed the vala file installation #881
* New system of plugins for C/C++/Fortran compilers (files named c_* in waflib/extras/)
* New examples of interaction between Waf and existing makefiles (playground/)
* New names for @before/@after: @before_method/@after_method
NEW IN WAF 1.6.2
----------------
* Support for C# debugging files #797
* Add -relocation-model=pic for shared libraries on ldc
* Fixed 'waf dist' for tar files on python 3 #799
* Make the latex scanner recursive #798
* Enable the packing of non-python files in the waf file #802
* Improve the feature sniffing for hybrid programs/libraries #800
* New apidocs + tutorial in Sphinx format
* Add the CPPFLAGS from os.environ #803
* Create the java output directory anywhere #806
* Enable the .luac file installation
* Process Qt translation files
* Detect when the folders were copied and prompt for "waf configure"
* Parse_flags for the *-config outputs on windows (backslashes) #811
* Fix the doxygen task build order + improve the dependency scanner #821
* Various msvc fixes #819, #826, #825
* Ported the batch executor to waf 1.6 (batched_cc)
* New tools: erlang, scala
* Moved conf.multicheck(..) from playground to the library
* New parameter to avoid reading the same scripts: bld.recurse(dir, once=True)
* Detect invalid method calls in 'waf -v' such as env.append/env.add/env.prepend
* New manifest option for jar targets #832
NEW IN WAF 1.6.1
----------------
* Fixed the method check_waf_version #764
* Fixed the name in ctx.recurse(name) #769
* Stop caching the install tasks and tasks that have no outputs #770
* Fix the log in Context.cmd_and_log() when calling with "quiet" #778
* c_preproc exception when a file has the same name as a directory #777
* 'intltool_po' does not install the .mo files #782
* 'intltool_in' was broken #792
* Bind stderr and stdout to the exception in Context.cmd_and_log #779
* Tasks not rebuilding properly when the 'run' method changes #786
* Print the progress bar information as late as possible #787
* Fix for the FRAMEWORK value processing
* Verbose mode should not require the compat15 tools #790
* Let static libraries use other static libraries as in 1.5 #768
* Fix for the boost tool #776
* boost tool update (in playground) #780
* Updated the java tool and examples
* New gcj tool in playground
* Update the c# tool and examples (playground) #796
* Read external c# libraries #774
* Xelatex support #785
* Rebuild fortran files when .mod files change #766
* docs #781
* Improve the ant_glob behaviour on ctx.root + absolute paths
* Fix for glib_mkenums and dbus-binding-tool #795
* New feature 'subst' (see demos/subst)
NEW IN WAF 1.6.0
----------------
General:
* Python 3 syntax by default (runs unmodified for 2.6, 2.7, 3.0 and 3.1)
* Environment -> ConfigSet
* only lists are allowed in ConfigSet
* Better Node apis
* Utils.load_tool -> Context.load_tool
* set_options becomes options
* only the build-related commands require a configured project
* new variant system + build context commands
* removed the pseudo glob in installation methods
* eliminate find_sources_in_dirs
* node.__class__.bld → node.ctx
* bld.new_task_gen(...) disappears, use bld(...)
* network updates for waf tools
* accept node objects in the source and includes attributes
* remove task_gen.allnodes: modify self.source directly
* merge the include system for c, c++, d, gas and nasm
* allow top == out (no build directory)
* merge the Tool/wscript system (detect->configure, set_options->options)
* new command "waf list" to list the x for "waf build --targets=x"
* rename apply_core -> process_source
* rename apply_rule -> process_rule
* rename Task.TaskBase.classes -> Task.classes
* the modules Utils.py and Logs.py are now independent from the rest of waf (imports)
* remove Task.TaskManager and Build.BuildContext.all_task_gen to improve the build group handling
* remove program_USELIB, shlib_USELIB staticlib_USELIB support
* use tasks for target installation
* improve the exception handling (WscriptError was removed, use WafError)
* let the commands access node objects
* infer the build directory from the lock filename
* waf step --file=main.c
* post task generators in a lazy manner
preview 3:
* remove the /W3 flag from msvc default flags
* opt.tool_options -> opt.load (now all commands inherit the 'tool' method)
* conf.check_tool -> conf.load
* do not copy files when creating tar files in 'waf dist'
* add zip files in 'waf dist'
* fix the behaviour of 'waf distcheck'
* preprocessor optimizations
* python 2 fixes
release candidate:
* cache fixes
* fortran fixes
* python 2 and 3 fixes
* docs and docstrings
* support for custom waf files and preludes
* fix in waflib.Context for overriding command classes
* port the doxygen tool
* Utils.to_hashtable -> Utils.str2dict
* change the thread pool to enable thread pool sharing
* fixed a regression on win32 + ansiterm.py + python 3 -> thanks to kesselhaus :-)
* various msvc fixes (thanks to Nicolas Mercier)
CHANGES IN WAF 2.0.0
--------------------
* Provide a new priority system to improve scalability on complex builds
* Provide TaskGroup objects to improve scalability on complex builds
* Force new files into the build directory by default (use Node objects to bypass)
* Provide built-in support for building over UNC paths
* Simplify the Task class hierarchy; TaskBase is removed
* Display commands as string with "WAF_CMD_FORMAT=string waf build -v"
* Have ant_glob(..., generator=True) return a Python generator
* Accept nested lists and generators in bld(source=...)
* Sort TaskGen methods in alphabetical order by reversing TaskGen.prec order
- Remove 'ut_fun' from waf_unit_test.py
- Remove Node.sig and Node.cache_sig
- Remove the BuildContext.rule decorator
- Remove Task.update_outputs, Task.always_run
- Remove atleast-version, exact-version and max-version from conf.check_cfg
- Remove c_preproc.trimquotes
- Remove field_name, type_name, function_name from conf.check() tests
- Remove extras/mem_reducer.py as a better solution has been merged
- Remove Utils.ex_stack (use traceback.format_exc())

58
DEVEL
View File

@ -1,46 +1,40 @@
Main repository for waf 1.7 on http://waf.googlecode.com/git/
-------------------------------------------------------------
Waf 2.0 is on https://gitlab.com/ita1024/waf
------------------------------------------------
waflib the core library
waflib/Tools essential waf tools
waflib/extras contributed tools which are not included in the
waf file by default (except "compat15")
build_system_kit examples of build systems that can be created from waf
waflib/extras contributed tools which are not included in the waf file by default
build_system_kit examples of build systems that can be created from Waf
tests various unit tests, most are unused anymore
playground experiments and integration tests for the tools in
the folder waflib/extras
demos integration tests - the folder can be configured
as a standalone project
playground experimental examples and test, most tools lie in the folder waflib/extras
demos integration tests - the folder can be configured as a standalone project
demos/* integration tests and examples used as documentation
docs documentation
docs/sphinx project extracting the docstrings from the source code to
create the apidocs
docs/sphinx project extracting the docstrings from the source code to create the API documentation
Documentation repository on http://docs.waf.googlecode.com/git/
---------------------------------------------------------------
Documentation
-------------------------------------------------
Contains the documentation:
API documentation http://docs.waf.googlecode.com/git/apidocs_17/index.html
The Waf Book http://docs.waf.googlecode.com/git/book_17/single.html
The Waf Book for Waf 1.6 (deprecated) http://docs.waf.googlecode.com/git/book_16/single.html
The Waf Book for Waf 1.5 (deprecated) http://docs.waf.googlecode.com/git/book_15/single.html
API documentation https://waf.io/apidocs/
The Waf Book https://waf.io/book/
Programming details
-------------------
General coding guidelines
-------------------------
* Do not use x.split("\n") but x.splitlines()
* Do not catch all exceptions unless you have a good reason to do so
* File handles are too easy to get wrong, use Node.readf/Node.writef/Utils.readf/Utils.writef
* The code must run in both Python 2.6 to Python 3
* Use tabs for Python file indentation
* Use x.splitlines() instead of x.split('\n')
* Avoid "except:" and "except Exception:"
* Use Node.readf/Node.writef/Utils.readf/Utils.writef
Wiki documentation on http://wiki.waf.googlecode.com/git/
---------------------------------------------------------
Pull requests
-------------
...
Previous branches
-----------------
old svn repository http://waf.googlecode.com/svn/trunk/ (for waf 1.5, read-only and unused)
old branch for waf 1.5 http://waf.googlecode.com/svn/branches/waf-1.5/ (again, read-only and unused)
See https://gitlab.com/ita1024/waf
When implementing complex features, please add examples in the showcase folder demos/
for modules under waflib/Tools, under tests/ for platform-independent unit tests,
or in playground/ for modules under waflib/extras.
The files under waflib/Tools/ are kept API-compatible for the duration
of a middle version (currently 2.0).

25
LICENSE Normal file
View File

@ -0,0 +1,25 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

50
README
View File

@ -1,50 +0,0 @@
WHAT YOU WILL FIND HERE
-----------------------
Waf (1.7)
For the manual: http://docs.waf.googlecode.com/git/book_16/single.html
For the api docs: http://docs.waf.googlecode.com/git/apidocs_16/index.html
For the examples: see the folder demos/
HOW TO CREATE THE WAF SCRIPT
----------------------------
Python 2.6, 2.7, 3.0, 3.1 or 3.2 is required to generate the waf script. Execute:
$ ./waf-light configure build
Or, if you have several python versions installed:
$ python3 ./waf-light configure build
The Waf tools in waflib/extras are not added to the waf script. To add
some of them, use the --tools switch:
$ ./waf-light --tools=compat15,swig
To add a tool that does not exist in the folder extras, pass an absolute path, and
to customize the initialization, pass the parameter 'prelude'. Here is for example
how to create a waf file using the compat15 module:
$ ./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n'
Any kind of initialization is possible, though one may prefer the build system kit (folder build_system_kit):
$ ./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint "ok"'
HOW TO TRY THE EXAMPLES
-----------------------
Try this:
$ cp waf demos/c/
$ cd demos/c/
$ ./waf configure build
USING GIT
---------
$ git clone https://code.google.com/p/waf/
set $HOME/.netrc to read:
machine code.google.com login user@gmail.com password pass
$ git remote add code https://code.google.com/p/waf.docs/
... make a few changes
$ git push code
---------------------------
Thomas Nagy, 2012 (ita)

60
README.md Normal file
View File

@ -0,0 +1,60 @@
# ABOUT WAF
Waf is a Python-based framework for configuring, compiling and installing applications. Here are perhaps the most important features of Waf:
* *Automatic build order*: the build order is computed from input and output files, among others
* *Automatic dependencies*: tasks to execute are detected by hashing files and commands
* *Performance*: tasks are executed in parallel automatically, the startup time is meant to be fast (separation between configuration and build)
* *Flexibility*: new commands and tasks can be added very easily through subclassing, bottlenecks for specific builds can be eliminated through dynamic method replacement
* *Extensibility*: though many programming languages and compilers are already supported by default, many others are available as extensions
* *IDE support*: Eclipse, Visual Studio and Xcode project generators (`waflib/extras/`)
* *Documentation*: the application is based on a robust model documented in [The Waf Book](https://waf.io/book/) and in the [API docs](https://waf.io/apidocs/)
* *Python compatibility*: cPython 2.5 to 3.x, Jython 2.5, IronPython, and PyPy
Learn more about Waf by reading [The Waf Book](https://waf.io/book/). For researchers and build system writers, Waf also provides a framework and examples for creating [custom build systems](https://gitlab.com/ita1024/waf/tree/master/build_system_kit) and [package distribution systems](https://gitlab.com/ita1024/waf/blob/master/playground/distnet/README.rst).
Download the project from our page on [waf.io](https://waf.io/), consult the [manual](https://waf.io/book/), the [API documentation](https://waf.io/apidocs/) and the [showcases](https://gitlab.com/ita1024/waf/tree/master/demos) and [experiments](https://gitlab.com/ita1024/waf/tree/master/playground).
## HOW TO CREATE THE WAF SCRIPT
Python >= 2.7 is required to generate the waf script:
```sh
python ./waf-light configure build
```
## CUSTOMIZATION
The Waf tools in waflib/extras are not added to the waf script. To add
some of them, use the --tools switch. An absolute path can be passed
if the module does not exist under the 'extras' folder:
```sh
./waf-light --tools=swig
```
To customize the initialization, pass the parameter 'prelude'. Here is for example
how to create a waf file using the compat15 module:
```sh
./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n'
```
Although any kind of initialization is possible, using the build system kit
may be easier (folder build\_system\_kit):
```sh
./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint("ok")'
```
To avoid regenerating the waf file all the time, just set the `WAFDIR` environment variable to the directory containing "waflib".
## HOW TO RUN THE EXAMPLES
Try this:
```sh
cp waf demos/c/
cd demos/c/
./waf configure build
```

22
TODO
View File

@ -1,22 +0,0 @@
Waf 1.7.x
---------
* fix the remaining bugs
* provide more extensions
Can be useful:
def bld_command(*k):
fun = k[0]
name = fun.__name__
from waflib.Build import BuildContext
class tmp(BuildContext):
cmd = name
fun = name
return fun
@bld_command
def foo(ctx):
print ctx.env

View File

@ -30,4 +30,4 @@ A few examples are provided to illustrate the range of possibilities:
* nostate: use timestamps only, and no build directory (very make-like)
* extpy: a custom waf file able to read wscript files having the extension ".py"
Thomas Nagy, 2010-2011
Thomas Nagy, 2010-2016

View File

@ -27,7 +27,7 @@ class Context(mod.Context):
cache[node] = True
self.pre_recurse(node)
try:
function_code = node.read('rU')
function_code = node.read('r')
exec(compile(function_code, node.abspath(), 'exec'), self.exec_dict)
finally:
self.post_recurse(node)

View File

@ -39,16 +39,16 @@ def dump(bld):
bld.targets = []
# store the command executed
old_exec = Task.TaskBase.exec_command
old_exec = Task.Task.exec_command
def exec_command(self, *k, **kw):
ret = old_exec(self, *k, **kw)
self.command_executed = k[0]
self.path = kw['cwd'] or self.generator.bld.cwd
return ret
Task.TaskBase.exec_command = exec_command
Task.Task.exec_command = exec_command
# perform a fake build, and accumulate the makefile bits
old_process = Task.TaskBase.process
old_process = Task.Task.process
def process(self):
old_process(self)
@ -67,13 +67,13 @@ def dump(bld):
else:
bld.commands.append(' '.join(lst))
bld.commands.append('\tcd %s && %s' % (self.path, self.command_executed))
Task.TaskBase.process = process
Task.Task.process = process
# write the makefile after the build is complete
def output_makefile(self):
self.commands.insert(0, "all: %s" % " ".join(self.targets))
node = self.bldnode.make_node('Makefile')
node.write("\n".join(self.commands))
Logs.warn('Wrote %s' % node.abspath())
node.write('\n'.join(self.commands))
Logs.warn('Wrote %r', node)
bld.add_post_fun(output_makefile)

View File

@ -35,9 +35,8 @@ def build(bld):
elif tp == 'objects':
features = 'c'
source = Options.options.source
app = Options.options.app
bld(features=features, source=source, target=app)
bld(features=features, source=Options.options.source, target=app)
def recurse_rep(x, y):
f = getattr(Context.g_module, x.cmd or x.fun, Utils.nada)
@ -126,9 +125,3 @@ def c_hook(self, node):
# re-bind the extension to this new class
return self.create_compiled_task('c2', node)
# modify the existing class to output the targets in the same directory as the original files
Task.update_outputs(c2)
Task.update_outputs(waflib.Tools.c.cprogram)
Task.update_outputs(waflib.Tools.c.cshlib)
Task.update_outputs(waflib.Tools.c.cstlib)

View File

@ -20,7 +20,7 @@ def build(bld):
for x in txt.splitlines():
if not x:
continue
elif x.startswith('\t') or x.startswith(' '):
elif x.startswith(('\t', ' ')):
tg.rule = x.lstrip()
else:
line = x.split(':')

2
configure vendored
View File

@ -61,7 +61,7 @@ checkWAF()
# neither waf nor miniwaf could be found
if [ ! -x "$WAF" ] ; then
printf "$RED""not found""$NORMAL""\n"
echo "Go to http://code.google.com/p/waf/"
echo "Go to https://waf.io/"
echo "and download a waf version"
exit $EXIT_FAILURE
else

View File

@ -1,21 +1,22 @@
#include "header.h"
.text
.align 2
.data
val:
.long SOME_VALUE
.text
.align 2
// Multiply input value by 421...
.global mult10
.type mult10, function
.type mult10, @function
mult10:
pushq %rbp
movq %rsp,%rbp
movl val,%eax
movabs val,%eax
imull %edi,%eax
popq %rbp
ret

View File

@ -13,14 +13,16 @@ def configure(conf):
conf.fatal('this example is for 64-bit systems only')
def build(bld):
# http://docs.waf.googlecode.com/git/apidocs_16/tools/asm.html
# https://waf.io/apidocs/tools/asm.html
bld.program(
source = 'main.c test.S',
target = 'asmtest',
includes = '.')
defines = 'foo=12',
asflags = '-Os',
includes = '.',
linkflags = '-no-pie')
def disp(ctx):
node = ctx.bldnode.ant_glob('asmtest*', remove=False)[0]
ctx.exec_command('%s' % node.abspath(), shell=False)
bld.add_post_fun(disp)

View File

@ -19,6 +19,8 @@ def configure(conf):
def build(bld):
bld.shlib(source='a.cpp', target='mylib', vnum='9.8.7')
bld.shlib(source='a.cpp', target='mylib2', vnum='9.8.7', cnum='9.8')
bld.shlib(source='a.cpp', target='mylib3')
bld.program(source='main.cpp', target='app', use='mylib')
bld.stlib(target='foo', source='b.cpp')

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
100 icon "gfx/semfavicon.ico"

View File

@ -1,19 +1,19 @@
#! /usr/bin/env python
def write_header(tsk):
tsk.outputs[0].write('int abc = 423;')
bld(rule=write_header, target='b.h', ext_out=['.h'])
tsk.outputs[0].write('int abc = 423;\n')
bld(features='use', rule=write_header, target='b.h', ext_out=['.h'], name='XYZ')
bld.program(
tg = bld.program(
features = 'aaa',
source = 'main.c',
includes = '. ..',
cflags = ['-O3'],
#cflags = ['-O3'], # for example
defines = ['foo=bar'],
target = 'myprogram',
use = 'M')
use = 'M XYZ')
# make main.c depend on wscript_build, just for the fun of it
# just for fun, make main.c depend on wscript_build
bld.add_manual_dependency('main.c', bld.path.find_resource('wscript_build'))
# ----------------------------------------
@ -34,3 +34,6 @@ class foo(waflib.Task.Task):
def run(self):
self.outputs[0].write('int kik = 343;\n')
if bld.env.CC_NAME == 'msvc':
tg.source += ' msvc_resource.rc'

View File

@ -3,6 +3,7 @@
bld.shlib(
source = 'test_shlib.c',
target = 'my_shared_lib',
name = 'xyz',
vnum = '1.2.3',
defs = 'foo.def')
@ -11,7 +12,7 @@ t = bld.program(
#features = 'my_precious',
source = 'main.c',
target = 'test_shared_link',
use = 'my_shared_lib',
use = 'xyz',
# 1. settings flags directly
#linkflags = ['-L/disk/comp/waf/demos/c/build/shlib', '-lmy_shared_lib']
)

View File

@ -0,0 +1,11 @@
#include <stdio.h>
#include "external_vars.h"
int k = 5;
void print_value_of_k() {
printf("K = %d\n", k);
}

View File

@ -0,0 +1,14 @@
/*
Export internal vars
*/
#ifndef _EXTERNAL_VARS_H
#define _EXTERNAL_VARS_H
extern int k; /* export k */
void print_value_of_k();
extern int r;
#endif /*_EXTERNAL_VARS_H */

View File

@ -0,0 +1,7 @@
# This is a static library that provides a header to include reference to
# internal variables.
bld.stlib(
target='A',
source='external_vars.c',
includes='.',
export_includes='.')

View File

@ -0,0 +1,12 @@
#include <stdio.h>
#include "sum.h"
#include "external_vars.h"
void sum(int j) {
printf("Adding %d...\n", j);
// Add our new value
k += j;
}

View File

@ -0,0 +1,10 @@
/*
Export internal vars
*/
#ifndef _SUM_H
#define _SUM_H
void sum(int j);
#endif /*_SUM_H */

View File

@ -0,0 +1,9 @@
# This script uses libA to do some internal logic. It uses the default
# behavior so it will be re-archived every time libA changes, even if
# changes in libA are only visible at runtime.
bld.stlib(
target='B',
source='sum.c',
use='A',
includes='.',
export_includes='.')

View File

@ -0,0 +1,13 @@
#include <stdio.h>
#include "diff.h"
#include "external_vars.h"
void diff(int j) {
printf("Subtracting %d...\n", j);
// subtract our new value
k -= j;
}

View File

@ -0,0 +1,10 @@
/*
Export internal vars
*/
#ifndef _DIFF_H
#define _DIFF_H
void diff(int j);
#endif /* _DIFF_H */

View File

@ -0,0 +1,10 @@
# This script uses the logic that prevents static libraries from depending on
# eachother. This means that the only way libC is re-archived is if the source
# code file diff.c or any of its depenencies change.
bld.stlib(
target='C',
source='diff.c',
features='skip_stlib_link_deps',
use='A',
includes='.',
export_includes='.')

22
demos/c/stlib-deps/main.c Normal file
View File

@ -0,0 +1,22 @@
#include <stdio.h>
#include "external_vars.h"
#include "sum.h"
#include "diff.h"
int main()
{
/* This should return to whatever the default value is. */
print_value_of_k();
sum(6);
print_value_of_k();
diff(8);
print_value_of_k();
sum(8);
print_value_of_k();
diff(6);
print_value_of_k();
return 0;
}

View File

@ -0,0 +1,11 @@
#! /usr/bin/env python
bld.recurse('libA')
bld.recurse('libB')
bld.recurse('libC')
# Note that main has an implied dependency between our main program and libA
bld.program(
source = 'main.c',
target = 'test_static_link_chain',
use = 'B C')

View File

@ -13,7 +13,7 @@ bld.program(
def r1(self):
import time
time.sleep(1)
self.outputs[0].write(' ')
self.outputs[0].write('\n')
bld(rule=r1, target='foo.h', before=['c'])
# the default scanner may enforce the build order on generated headers, but it is just

View File

@ -11,40 +11,65 @@ APPNAME='cc_test'
top = '.'
from waflib import Configure, Logs
#Configure.autoconfig = True
from waflib import Configure, Logs, Utils
#Configure.autoconfig = True # True/False/'clobber'
def options(opt):
opt.load('compiler_c gnu_dirs')
def configure(conf):
conf.load('compiler_c gnu_dirs')
conf.check_cc(fragment="int main() { return 0; }\n")
# compile and link in the default mode, which is c++ if present
conf.check(fragment='int main() { return 0; }\n')
# just compile in c mode, and do not link
conf.check(fragment='int main() { return 0; }\n', features='c')
try:
conf.check_cc(fragment="int main() { return 0; }\n", execute=True) # 1
conf.check(fragment="int main(int argc, char* argv[]) { return 0; }\n", execute=True) # 1
except conf.errors.WafError:
Logs.warn('You are probably using a cross-compiler (disabling specific configuration tests)')
conf.check_library(test_exec=False)
else:
conf.check_cc(fragment="""#include<stdio.h>\nint main(){fprintf(stderr, "mu"); printf("%d", 22);return 0;}\n""", execute=True, define_name='HAVE_MU')
conf.check(fragment="""#include<stdio.h>\nint main(){fprintf(stderr, "mu"); printf("%d", 22);return 0;}\n""",
msg='Checking for exec results', execute=True, define_name='HAVE_MU')
conf.check(fragment='int main(int argc, char* argv[]) { return argc - 2;}',
msg='Checking for test arguments', test_args=['--foo=bar'], execute=True)
conf.check_library(test_exec=True)
conf.check_cc(lib='m', cflags='-Wall', defines=['var=foo', 'x=y'], uselib_store='M', mandatory=False)
conf.check(lib='m', cflags='-Wall', defines=['var=foo', 'x=y'], uselib_store='M', mandatory=False)
conf.check_large_file(mandatory=False)
conf.check_inline()
conf.check_endianness()
endianness = conf.check_endianness()
conf.define_cond("BIG_ENDIAN", endianness == "big")
def test_build(ctx):
ctx(rule='echo hello', shell=True, always=True)
# Configuration tests may even be re-used:
#ctx.in_msg = True # suppress console outputs
#ctx.check_large_file(mandatory=False)
conf.multicheck(
{'header_name':'stdio.h'},
{'header_name':'unistd.h'},
{'header_name':'stdlib.h'},
msg = 'Checking for standard headers',
mandatory = False
# list of conf.check() arguments
{'header_name':'stdio.h', 'msg':'... stdio', 'uselib_store': 'STDIO'},
{'header_name':'xyztabcd.h', 'msg':'... optional xyztabcd.h', 'mandatory': False},
{'header_name':'stdlib.h', 'msg':'... stdlib', 'okmsg': 'aye', 'errmsg': 'nope'},
{'func': test_build, 'msg':'... testing an arbitrary build function', 'okmsg':'ok'},
# parallelism control with after_tests/before_tests
{'header_name':'malloc.h', 'msg':'... malloc', 'uselib_store':'MALLOC', 'id':'malloc_t', 'mandatory':False},
{'header_name':'unistd.h', 'msg':'... unistd', 'uselib_store':'UNISTD', 'before_tests':['malloc_t'], 'mandatory':False},
msg = 'Checking for headers in parallel',
#mandatory = False, # set to False to make all tests non-mandatory
#run_all_tests = False # set to False to stop at the first error
)
conf.check_cc(header_name='stdio.h', auto_add_header_name=True)
#conf.check_cc(header_name='unistd.h')
conf.check_cc(fragment='int main() {return 0;}\n')
conf.check(header_name='stdio.h', auto_add_header_name=True)
#conf.check(header_name='unistd.h')
conf.check(fragment='int main() {return 0;}\n')
conf.write_config_header('config.h')
# exclude system libraries, force a particular folder (see strictlib below)
@ -53,16 +78,29 @@ def configure(conf):
def build(bld):
bld.env.DEFINES=['WAF=1']
bld.recurse('program stlib shlib')
bld.recurse('program stlib stlib-deps shlib')
#bld.install_files('/tmp/foo', 'wscript')
#bld.env.PREFIX='/tmp/foo'
bld.install_files('${PREFIX}/', 'program/a.h program/main.c', relative_trick=False)
bld.install_as('${PREFIX}/gnigni.txt', 'wscript')
bld.symlink_as('${PREFIX}/libfoo.so', 'wscript')
p = Utils.subst_vars('${PREFIX}/gnigni.txt', bld.env)
bld.symlink_as('${PREFIX}/share/gnigni-abs.txt', p, relative_trick=False)
bld.symlink_as('${PREFIX}/share/gnigni-rel.txt', p, relative_trick=True)
bld.env.FOO =['m', 'ncurses']
bld.env.ST = '-L%s'
bld(rule='echo ${ST:FOO}', always=True, shell=1)
bld.env.A = 'aye'
bld.env.B = 'doh'
bld.env.SRCA = ['aaa']
bld(rule='echo ${ST:FOO} ${ST:SRC} ${A}${B} ${ST:SRCA} ${ST:SRC[0].abspath()}',
always=True, source='wscript', shell=1, name='Shell')
if not Utils.is_win32:
bld(rule='echo ${ST:FOO} ${ST:SRC} ${A}${B} ${ST:SRCA} ${ST:SRC[0].abspath()}',
always=True, source='wscript', shell=0,
stdout=None, stderr=None, # disable synchronized outputs on this rule
cls_keyword=lambda x:'Trying again', name='NoShell')
# illustrate how to add a command 'foo' and to execute things in it
if bld.cmd == 'foo':

View File

@ -1,5 +1,5 @@
obj = bld(features='d dprogram')
obj.source = 'main.d extra.d'
obj.target = 'test2'
obj.importpaths = '.'
obj.includes = '.'

View File

@ -12,6 +12,8 @@ def options(opt):
opt.load('compiler_d')
def configure(conf):
# why does dmd require -fPIC on everything?
conf.env.DFLAGS='-fPIC'
conf.load('compiler_d')
conf.env.LIB_PTHREAD = ['pthread']
conf.check_dlibrary()

View File

@ -1,33 +0,0 @@
#! /usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2008-2010 (ita)
VERSION='0.0.1'
APPNAME='cc_test'
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_cxx')
def configure(conf):
conf.load('compiler_cxx doxygen')
def build(bld):
# Note: Doxgen parameters may be passed using pars attribute
# e.g. pars={'EXCLUDE_PATTERNS':'*.babu'}
if bld.cmd == 'doxy':
bld(
features='doxygen',
doxyfile='test.conf',
doxy_tar='docs.tar.bz2')
else:
print('Call "waf doxy" for building the documentation')
from waflib import Build
class doxy(Build.BuildContext):
fun = 'build'
cmd = 'doxy'

2
demos/fortran/foo.def Normal file
View File

@ -0,0 +1,2 @@
EXPORTS
FOO

View File

@ -53,7 +53,7 @@ class fakecc(Task.Task):
bnodes = self.outputs
m = usemodule(self.inputs[0])
if m:
print "%s requires module %s" % (self.inputs[0].abspath(), m[0])
print("%s requires module %s" % (self.inputs[0].abspath(), m[0]))
#bnodes.append(self.generator.bld.bldnode.exclusive_build_node(m[0]))
compile(self)

View File

@ -0,0 +1,27 @@
submodule (parent) container
implicit none
contains
module procedure init
p%mother = mother
p%father = father
end procedure init
module subroutine harmonize(p)
type(parent_type), intent(inout) :: p
real :: avg
avg = 0.5 * (p%father + p%mother)
p%father = avg
p%mother = avg
end subroutine harmonize
module function parent_weight(p) result(w)
type(parent_type), intent(in) :: p
real :: w
w = p%mother**2 + p%father**2
end function parent_weight
end submodule container

View File

@ -0,0 +1,13 @@
submodule (parent:container) helper
implicit none
contains
module function parent_distance(pa, pb) result(dist)
type(parent_type), intent(in) :: pa, pb
real :: dist
dist = sqrt(parent_weight(pa) + parent_weight(pb))
end function parent_distance
end submodule helper

View File

@ -0,0 +1,30 @@
module parent
implicit none
type parent_type
real :: mother
real :: father
end type parent_type
interface
module subroutine init(p, mother, father)
type(parent_type), intent(out) :: p
real, intent(in) :: mother, father
end subroutine init
module subroutine harmonize(p)
type(parent_type), intent(inout) :: p
end subroutine harmonize
module function parent_weight(p) result(w)
type(parent_type), intent(in) :: p
real :: w
end function parent_weight
module function parent_distance(pa, pb) result(dist)
type(parent_type), intent(in) :: pa, pb
real :: dist
end function parent_distance
end interface
end module parent

View File

@ -0,0 +1,18 @@
program submain
use parent
implicit none
type(parent_type) :: a,b
real :: dist, weight
call init(a, 1.0, 2.0)
call init(b, 10.0, 12.0)
call harmonize(a)
weight = parent_weight(b)
write(*,*) weight
dist = parent_distance(a, b)
write(*,*) dist
end program submain

View File

@ -0,0 +1,26 @@
#! /usr/bin/env python
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_c')
opt.load('compiler_fc')
def configure(conf):
conf.load('compiler_c')
conf.load('compiler_fc')
def build(bld):
bld(
features = 'fc fcshlib',
source = 'parent.f90 container.f90 helper.f90',
target = 'fudge',
)
bld(
features = 'fc fcprogram',
source = 'submain.f90',
use = 'fudge',
target = 'submain',
)

View File

@ -0,0 +1,2 @@
EXPORTS
EXAMPLE_MOD_mp_SUB1

View File

@ -11,14 +11,19 @@ def configure(conf):
conf.load('compiler_c')
conf.load('compiler_fc')
conf.check_fortran()
conf.check_fortran_verbose_flag()
conf.check_fortran_clib()
# configuration tests that may be totally irrelevant
conf.check_fortran_dummy_main()
if not conf.env.IFORT_WIN32:
conf.check_fortran_verbose_flag()
conf.check_fortran_clib()
conf.check_fortran_mangling()
def build(bld):
bld(
features = 'fc typemap fcshlib',
source = 'fsrc.f90 basetypes.f90',
defs = 'fsrc.def',
target = 'foo',
)
@ -28,9 +33,9 @@ from waflib import Logs, Build, Utils
from waflib import TaskGen, Task
from waflib.ConfigSet import ConfigSet
#@TaskGen.feature('typemap') <- python >= 2.4
#@TaskGen.after('process_source')
#@TaskGen.before('apply_link')
@TaskGen.feature('typemap')
@TaskGen.after('process_source')
@TaskGen.before('apply_link')
def process_typemaps(self):
"""
modmap: *.f90 + foo.in -> foo.h + foo.f90
@ -54,11 +59,6 @@ def process_typemaps(self):
tsk = self.create_compiled_task('fc', f90out)
tsk.nomod = True # the fortran files won't compile unless all the .mod files are set, ick
# for python 2.3
TaskGen.feature('typemap')(process_typemaps)
TaskGen.after('process_source')(process_typemaps)
TaskGen.before('apply_link')(process_typemaps)
class modmap(Task.Task):
"""
create .h and .f90 files, so this must run be executed before any c task
@ -166,25 +166,26 @@ end subroutine outer
return res
def write_type_map(bld, ctps, fort_file, c_header):
fort_file.write('''\
buf = ['''\
module type_maps
use, intrinsic :: iso_c_binding
implicit none
''', flags='w')
''']
for ctp in ctps:
fort_file.write('integer, parameter :: %s = %s\n' % (ctp.name, ctp.fc_type),
flags='a')
fort_file.write('end module type_maps\n', flags='a')
buf.append('integer, parameter :: %s = %s' % (ctp.name, ctp.fc_type))
buf.append('end module type_maps\n')
fort_file.write('\n'.join(buf))
cap_name = '%s__' % c_header.name.upper().replace('.', '_')
c_header.write('''\
buf = ['''\
#ifndef %s
#define %s
''' % (cap_name, cap_name), flags='w')
''' % (cap_name, cap_name)]
for ctp in ctps:
# This is just an example, so this would be customized. The 'long long'
# would correspond to the actual C type...
c_header.write('typedef long long %s\n' % ctp.name, flags='a')
c_header.write('#endif\n', flags='a')
buf.append('typedef long long %s\n' % ctp.name)
buf.append('#endif\n')
c_header.write('\n'.join(buf))
# vim:ft=python:noet

View File

@ -12,19 +12,15 @@ def options(opt):
opt.recurse('typemap')
def configure(conf):
conf.load('compiler_fc')
conf.load('compiler_c')
conf.load('compiler_fc')
if conf.env.FC_NAME == 'IFORT':
conf.env['FCFLAGS'] = ['-warn']
conf.env.append_unique('FCFLAGS', '-warn')
elif conf.env.FC_NAME == 'GFORTRAN':
conf.env['FCFLAGS'] = ['-Wall', '-W']
#conf.env['INCLUDES'] = ['hfloupi']
conf.env.append_unique('FCFLAGS', ['-Wall', '-W'])
conf.check_fortran()
conf.check_fortran_verbose_flag()
conf.check_fortran_clib()
conf.check_fortran_dummy_main()
conf.check_fortran_mangling()
conf.recurse('typemap')
def build(bld):
@ -43,6 +39,7 @@ def build(bld):
features = 'fc fcshlib',
source = 'foo.f',
target = 'shlib1',
defs = 'foo.def',
vnum = '2.3.9')
bld(
@ -81,3 +78,5 @@ def build(bld):
target = 'mod/two_mods')
bld.recurse('typemap')
if bld.env.FC_NAME == 'GFORTRAN' and int(bld.env.FC_VERSION[0]) >= 6:
bld.recurse('submodules')

1
demos/glib2/file.js Normal file
View File

@ -0,0 +1 @@
print('This is a resource file!')

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/glib2/test">
<file>file.js</file>
</gresource>
</gresources>

View File

@ -0,0 +1,7 @@
<schemalist>
<schema id="org.gsettings.simple">
<key name="greeting" type="s">
<default>"Hello, world"</default>
</key>
</schema>
</schemalist>

View File

@ -8,6 +8,8 @@ APPNAME='glib2_test'
top = '.'
out = 'build'
import os
def options(opt):
opt.load ('compiler_c glib2')
@ -16,6 +18,8 @@ def configure(conf):
conf.check_cfg (package='glib-2.0', uselib_store='GLIB', atleast_version='2.25.0',
args='--cflags --libs')
conf.check_cfg (package='gio-2.0', uselib_store='GIO', atleast_version='2.25.0',
args='--cflags --libs')
conf.check_cfg (package='gobject-2.0', uselib_store='GOBJECT', atleast_version='2.25.0',
args='--cflags --libs')
@ -23,8 +27,8 @@ def configure(conf):
def build(bld):
app = bld (
features = 'c cprogram glib2',
uselib = 'GLIB GOBJECT',
source = 'main.c',
use = 'GLIB GIO GOBJECT',
source = 'main.c org.glib2.test.gresource.xml',
target = 'gsettings-test'
## An alternate way of doing this (no need to call add_ functions):
@ -38,3 +42,16 @@ def build(bld):
'org.gsettings.test-2.gschema.xml'])
app.add_marshal_file('marshal.list', 'test_marshal')
bld(
features = 'gresource',
source = 'org.glib2.test.gresource.xml',
install_path = 'lib/glib2_test'
)
# Install a schema to a different location.
# It will be compiled to a cache file besides it.
bld(
features = 'glib2',
settings_schema_files = ['org.gsettings.simple.gschema.xml']
).env.GSETTINGSSCHEMADIR = os.path.join('etc', 'glib-2.0', 'schemas')

View File

@ -1,27 +0,0 @@
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -1,278 +0,0 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package gmp
// #include <gmp.h>
// #include <stdlib.h>
// #cgo LDFLAGS: -lgmp
import "C"
import (
"os"
"unsafe"
)
/*
* one of a kind
*/
// An Int represents a signed multi-precision integer.
// The zero value for an Int represents the value 0.
type Int struct {
i C.mpz_t
init bool
}
// NewInt returns a new Int initialized to x.
func NewInt(x int64) *Int { return new(Int).SetInt64(x) }
// Int promises that the zero value is a 0, but in gmp
// the zero value is a crash. To bridge the gap, the
// init bool says whether this is a valid gmp value.
// doinit initializes z.i if it needs it. This is not inherent
// to FFI, just a mismatch between Go's convention of
// making zero values useful and gmp's decision not to.
func (z *Int) doinit() {
if z.init {
return
}
z.init = true
C.mpz_init(&z.i[0])
}
// Bytes returns z's representation as a big-endian byte array.
func (z *Int) Bytes() []byte {
b := make([]byte, (z.Len()+7)/8)
n := C.size_t(len(b))
C.mpz_export(unsafe.Pointer(&b[0]), &n, 1, 1, 1, 0, &z.i[0])
return b[0:n]
}
// Len returns the length of z in bits. 0 is considered to have length 1.
func (z *Int) Len() int {
z.doinit()
return int(C.mpz_sizeinbase(&z.i[0], 2))
}
// Set sets z = x and returns z.
func (z *Int) Set(x *Int) *Int {
z.doinit()
C.mpz_set(&z.i[0], &x.i[0])
return z
}
// SetBytes interprets b as the bytes of a big-endian integer
// and sets z to that value.
func (z *Int) SetBytes(b []byte) *Int {
z.doinit()
if len(b) == 0 {
z.SetInt64(0)
} else {
C.mpz_import(&z.i[0], C.size_t(len(b)), 1, 1, 1, 0, unsafe.Pointer(&b[0]))
}
return z
}
// SetInt64 sets z = x and returns z.
func (z *Int) SetInt64(x int64) *Int {
z.doinit()
// TODO(rsc): more work on 32-bit platforms
C.mpz_set_si(&z.i[0], C.long(x))
return z
}
// SetString interprets s as a number in the given base
// and sets z to that value. The base must be in the range [2,36].
// SetString returns an error if s cannot be parsed or the base is invalid.
func (z *Int) SetString(s string, base int) os.Error {
z.doinit()
if base < 2 || base > 36 {
return os.EINVAL
}
p := C.CString(s)
defer C.free(unsafe.Pointer(p))
if C.mpz_set_str(&z.i[0], p, C.int(base)) < 0 {
return os.EINVAL
}
return nil
}
// String returns the decimal representation of z.
func (z *Int) String() string {
if z == nil {
return "nil"
}
z.doinit()
p := C.mpz_get_str(nil, 10, &z.i[0])
s := C.GoString(p)
C.free(unsafe.Pointer(p))
return s
}
func (z *Int) destroy() {
if z.init {
C.mpz_clear(&z.i[0])
}
z.init = false
}
/*
* arithmetic
*/
// Add sets z = x + y and returns z.
func (z *Int) Add(x, y *Int) *Int {
x.doinit()
y.doinit()
z.doinit()
C.mpz_add(&z.i[0], &x.i[0], &y.i[0])
return z
}
// Sub sets z = x - y and returns z.
func (z *Int) Sub(x, y *Int) *Int {
x.doinit()
y.doinit()
z.doinit()
C.mpz_sub(&z.i[0], &x.i[0], &y.i[0])
return z
}
// Mul sets z = x * y and returns z.
func (z *Int) Mul(x, y *Int) *Int {
x.doinit()
y.doinit()
z.doinit()
C.mpz_mul(&z.i[0], &x.i[0], &y.i[0])
return z
}
// Div sets z = x / y, rounding toward zero, and returns z.
func (z *Int) Div(x, y *Int) *Int {
x.doinit()
y.doinit()
z.doinit()
C.mpz_tdiv_q(&z.i[0], &x.i[0], &y.i[0])
return z
}
// Mod sets z = x % y and returns z.
// Like the result of the Go % operator, z has the same sign as x.
func (z *Int) Mod(x, y *Int) *Int {
x.doinit()
y.doinit()
z.doinit()
C.mpz_tdiv_r(&z.i[0], &x.i[0], &y.i[0])
return z
}
// Lsh sets z = x << s and returns z.
func (z *Int) Lsh(x *Int, s uint) *Int {
x.doinit()
z.doinit()
C.mpz_mul_2exp(&z.i[0], &x.i[0], C.mp_bitcnt_t(s))
return z
}
// Rsh sets z = x >> s and returns z.
func (z *Int) Rsh(x *Int, s uint) *Int {
x.doinit()
z.doinit()
C.mpz_div_2exp(&z.i[0], &x.i[0], C.mp_bitcnt_t(s))
return z
}
// Exp sets z = x^y % m and returns z.
// If m == nil, Exp sets z = x^y.
func (z *Int) Exp(x, y, m *Int) *Int {
m.doinit()
x.doinit()
y.doinit()
z.doinit()
if m == nil {
C.mpz_pow_ui(&z.i[0], &x.i[0], C.mpz_get_ui(&y.i[0]))
} else {
C.mpz_powm(&z.i[0], &x.i[0], &y.i[0], &m.i[0])
}
return z
}
func (z *Int) Int64() int64 {
if !z.init {
return 0
}
return int64(C.mpz_get_si(&z.i[0]))
}
// Neg sets z = -x and returns z.
func (z *Int) Neg(x *Int) *Int {
x.doinit()
z.doinit()
C.mpz_neg(&z.i[0], &x.i[0])
return z
}
// Abs sets z to the absolute value of x and returns z.
func (z *Int) Abs(x *Int) *Int {
x.doinit()
z.doinit()
C.mpz_abs(&z.i[0], &x.i[0])
return z
}
/*
* functions without a clear receiver
*/
// CmpInt compares x and y. The result is
//
// -1 if x < y
// 0 if x == y
// +1 if x > y
//
func CmpInt(x, y *Int) int {
x.doinit()
y.doinit()
switch cmp := C.mpz_cmp(&x.i[0], &y.i[0]); {
case cmp < 0:
return -1
case cmp == 0:
return 0
}
return +1
}
// DivModInt sets q = x / y and r = x % y.
func DivModInt(q, r, x, y *Int) {
q.doinit()
r.doinit()
x.doinit()
y.doinit()
C.mpz_tdiv_qr(&q.i[0], &r.i[0], &x.i[0], &y.i[0])
}
// GcdInt sets d to the greatest common divisor of a and b,
// which must be positive numbers.
// If x and y are not nil, GcdInt sets x and y such that d = a*x + b*y.
// If either a or b is not positive, GcdInt sets d = x = y = 0.
func GcdInt(d, x, y, a, b *Int) {
d.doinit()
x.doinit()
y.doinit()
a.doinit()
b.doinit()
C.mpz_gcdext(&d.i[0], &x.i[0], &y.i[0], &a.i[0], &b.i[0])
}
// ProbablyPrime performs n Miller-Rabin tests to check whether z is prime.
// If it returns true, z is prime with probability 1 - 1/4^n.
// If it returns false, z is not prime.
func (z *Int) ProbablyPrime(n int) bool {
z.doinit()
return int(C.mpz_probab_prime_p(&z.i[0], C.int(n))) > 0
}

View File

@ -1,7 +0,0 @@
package gmp
/*
#include <stdio.h>
*/
import "C"
// EOF

View File

@ -1,10 +0,0 @@
// By: Tom Wambold <tom5760@gmail.com>
package main
import "other"
func main() {
a := other.Vector3 {1, 2, 3};
a.Size();
return;
}

View File

@ -1,16 +0,0 @@
package foo
/*
#cgo LDFLAGS: -lmy-c-lib
#include "my-c-lib.h"
#include <stdlib.h>
*/
import "C"
import "unsafe"
func MyBye(msg string) {
c_msg := C.CString(msg)
defer C.free(unsafe.Pointer(c_msg))
C.my_c_bye(c_msg)
}

View File

@ -1,16 +0,0 @@
package foo
/*
#cgo LDFLAGS: -lmy-c-lib
#include "my-c-lib.h"
#include <stdlib.h>
*/
import "C"
import "unsafe"
func MyHello(msg string) {
c_msg := C.CString(msg)
defer C.free(unsafe.Pointer(c_msg))
C.my_c_hello(c_msg)
}

View File

@ -1,7 +0,0 @@
#ifndef MY_C_LIB_H
#define MY_C_LIB_H 1
void my_c_hello(const char *msg);
void my_c_bye(const char *msg);
#endif

View File

@ -1,15 +0,0 @@
/* simple C library to exercize CGO */
#include <stdio.h>
#include "my-c-lib.h"
void my_c_hello(const char *msg)
{
fprintf(stdout, msg);
}
void my_c_bye(const char *msg)
{
fprintf(stdout, msg);
}

View File

@ -1,10 +0,0 @@
package main
import "foo"
func main() {
foo.MyHello("hello from my-c-lib\n")
foo.MyBye("bye from my-c-lib\n")
}
// EOF

View File

@ -1,11 +0,0 @@
// By: Tom Wambold <tom5760@gmail.com>
package other
import "math"
// A three-value vector (i, j, k)
type Vector3 [3]float64
func (a *Vector3) Size() float64 {
return math.Sqrt(float64(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]));
}

View File

@ -1,6 +0,0 @@
package other
type Foo interface {
Get(i int, j int) float64;
Set(i int, j int, v float64);
}

View File

@ -1,104 +0,0 @@
/*
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of "The Computer Language Benchmarks Game" nor the
name of "The Computer Language Shootout Benchmarks" nor the names of
its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*/
/* The Computer Language Benchmarks Game
* http://shootout.alioth.debian.org/
*
* contributed by The Go Authors.
* based on pidigits.c (by Paolo Bonzini & Sean Bartlett,
* modified by Michael Mellor)
*/
package main
import (
big "gmp"
"fmt"
"runtime"
)
var (
tmp1 = big.NewInt(0)
tmp2 = big.NewInt(0)
numer = big.NewInt(1)
accum = big.NewInt(0)
denom = big.NewInt(1)
ten = big.NewInt(10)
)
func extractDigit() int64 {
if big.CmpInt(numer, accum) > 0 {
return -1
}
tmp1.Lsh(numer, 1).Add(tmp1, numer).Add(tmp1, accum)
big.DivModInt(tmp1, tmp2, tmp1, denom)
tmp2.Add(tmp2, numer)
if big.CmpInt(tmp2, denom) >= 0 {
return -1
}
return tmp1.Int64()
}
func nextTerm(k int64) {
y2 := k*2 + 1
accum.Add(accum, tmp1.Lsh(numer, 1))
accum.Mul(accum, tmp1.SetInt64(y2))
numer.Mul(numer, tmp1.SetInt64(k))
denom.Mul(denom, tmp1.SetInt64(y2))
}
func eliminateDigit(d int64) {
accum.Sub(accum, tmp1.Mul(denom, tmp1.SetInt64(d)))
accum.Mul(accum, ten)
numer.Mul(numer, ten)
}
func main() {
i := 0
k := int64(0)
for {
d := int64(-1)
for d < 0 {
k++
nextTerm(k)
d = extractDigit()
}
eliminateDigit(d)
fmt.Printf("%c", d+'0')
if i++; i%50 == 0 {
fmt.Printf("\n")
if i >= 1000 {
break
}
}
}
fmt.Printf("\n%d calls; bit sizes: %d %d %d\n", runtime.Cgocalls(), numer.Len(), accum.Len(), denom.Len())
}

View File

@ -1,43 +0,0 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Pass numbers along a chain of threads.
package main
import (
"runtime"
"cgo/stdio"
"strconv"
)
const N = 10
const R = 5
func link(left chan<- int, right <-chan int) {
// Keep the links in dedicated operating system
// threads, so that this program tests coordination
// between pthreads and not just goroutines.
runtime.LockOSThread()
for {
v := <-right
stdio.Stdout.WriteString(strconv.Itoa(v) + "\n")
left <- 1 + v
}
}
func main() {
leftmost := make(chan int)
var left chan int
right := leftmost
for i := 0; i < N; i++ {
left, right = right, make(chan int)
go link(left, right)
}
for i := 0; i < R; i++ {
right <- 0
x := <-leftmost
stdio.Stdout.WriteString(strconv.Itoa(x) + "\n")
}
}

View File

@ -1,47 +0,0 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Compute Fibonacci numbers with two goroutines
// that pass integers back and forth. No actual
// concurrency, just threads and synchronization
// and foreign code on multiple pthreads.
package main
import (
"runtime"
"cgo/stdio"
"strconv"
)
func fibber(c, out chan int64, i int64) {
// Keep the fibbers in dedicated operating system
// threads, so that this program tests coordination
// between pthreads and not just goroutines.
runtime.LockOSThread()
if i == 0 {
c <- i
}
for {
j := <-c
stdio.Stdout.WriteString(strconv.Itoa64(j) + "\n")
out <- j
<-out
i += j
c <- i
}
}
func main() {
c := make(chan int64)
out := make(chan int64)
go fibber(c, out, 0)
go fibber(c, out, 1)
<-out
for i := 0; i < 90; i++ {
out <- 1
<-out
}
}

View File

@ -1,44 +0,0 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
/*
A trivial example of wrapping a C library in Go.
For a more complex example and explanation,
see ../gmp/gmp.go.
*/
package stdio
/*
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <errno.h>
char* greeting = "hello, world";
*/
import "C"
import "unsafe"
type File C.FILE
var Stdout = (*File)(C.stdout)
var Stderr = (*File)(C.stderr)
// Test reference to library symbol.
// Stdout and stderr are too special to be a reliable test.
var myerr = C.sys_errlist
func (f *File) WriteString(s string) {
p := C.CString(s)
C.fputs(p, (*C.FILE)(f))
C.free(unsafe.Pointer(p))
f.Flush()
}
func (f *File) Flush() {
C.fflush((*C.FILE)(f))
}
var Greeting = C.GoString(C.greeting)

View File

@ -1,11 +0,0 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
import "cgo/stdio"
func main() {
stdio.Stdout.WriteString(stdio.Greeting + "\n")
}

View File

@ -1,147 +0,0 @@
#!/usr/bin/env python
# encoding: utf-8
# Tom Wambold tom5760 gmail
# Thomas Nagy, 2010 (ita)
"""
if libgmp is present, try building with 'waf --exe'
"""
top = '.'
out = 'build'
def options(opt):
opt.add_option('--exe', action='store_true', default=False, help='Execute the program after it is compiled')
def configure(ctx):
ctx.load('go')
# the compiler keeps changing, think twice before trying it for a serious project
ctx.env.TRY_CGO = False
return
try:
ctx.load('gcc')
ctx.check_cc(fragment='#include <gmp.h>\nint main() {return 0;}\n', uselib_store='GMP', lib='gmp')
except ctx.errors.ConfigurationError:
ctx.env.TRY_CGO = False
else:
ctx.env.TRY_CGO = True
def build(ctx):
ctx(
features = 'go gopackage',
target = 'other',
source = [
'other/a.go',
'other/b.go', # gopack sux
],
)
ctx(
features = 'go goprogram',
target = 'test',
use = 'other',
source = 'main.go',
includes = '.',
)
# NOTE: if you use ant_glob, use it like this: bld.path.ant_glob('*.go', excl='*_test.go')
if ctx.env.TRY_CGO:
ctx.read_shlib('gmp')
ctx(
features = 'c cshlib',
source = 'my-c-lib/src/foo.c',
target = 'my-c-lib',
includes = 'my-c-lib/includes',
export_includes=['my-c-lib/includes'],
)
ctx(
features = 'cgopackage',
name = 'go-gmp',
target = 'gmp',
source = 'gmp.go gmp/impl.go',
use = 'gmp',
)
# testing multiple cgopackage targets...
ctx(
features = 'cgopackage',
name = 'go-stdio',
target = 'cgo/stdio',
source = 'stdio/file.go',
)
ctx(
features = 'cgopackage',
name = 'go-my-c-lib',
target = 'foo',
source = 'my-c-lib.go my-c-lib-2.go',
use = ['my-c-lib',],
)
#ctx.add_group()
ctx(features='go goprogram uselib',
source='pi.go',
target='pi',
use='go-gmp',
#gocflags=['-I.', '-I..'],
)
ctx(
features='go goprogram uselib',
source='stdio/hello.go',
target='go-stdio-hello',
use='go-stdio',
)
ctx(
features='go goprogram uselib',
source='stdio/fib.go',
target='go-stdio-fib',
use='go-stdio',
)
ctx(
features='go goprogram uselib',
source='stdio/chain.go',
target='go-stdio-chain',
use='go-stdio',
)
ctx(
features='go goprogram uselib',
source='my-cgo-test.go',
target='my-cgo-test',
use='go-my-c-lib',
)
from waflib import Options, Utils
if ctx.env.TRY_CGO and Options.options.exe:
def exe_pi(bld):
p = Utils.subprocess.Popen('LD_LIBRARY_PATH=build ./build/pi', shell=True)
p.wait()
ctx.add_post_fun(exe_pi)
def exe_hello(bld):
p = Utils.subprocess.Popen('LD_LIBRARY_PATH=build ./build/go-stdio-hello', shell=True)
p.wait()
ctx.add_post_fun(exe_hello)
def exe_fib(bld):
p = Utils.subprocess.Popen('LD_LIBRARY_PATH=build ./build/go-stdio-fib', shell=True)
p.wait()
ctx.add_post_fun(exe_fib)
def exe_chain(bld):
p = Utils.subprocess.Popen('LD_LIBRARY_PATH=build ./build/go-stdio-chain', shell=True)
p.wait()
ctx.add_post_fun(exe_chain)
def exe_mycgolib(bld):
p = Utils.subprocess.Popen('LD_LIBRARY_PATH=build ./build/my-cgo-test', shell=True)
p.wait()
ctx.add_post_fun(exe_mycgolib)

View File

@ -4,17 +4,20 @@ from waflib import Utils
def build(bld):
if bld.cmd == 'install':
def post_update(bld):
try:
bld.exec_command(["update-mime-database", Utils.subst_vars("${DATADIR}/mime", bld.env)])
bld.exec_command(["update-desktop-database", Utils.subst_vars("${DATADIR}/applications", bld.env)])
except:
except Exception:
pass
if bld.cmd == 'install':
bld.add_post_fun(post_update)
bld(
features = "intltool_in",
podir = "../po",
flags = ["-d", "-q", "-u", "-c"],
style = "desktop",
source = 'kupfer.desktop.in',
target = 'kupfer.desktop',
install_path = "${DATADIR}/applications",
@ -23,7 +26,7 @@ def build(bld):
bld(
features = "intltool_in",
podir = "../po",
flags = ["-x", "-q", "-u", "-c"],
style = "xml",
source = 'kupfer-mimetypes.xml.in',
target = 'kupfer-mimetypes.xml',
install_path = "${DATADIR}/mime/packages/",

View File

@ -8,7 +8,7 @@ def build(bld):
# javac
srcdir = 'src',
compat = '1.5',
compat = '1.7',
# jar
basedir = '.',

View File

@ -0,0 +1,14 @@
package org.example;
//import org.example.Animal;
import org.example.Cat;
class Bengala extends Cat {
public String sound() {
return "Bengala Meow!";
}
}

View File

@ -0,0 +1,12 @@
#! /usr/bin/env python
def build(bld):
bld(features = 'javac',
srcdir = 'src',
compat = '1.7',
use = 'cats-src',
name = 'bengala-cat',
recurse_use = True,
)

View File

@ -6,9 +6,10 @@ import org.example.Animal;
class Cat extends Animal {
public String sound() {
// Use base class just to be able to trigger possible rebuilds based on base class change
String base = super.sound();
return "Meow!";
}
}

View File

@ -4,7 +4,7 @@ def build(bld):
bld(features = 'javac',
srcdir = 'src',
compat = '1.5',
compat = '1.7',
use = 'animals',
name = 'cats-src',
)

View File

@ -36,10 +36,10 @@ def build(bld):
bld(features = 'javac jar javadoc',
srcdir = 'src/', # folder containing the sources to compile
outdir = 'src', # folder where to output the classes (in the build directory)
compat = '1.3', # java compatibility version number
compat = '1.6', # java compatibility version number
sourcepath = ['src', 'sup'],
classpath = ['.', '..'],
#jaropts = '-C default/src/ .', # can be used to give files
#jaropts = ['-C', 'default/src/', '.'], # can be used to give files
basedir = 'src', # folder containing the classes and other files to package (must match outdir)
destfile = 'foo.jar', # do not put the destfile in the folder of the java classes!
use = 'NNN',
@ -49,5 +49,5 @@ def build(bld):
javadoc_output = 'javadoc',
)
bld.recurse('animals cats')
bld.recurse('animals cats bengala')

View File

@ -1,6 +1,7 @@
// waf sample Mac application - main.m
// Chris Pickel, 2011
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
int main(int argc, const char* argv[]) {

View File

@ -21,18 +21,19 @@ def configure(conf):
if not conf.env.ARCH_ST:
conf.fatal('This example is for macs only')
conf.env.FRAMEWORK_COCOA = 'Cocoa'
conf.env.ARCH_COCOA = ['i386', 'x86_64']
conf.env.ARCH_COCOA = ['x86_64', 'arm64']
def build(bld):
bld.program(
features = 'c cprogram',
target = 'MacApp',
source = 'sources/main.m',
mac_app = True,
mac_plist = 'Info.plist',
mac_resources = 'resources/MainMenu.nib resources/MacApp.icns',
use = 'COCOA',
install_path = '${PREFIX}',
features = 'c cprogram',
target = 'MacApp',
source = 'sources/main.m',
mac_app = True,
mac_plist = 'Info.plist',
mac_files = bld.path.ant_glob('resources/**'),
mac_files_root = 'resources',
use = 'COCOA',
install_path = '${PREFIX}',
)
return

View File

@ -1 +0,0 @@
#include "w.h"

View File

@ -1 +0,0 @@
#warning testpch

View File

@ -1,53 +0,0 @@
#! /usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2006 (ita)
"""
for some obscure reason, the precompiled header will not be taken if
all.h is in the same directory as main.cpp
we recommend to add the header to compile in a separate directory without any sources
Note: the #warning will come once when the .h is compiled, it will not come when the .cpp is compiled
Note: do not forget to set the include paths (include=...)
"""
from waflib.TaskGen import feature, after
from waflib.Task import Task
from waflib.Tools import c_preproc
@feature('cxx')
@after('apply_link')
def process_pch(self):
if getattr(self, 'pch', ''):
nodes = self.to_nodes(self.pch)
for x in nodes:
self.create_task('gchx', x, x.change_ext('.h.gch'))
class gchx(Task):
run_str = '${CXX} ${CXXFLAGS} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${CPPPATH_ST:INCPATHS} ${DEFINES_ST:DEFINES} ${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}'
scan = c_preproc.scan
ext_out = ['.h']
color = 'BLUE'
from waflib.Task import update_outputs
update_outputs(gchx)
#################################################
# example below
VERSION='0.0.1'
APPNAME='pch_test'
top = '.'
out = 'build'
def configure(conf):
conf.load('g++')
def build(bld):
bld.program(
source = 'main.cpp',
includes = '. subdir',
target = 'test',
pch = 'subdir/all.h')

View File

@ -23,8 +23,7 @@ def build(bld):
#rule = '''echo -e "#include <stdio.h>\\nint main(){ printf(\\"%%d\\", $$RANDOM); return 0;}" > ${TGT}''',
rule = fun,
target = node,
always = True,
update_outputs = True)
always = True)
bld.program(
source = 'precious.c',

View File

@ -0,0 +1,3 @@
"""
Nested file in bar/
"""

View File

@ -0,0 +1,3 @@
"""
Nested file in foo/
"""

View File

@ -29,9 +29,15 @@ def configure(conf):
def build(bld):
# first compile a few pyc and pyo files (set install_path=None to disable the installation...)
# first compile a few pyc and pyo files (set install_path=None to disable the installation,
# by default install_path is set to ${PYTHONDIR})
bld(features='py', source=bld.path.ant_glob('*.py'), install_from='.')
# example for generated python files
target = bld.path.find_or_declare('abc.py')
bld(rule='touch ${TGT}', source='wscript', target=target)
bld(features='py', source=[target], install_from=target.parent)
# then a c extension module
bld(
features = 'c cshlib pyext',
@ -44,3 +50,19 @@ def build(bld):
source = 'test.c',
target = 'test')
# Install files keeping their directory structure (default: relative_trick=True)
#
# This will create:
# * lib/python2.7/site-packages/nested_scripts/foo/nested_foo.py
bld(features='py',
source=bld.path.ant_glob('nested_scripts/foo/*.py'),
install_from='.')
# Install files flatting the directory structure (relative_trick=False)
#
# This will create:
# * lib/python2.7/site-packages/nested_bar.py
bld(features='py',
source=bld.path.ant_glob('nested_scripts/bar/*.py'),
relative_trick=False,
install_from='.')

38
demos/qt5/foo.cpp Normal file
View File

@ -0,0 +1,38 @@
// Thomas Nagy, 2011-2016
#include "foo.h"
Foo::Foo() : QWidget(NULL) {
m_button = new QPushButton("Foo Button", this);
m_button->setGeometry(QRect(QPoint(50, 60),
QSize(120, 50)));
connect(m_button, SIGNAL (released()), this, SLOT (handleButton()));
myToggle = true;
}
void Foo::handleButton() {
if (myToggle) {
m_button->setText("Button Foo");
} else {
m_button->setText("Foo Button");
}
myToggle = !myToggle;
}
int Foo::FortyTwo() {
return 42;
}
class Bar_private : public QWidget {
Q_OBJECT
signals:
void test();
public:
Bar_private();
};
Bar_private::Bar_private() : QWidget(NULL) {
}
#include "foo.moc"

23
demos/qt5/foo.h Normal file
View File

@ -0,0 +1,23 @@
// Thomas Nagy, 2011-2016
#ifndef _FOO
#define _FOO
#include <QWidget>
#include <QPushButton>
class Foo : public QWidget {
Q_OBJECT
signals:
void test();
private slots:
void handleButton();
public:
Foo();
int FortyTwo();
QPushButton *m_button;
public:
bool myToggle;
};
#endif

27
demos/qt5/main.cpp Normal file
View File

@ -0,0 +1,27 @@
// Thomas Nagy, 2016 (ita)
#include <QApplication>
//#include <QString>
//#include "mainwindow.h"
#include "ui_but.h"
#include "foo.h"
int main(int argc, char **argv)
{
Q_INIT_RESOURCE(res);
QApplication app(argc, argv);
Foo window;
Ui::Form ui;
ui.setupUi(&window);
window.show();
return app.exec();
/*
MainWindow window;
if (argc == 2)
window.openFile(argv[1]);
else
window.openFile(":/files/bubbles.svg");
window.show();
return app.exec();
*/
}

7
demos/qt5/res.qrc Normal file
View File

@ -0,0 +1,7 @@
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
<file alias="logo.svg">../../docs/slides/presentation/gfx/waflogo.svg</file>
</qresource>
</RCC>

31
demos/qt5/testqt5.cpp Normal file
View File

@ -0,0 +1,31 @@
// Example of Qt5 Unit test with QtTest library
// Federico Pellegrin, 2019 (fedepell)
#include "foo.h"
#include <QtTest/QtTest>
class TestQt5Test: public QObject {
Q_OBJECT
private:
Foo myFoo;
private slots:
void testGui();
void testFunc();
};
// Test of the UI by simulating a button click and button label reading
void TestQt5Test::testGui() {
QCOMPARE(myFoo.m_button->text(), QString("Foo Button"));
QTest::mouseClick(myFoo.m_button, Qt::LeftButton,Qt::NoModifier, QPoint(5,5), 0);
QCOMPARE(myFoo.m_button->text(), QString("Button Foo"));
}
// Test of a normal function
void TestQt5Test::testFunc() {
QCOMPARE(myFoo.FortyTwo(), 44); // this fails! 42 != 44
}
QTEST_MAIN(TestQt5Test)
#include "testqt5.moc"

88
demos/qt5/wscript Normal file
View File

@ -0,0 +1,88 @@
#! /usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2016 (ita)
# Federico Pellegrin, 2019 (fedepell)
VERSION='0.0.1'
APPNAME='qt5_test'
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_cxx qt5 waf_unit_test')
def configure(conf):
conf.load('compiler_cxx qt5 waf_unit_test')
#conf.env.append_value('CXXFLAGS', ['-g']) # test
if not conf.env.QT_LRELEASE:
# While qt5 detects most Qt tools, most of them are optional
conf.fatal('lrelease was not found')
# These tests would run on Ubuntu but not on other platforms
conf.check(
define_name = 'XYZ_QT5_TESTS',
mandatory = False,
execute = True,
features = 'qt5 cxx cxxprogram',
includes = '.',
defines = 'QT_WIDGETS_LIB',
use = 'QT5CORE QT5GUI QT5WIDGETS QT5TEST',
msg = 'Checking whether Qt5 tests can run',
fragment = '''
#include <QtTest/QtTest>
class TestQt5Test: public QObject {
Q_OBJECT
private:
void testGui() {
QWidget *widget = NULL;
QTest::mouseClick(widget, Qt::LeftButton, Qt::NoModifier, QPoint(5,5), 0);
}
};
QTEST_MAIN(TestQt5Test)
#include "test.moc"
''')
def build(bld):
# According to the Qt5 documentation:
# Qt classes in foo.h -> declare foo.h as a header to be processed by moc
# add the resulting moc_foo.cpp to the source files
# Qt classes in foo.cpp -> include foo.moc at the end of foo.cpp
#
bld(
features = 'qt5 cxx cxxprogram',
use = 'QT5CORE QT5GUI QT5SVG QT5WIDGETS',
source = 'main.cpp res.qrc but.ui foo.cpp',
moc = 'foo.h',
target = 'window',
includes = '.',
lang = bld.path.ant_glob('linguist/*.ts'),
langname = 'somefile', # include the .qm files from somefile.qrc
)
if bld.env.XYZ_QT5_TESTS:
# Example of integration of Qt5 Unit tests using Qt5Test using waf_unit_test
bld(
features = 'qt5 cxx cxxprogram test',
use = 'QT5CORE QT5GUI QT5WIDGETS QT5TEST',
defines = 'QT_WIDGETS_LIB',
source = 'foo.cpp testqt5.cpp',
moc = 'foo.h',
target = 'footest',
includes = '.',
# ut_str = './${SRC} -o test-report.xml,xunitxml', # put output to a xunit xml
)
bld.add_post_fun(print_test_results) # print output of test runner to user
def print_test_results(bld):
lst = getattr(bld, 'utest_results', [])
if not lst:
return
for result in lst:
print(result.out.decode('utf-8'))
print(result.err.decode('utf-8'))

View File

@ -1,2 +1,2 @@
prefix: @PREFIX@
prefix: %PREFIX%
bindir: @BINDIR@

View File

@ -3,3 +3,4 @@ Description: ПРИЛОЖЕНИЕ
Version: @VERSION@
Libs: -L${libdir} -lgnaa @LIBS@ @XPM_LIBS@ @LIBICONV@
Cflags: -I${includedir} @XPM_CFLAGS@
extra: @INTVAR@

View File

@ -4,6 +4,7 @@
top = '.'
out = 'bin'
import os, re
from waflib import Utils
def configure(conf):
@ -12,16 +13,17 @@ def configure(conf):
def build(bld):
# the test.pc.in is a special case which is always handled
bld(source='test.pc.in', VERSION='1.1', LIBS='moo', XPM_LIBS='-lxpm', LIBICONV='-liconv', XPM_CFLAGS='-O3')
bld(source='test.pc.in', VERSION='1.1', LIBS='moo', XPM_LIBS='-lxpm', LIBICONV='-liconv', XPM_CFLAGS='-O3', INTVAR=12)
tg = bld(
features = 'subst', # the feature 'subst' overrides the source/target processing
source = 'foo.in', # list of string or nodes
target = 'foo.txt', # list of strings or nodes
encoding = 'ascii', # file encoding for python3, default is ISO8859-1
encoding = 'ascii', # file encoding for python3, default is latin-1
install_path = '/tmp/uff/', # installation path, optional
chmod = Utils.O755, # installation mode, optional
PREFIX = bld.env.PREFIX, # variables to use in the substitution
re_m4 = re.compile('%%(\w+)%%', re.M), # custom substitution
BINDIR = bld.env.BINDIR)
# if you are using an external dict, here is to merge the key/values:
@ -31,8 +33,27 @@ def build(bld):
# if you want a file copy, pass "is_copy=True"
bld(features='subst', source='wscript', target='wscript', is_copy=True)
# same thing with a simple function
def fun(task, text):
return text
bld(features='subst', subst_fun=fun, source='wscript', target='wscript2')
def hlink(task):
try:
link = os.link
except AttributeError:
task.outputs[0].write(task.inputs[0].read('rb'), 'wb')
else:
for x, y in zip(task.inputs, task.outputs):
try:
os.remove(y.abspath())
except OSError:
pass
os.link(x.abspath(), y.abspath())
bld(features='subst', fun=hlink, source='wscript', target='wscript3')
# this one is just a reminder that simple files can be created (and a test too)
#bld(rule='echo "การไฟ่" > ${TGT}', target='foo.txt')
bld(rule='echo "การไฟ่" > ${TGT}', target='uni.txt')
# and this is an alternate syntax
#@bld.rule(source='wscript', target='wscript2')

View File

@ -1,6 +1,6 @@
\section{Conclusions}
Hopefully, the text will create a sensible PostScript or \acronym{PDF} document. That choice is
made in the wscript file in this directory. It perhas needs making into a command line option.
Also there should be the possiblity of making both PostScript and \acronym{PDF} on the same run
made in the wscript file in this directory. It perhaps needs making into a command line option.
Also there should be the possibility of making both PostScript and \acronym{PDF} on the same run
-- at least if generating \acronym{PDF} from \acronym{DVI}.

View File

@ -0,0 +1,41 @@
\documentclass[a4paper,12pt]{article}
\usepackage[toc,nonumberlist,numberedsection=autolabel]{glossaries}
\title{A Test Document Using Glossaries For Waf Construction}
\author{Joe Steeve}
\makeglossaries
\begin{document}
\maketitle
\tableofcontents
% next line is broken after using a newer texlive version
%\glossarystyle{altlist}
%% The glossary entries
\newglossaryentry{african}
{
name={african},
description={The West African Swallow, Hirundo domicella}
}
\newglossaryentry{european}
{
name={european},
description={The Barn or European Swallow, Hirundo rustica}
}
\section{The story}
\begin{description}
\item[Bridgekeeper:] What... is the air-speed velocity of an unladen
swallow?
\item[King Arthur:] What do you mean? An \gls{african} or \gls{european} swallow?
\end{description}
%% This is the Glossary section
\glsaddall
\printglossaries
\end{document}

View File

@ -11,12 +11,15 @@ def build(bld):
# now create your tex object for compiling the files
obj = bld(
features = 'tex',
type='latex', # default is pdflatex
type = 'latex', # default is pdflatex
source = 'document.ltx' # mandatory, the source
)
# optional parameters
obj.outs = 'ps' # we want a postscript output too - 'ps pdf' works too
obj.prompt = 1 # put 0 for the batchmode (conceals the debug output)
obj.deps = 'crossreferencing.ltx' # use this to give dependencies directly
obj.prompt = 1 # put 0 for the nonstopmode (conceals the debug output)
obj.deps = 'wscript crossreferencing.ltx' # use this to give dependencies directly
# or more simply, for a pdf..
bld(features='tex', source='document-glossaries.ltx')

View File

@ -1,6 +1,6 @@
#! /usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2005, 2010 (ita)
# Thomas Nagy, 2005-2015 (ita)
VERSION='1.0.0'
APPNAME='tex_test'
@ -12,6 +12,17 @@ def configure(conf):
conf.load('tex')
if not conf.env.PDFLATEX:
conf.fatal('could not find the program pdflatex')
if not conf.env.MAKEGLOSSARIES:
conf.fatal('could not find the program makeglossaries which is absolutely required for this example')
# and example of a complex configuration test
def build_latex_test(bld):
def write_tex(tsk):
tsk.outputs[0].write(r'''\documentclass[a4paper,12pt]{article} \usepackage{ucs} \begin{document} test \end{document} ''')
bld(rule=write_tex, target='main.tex')
bld(features='tex', type='pdflatex', source='main.tex', prompt=0)
conf.test(build_fun=build_latex_test, msg='Checking for UCS', okmsg='ok', errmsg='ucs.sty is missing install latex-extras')
def build(bld):
bld.recurse('src')

Some files were not shown because too many files have changed in this diff Show More