mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| 
 | |
| # Copyright 2003 Dave Abrahams
 | |
| # Copyright 2006 Rene Rivera
 | |
| # Copyright 2003 Vladimir Prus
 | |
| # 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)
 | |
| 
 | |
| # Demonstration that module variables have the correct effect in actions.
 | |
| 
 | |
| import BoostBuild
 | |
| import os
 | |
| import re
 | |
| 
 | |
| t = BoostBuild.Tester(["-d+1"], pass_toolset=0)
 | |
| 
 | |
| t.write("boost-build.jam", "boost-build . ;")
 | |
| t.write("bootstrap.jam", """\
 | |
| # Top-level rule causing a target to be built by invoking the specified action.
 | |
| rule make ( target : sources * : act )
 | |
| {
 | |
|     DEPENDS all : $(target) ;
 | |
|     DEPENDS $(target) : $(sources) ;
 | |
|     $(act) $(target) : $(sources) ;
 | |
| }
 | |
| 
 | |
| X1 = X1-global ;
 | |
| X2 = X2-global ;
 | |
| X3 = X3-global ;
 | |
| 
 | |
| module A
 | |
| {
 | |
|     X1 = X1-A ;
 | |
| 
 | |
|     rule act ( target )
 | |
|     {
 | |
|         NOTFILE $(target) ;
 | |
|         ALWAYS $(target) ;
 | |
|     }
 | |
| 
 | |
|     actions act { echo A.act $(<): $(X1) $(X2) $(X3) }
 | |
| 
 | |
|     make t1 : : A.act ;
 | |
|     make t2 : : A.act ;
 | |
|     make t3 : : A.act ;
 | |
| }
 | |
| 
 | |
| module B
 | |
| {
 | |
|     X2 = X2-B ;
 | |
| 
 | |
|     actions act { echo B.act $(<): $(X1) $(X2) $(X3) }
 | |
| 
 | |
|     make t1 : : B.act ;
 | |
|     make t2 : : B.act ;
 | |
|     make t3 : : B.act ;
 | |
| }
 | |
| 
 | |
| actions act { echo act $(<): $(X1) $(X2) $(X3) }
 | |
| 
 | |
| make t1 : : act ;
 | |
| make t2 : : act ;
 | |
| make t3 : : act ;
 | |
| 
 | |
| X1 on t1 = X1-t1 ;
 | |
| X2 on t2 = X2-t2 ;
 | |
| X3 on t3 = X3-t3 ;
 | |
| 
 | |
| DEPENDS all : t1 t2 t3 ;
 | |
| """)
 | |
| 
 | |
| expected_lines = [
 | |
|     "...found 4 targets...",
 | |
|     "...updating 3 targets...",
 | |
|     "A.act t1",
 | |
|     "A.act t1: X1-t1   ",
 | |
|     "B.act t1",
 | |
|     "B.act t1: X1-t1 X2-B  ",
 | |
|     "act t1",
 | |
|     "act t1: X1-t1 X2-global X3-global ",
 | |
|     "A.act t2",
 | |
|     "A.act t2: X1-A X2-t2  ",
 | |
|     "B.act t2",
 | |
|     "B.act t2:  X2-t2  ",
 | |
|     "act t2",
 | |
|     "act t2: X1-global X2-t2 X3-global ",
 | |
|     "A.act t3",
 | |
|     "A.act t3: X1-A  X3-t3 ",
 | |
|     "B.act t3",
 | |
|     "B.act t3:  X2-B X3-t3 ",
 | |
|     "act t3",
 | |
|     "act t3: X1-global X2-global X3-t3 ",
 | |
|     "...updated 3 targets...",
 | |
|     ""]
 | |
| 
 | |
| # Accommodate for the fact that on Unixes, a call to 'echo 1   2     3  '
 | |
| # produces '1 2 3' (note the spacing).
 | |
| if os.name != 'nt':
 | |
|     expected_lines = [re.sub("  +", " ", x.rstrip()) for x in expected_lines]
 | |
| 
 | |
| t.run_build_system()
 | |
| t.expect_output_lines(expected_lines)
 | |
| t.expect_nothing_more()
 | |
| t.cleanup()
 |