diff options
Diffstat (limited to 'tools/build/v2/test/indirect_conditional.py')
-rw-r--r-- | tools/build/v2/test/indirect_conditional.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/build/v2/test/indirect_conditional.py b/tools/build/v2/test/indirect_conditional.py new file mode 100644 index 0000000000..6e9c181417 --- /dev/null +++ b/tools/build/v2/test/indirect_conditional.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + +# Copyright (C) Vladimir Prus 2006. +# Distributed under the Boost Software License, Version 1.0. (See +# accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +import BoostBuild + +t = BoostBuild.Tester() + +t.write("jamroot.jam", """ +exe a1 : a1.cpp : <conditional>@a1-rule ; + +rule a1-rule ( properties * ) +{ + if <variant>debug in $(properties) + { + return <define>OK ; + } +} + +exe a2 : a2.cpp : <conditional>@$(__name__).a2-rule + <variant>debug:<optimization>speed ; + +rule a2-rule ( properties * ) +{ + if <optimization>speed in $(properties) + { + return <define>OK ; + } +} + +exe a3 : a3.cpp : <conditional>@$(__name__).a3-rule-1 + <conditional>@$(__name__).a3-rule-2 ; + +rule a3-rule-1 ( properties * ) +{ + if <optimization>speed in $(properties) + { + return <define>OK ; + } +} + +rule a3-rule-2 ( properties * ) +{ + if <variant>debug in $(properties) + { + return <optimization>speed ; + } +} +""") + +t.write("a1.cpp", """ +#ifdef OK +int main() {} +#endif +""") + +t.write("a2.cpp", """ +#ifdef OK +int main() {} +#endif +""") + +t.write("a3.cpp", """ +#ifdef OK +int main() {} +#endif +""") + +t.run_build_system() + +t.expect_addition("bin/$toolset/debug/a1.exe") +t.expect_addition("bin/$toolset/debug/optimization-speed/a2.exe") +t.expect_addition("bin/$toolset/debug/optimization-speed/a3.exe") + +t.cleanup() |