summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/lib_source_property.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/test/lib_source_property.py')
-rw-r--r--tools/build/v2/test/lib_source_property.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/build/v2/test/lib_source_property.py b/tools/build/v2/test/lib_source_property.py
new file mode 100644
index 0000000000..2290c1fbf2
--- /dev/null
+++ b/tools/build/v2/test/lib_source_property.py
@@ -0,0 +1,45 @@
+#!/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)
+
+# Regression test: if a library had no explicit sources, but only <source>
+# properties, it was built as if it were a searched library, and the specified
+# sources were not compiled.
+
+import BoostBuild
+
+t = BoostBuild.Tester()
+
+t.write("jamroot.jam", """
+lib a : : <source>a.cpp ;
+""")
+
+t.write("a.cpp", """
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+void foo() {}
+""")
+
+t.run_build_system()
+t.expect_addition("bin/$toolset/debug/a.obj")
+
+t.rm("bin")
+
+
+# Now try with <conditional>.
+t.write("jamroot.jam", """
+rule test ( properties * )
+{
+ return <source>a.cpp ;
+}
+lib a : : <conditional>@test ;
+""")
+
+t.run_build_system()
+t.expect_addition("bin/$toolset/debug/a.obj")
+
+t.cleanup()