| @@ -32,7 +32,7 @@ POSSIBILITY OF SUCH DAMAGE. | |||||
| import os, sys, inspect | import os, sys, inspect | ||||
| VERSION="2.0.11" | |||||
| VERSION="2.0.12" | |||||
| REVISION="x" | REVISION="x" | ||||
| GIT="x" | GIT="x" | ||||
| INSTALL="x" | INSTALL="x" | ||||
| @@ -1054,6 +1054,8 @@ class inst(Task.Task): | |||||
| def get_install_path(self, destdir=True): | def get_install_path(self, destdir=True): | ||||
| """ | """ | ||||
| Returns the destination path where files will be installed, pre-pending `destdir`. | Returns the destination path where files will be installed, pre-pending `destdir`. | ||||
| Relative paths will be interpreted relative to `PREFIX` if no `destdir` is given. | |||||
| :rtype: string | :rtype: string | ||||
| """ | """ | ||||
| @@ -1061,6 +1063,8 @@ class inst(Task.Task): | |||||
| dest = self.install_to.abspath() | dest = self.install_to.abspath() | ||||
| else: | else: | ||||
| dest = Utils.subst_vars(self.install_to, self.env) | dest = Utils.subst_vars(self.install_to, self.env) | ||||
| if not os.path.isabs(dest): | |||||
| dest = os.path.join(self.env.PREFIX, dest) | |||||
| if destdir and Options.options.destdir: | if destdir and Options.options.destdir: | ||||
| dest = os.path.join(Options.options.destdir, os.path.splitdrive(dest)[1].lstrip(os.sep)) | dest = os.path.join(Options.options.destdir, os.path.splitdrive(dest)[1].lstrip(os.sep)) | ||||
| return dest | return dest | ||||
| @@ -11,13 +11,13 @@ from waflib import Utils, Errors, Logs | |||||
| import waflib.Node | import waflib.Node | ||||
| # the following 3 constants are updated on each new release (do not touch) | # the following 3 constants are updated on each new release (do not touch) | ||||
| HEXVERSION=0x2000b00 | |||||
| HEXVERSION=0x2000c00 | |||||
| """Constant updated on new releases""" | """Constant updated on new releases""" | ||||
| WAFVERSION="2.0.11" | |||||
| WAFVERSION="2.0.12" | |||||
| """Constant updated on new releases""" | """Constant updated on new releases""" | ||||
| WAFREVISION="a97f6fb0941091b4966b625f15ec32fa783a8bec" | |||||
| WAFREVISION="54841218840ffa34fddf834680a5a17db69caa12" | |||||
| """Git revision when the waf version is updated""" | """Git revision when the waf version is updated""" | ||||
| ABI = 20 | ABI = 20 | ||||
| @@ -50,6 +50,9 @@ def f(tsk): | |||||
| bld = gen.bld | bld = gen.bld | ||||
| cwdx = tsk.get_cwd() | cwdx = tsk.get_cwd() | ||||
| p = env.get_flat | p = env.get_flat | ||||
| def to_list(xx): | |||||
| if isinstance(xx, str): return [xx] | |||||
| return xx | |||||
| tsk.last_cmd = cmd = \'\'\' %s \'\'\' % s | tsk.last_cmd = cmd = \'\'\' %s \'\'\' % s | ||||
| return tsk.exec_command(cmd, cwd=cwdx, env=env.env or None) | return tsk.exec_command(cmd, cwd=cwdx, env=env.env or None) | ||||
| ''' | ''' | ||||
| @@ -77,7 +80,8 @@ def f(tsk): | |||||
| COMPILE_TEMPLATE_SIG_VARS = ''' | COMPILE_TEMPLATE_SIG_VARS = ''' | ||||
| def f(tsk): | def f(tsk): | ||||
| super(tsk.__class__, tsk).sig_vars() | |||||
| sig = tsk.generator.bld.hash_env_vars(tsk.env, tsk.vars) | |||||
| tsk.m.update(sig) | |||||
| env = tsk.env | env = tsk.env | ||||
| gen = tsk.generator | gen = tsk.generator | ||||
| bld = gen.bld | bld = gen.bld | ||||
| @@ -776,6 +780,8 @@ class Task(evil): | |||||
| Used by :py:meth:`waflib.Task.Task.signature`; it hashes :py:attr:`waflib.Task.Task.env` variables/values | Used by :py:meth:`waflib.Task.Task.signature`; it hashes :py:attr:`waflib.Task.Task.env` variables/values | ||||
| When overriding this method, and if scriptlet expressions are used, make sure to follow | When overriding this method, and if scriptlet expressions are used, make sure to follow | ||||
| the code in :py:meth:`waflib.Task.Task.compile_sig_vars` to enable dependencies on scriptlet results. | the code in :py:meth:`waflib.Task.Task.compile_sig_vars` to enable dependencies on scriptlet results. | ||||
| This method may be replaced on subclasses by the metaclass to force dependencies on scriptlet code. | |||||
| """ | """ | ||||
| sig = self.generator.bld.hash_env_vars(self.env, self.vars) | sig = self.generator.bld.hash_env_vars(self.env, self.vars) | ||||
| self.m.update(sig) | self.m.update(sig) | ||||
| @@ -1193,7 +1199,7 @@ def compile_fun_noshell(line): | |||||
| # plain code such as ${tsk.inputs[0].abspath()} | # plain code such as ${tsk.inputs[0].abspath()} | ||||
| call = '%s%s' % (var, code) | call = '%s%s' % (var, code) | ||||
| add_dvar(call) | add_dvar(call) | ||||
| app('gen.to_list(%s)' % call) | |||||
| app('to_list(%s)' % call) | |||||
| else: | else: | ||||
| # a plain variable such as # a plain variable like ${AR} | # a plain variable such as # a plain variable like ${AR} | ||||
| app('to_list(env[%r])' % var) | app('to_list(env[%r])' % var) | ||||
| @@ -205,7 +205,7 @@ class utest(Task.Task): | |||||
| return self.exec_command(self.ut_exec) | return self.exec_command(self.ut_exec) | ||||
| def exec_command(self, cmd, **kw): | def exec_command(self, cmd, **kw): | ||||
| Logs.debug('runner: %r', cmd) | |||||
| self.generator.bld.log_command(cmd, kw) | |||||
| if getattr(Options.options, 'dump_test_scripts', False): | if getattr(Options.options, 'dump_test_scripts', False): | ||||
| script_code = SCRIPT_TEMPLATE % { | script_code = SCRIPT_TEMPLATE % { | ||||
| 'python': sys.executable, | 'python': sys.executable, | ||||