| #!/usr/bin/python |
| |
| # Copyright 2003 Vladimir Prus |
| # Distributed under the Boost Software License, Version 1.0. |
| # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| |
| # Test that building with optimization brings NDEBUG define, and, more |
| # importantly, that dependency targets are built with NDEBUG as well, even if |
| # they are not directly requested. |
| |
| import BoostBuild |
| |
| t = BoostBuild.Tester() |
| |
| t.write("jamroot.jam", """ |
| exe hello : hello.cpp lib//lib1 ; |
| """) |
| |
| t.write("hello.cpp", """ |
| #ifdef NDEBUG |
| void foo(); |
| int main() { foo(); } |
| #endif |
| """) |
| |
| t.write("lib/jamfile.jam", """ |
| lib lib1 : lib1.cpp ; |
| """) |
| t.write("lib/lib1.cpp", """ |
| #ifdef NDEBUG |
| void foo() {} |
| #endif |
| """) |
| |
| # 'release' builds should get the NDEBUG define. We use static linking to avoid |
| # messing with imports/exports on windows. |
| t.run_build_system("link=static release") |
| |
| t.cleanup() |