diff options
Diffstat (limited to 'tools/build/test/free_features_request.py')
-rw-r--r-- | tools/build/test/free_features_request.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tools/build/test/free_features_request.py b/tools/build/test/free_features_request.py new file mode 100644 index 000000000..e7949d145 --- /dev/null +++ b/tools/build/test/free_features_request.py @@ -0,0 +1,42 @@ +#!/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(use_test_config=False) + +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() |