summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/indirect_conditional.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/test/indirect_conditional.py')
-rw-r--r--tools/build/v2/test/indirect_conditional.py78
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()