34 lines
		
	
	
		
			893 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			893 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | #!/usr/bin/python | ||
|  | 
 | ||
|  | # Copyright 2003 Vladimir Prus | ||
|  | # Distributed under the Boost Software License, Version 1.0. | ||
|  | # (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.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(use_test_config=False) | ||
|  | 
 | ||
|  | 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() |