ee613a6a28
* New feature <relevant> which is automatically deduced in most cases. * Features which are not relevant do not affect target paths and do not prevent merging of virtual targets. * generators.jam: generator.run always returns usage-requirements to allow usage-requirements in non-top-level generators. This is necessary because we're using usage-requirements to track relevance from flags. * New rule toolset.uses-features to specify features that the rule checks manually, instead of using toolset.flags. In the future, we should consider restricting the properties actually passed, to detect errors. * Adjust tests to handle the new paths (verified by inspection). * Add temporary option --ignore-relevance to consider all features relevant to aid migration. * New rule property.evaluate-conditional-relevance which helps tracking relevance in <conditional>. * Widely scattered changes to use the new interfaces.
52 lines
1.2 KiB
Python
Executable File
52 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
# Copyright 2012 Steven Watanabe
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
# Test that paths containing spaces are handled correctly by actions.
|
|
|
|
import BoostBuild
|
|
import os
|
|
|
|
t = BoostBuild.Tester(use_test_config=False)
|
|
|
|
t.write("has space/jamroot.jam", """\
|
|
import testing ;
|
|
unit-test test : test.cpp ;
|
|
actions write-file
|
|
{
|
|
@(STDOUT:E=okay) >"$(<)"
|
|
}
|
|
make test.txt : : @write-file ;
|
|
""")
|
|
t.write("has space/test.cpp", "int main() {}\n")
|
|
|
|
tmpdir = t.workpath("has space")
|
|
try:
|
|
oldtmp = os.environ["TMP"]
|
|
except:
|
|
oldtmp = None
|
|
try:
|
|
oldtmpdir = os.environ["TMPDIR"]
|
|
except:
|
|
oldtmpdir = None
|
|
os.environ["TMP"] = tmpdir; # Windows
|
|
os.environ["TMPDIR"] = tmpdir; # *nix
|
|
|
|
try:
|
|
t.run_build_system(["has space"])
|
|
t.expect_addition("has space/bin/test.txt")
|
|
t.expect_addition("has space/bin/$toolset/debug*/test.passed")
|
|
finally:
|
|
if oldtmp is not None:
|
|
os.environ["TMP"] = oldtmp
|
|
else:
|
|
del os.environ["TMP"]
|
|
if oldtmpdir is not None:
|
|
os.environ["TMPDIR"] = oldtmpdir
|
|
else:
|
|
del os.environ["TMPDIR"]
|
|
|
|
t.cleanup()
|