mirror of
https://github.com/boostorg/build.git
synced 2026-02-11 23:52:20 +00:00
43 lines
826 B
Python
43 lines
826 B
Python
#!/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()
|