| #!/usr/bin/python |
| |
| # Copyright (C) Vladimir Prus 2007. |
| # 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) |
| |
| # Tests that a free feature specified on the command line applies to all targets |
| # ever built. |
| |
| import BoostBuild |
| |
| t = BoostBuild.Tester() |
| |
| t.write("jamroot.jam", """ |
| exe hello : hello.cpp foo ; |
| lib foo : foo.cpp ; |
| """) |
| |
| t.write("hello.cpp", """ |
| extern void foo(); |
| #ifdef FOO |
| int main() { foo(); } |
| #endif |
| """) |
| |
| t.write("foo.cpp", """ |
| #ifdef FOO |
| #ifdef _WIN32 |
| __declspec(dllexport) |
| #endif |
| void foo() {} |
| #endif |
| """) |
| |
| # If FOO is not defined when compiling the 'foo' target, we will get a link |
| # error at this point. |
| t.run_build_system("hello define=FOO") |
| |
| t.expect_addition("bin/$toolset/debug/hello.exe") |
| |
| t.cleanup() |