diff options
Diffstat (limited to '')
-rw-r--r-- | src/boost/tools/build/test/default_features.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/default_features.py b/src/boost/tools/build/test/default_features.py new file mode 100644 index 000000000..7d3d4d22f --- /dev/null +++ b/src/boost/tools/build/test/default_features.py @@ -0,0 +1,50 @@ +#!/usr/bin/python + +# Copyright 2003 Vladimir Prus +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) + +# Test that features with default values are always present in build properties +# of any target. + +import BoostBuild + +t = BoostBuild.Tester(use_test_config=False) + +# Declare *non-propagated* feature foo. +t.write("jamroot.jam", """ +import feature : feature ; +feature foo : on off ; +""") + +# Note that '<foo>on' will not be propagated to 'd/l'. +t.write("jamfile.jam", """ +exe hello : hello.cpp d//l ; +""") + +t.write("hello.cpp", """ +#ifdef _WIN32 +__declspec(dllimport) +#endif +void foo(); +int main() { foo(); } +""") + +t.write("d/jamfile.jam", """ +lib l : l.cpp : <foo>on:<define>FOO ; +""") + +t.write("d/l.cpp", """ +#ifdef _WIN32 +__declspec(dllexport) +#endif +#ifdef FOO +void foo() {} +#endif +""") + +t.run_build_system() + +t.expect_addition("bin/$toolset/debug*/hello.exe") + +t.cleanup() |