Commit Graph

1404 Commits

Author SHA1 Message Date
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 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
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
Haakon Sporsheim f9e78b0225 c_config: Add xtensa as a known CPU. 2016-01-21 22:53:08 +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 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 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 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 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
Harald Klimach c097fcc08a Replaced spaces by tabs. 2015-12-23 15:38:48 +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
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
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 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 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
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 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