#!/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()