mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	
		
			
	
	
		
			238 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			238 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | #!/usr/bin/python | ||
|  | # | ||
|  | # Copyright (c) 2008 Steven Watanabe | ||
|  | # | ||
|  | # 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) | ||
|  | 
 | ||
|  | import BoostBuild | ||
|  | 
 | ||
|  | tester = BoostBuild.Tester(use_test_config=False) | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Test without giving the project an explicit id. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | lib test : test.cpp ; | ||
|  | project : requirements <library>test ; | ||
|  | build-project a ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("test.cpp", """
 | ||
|  | #ifdef _WIN32 | ||
|  |     __declspec(dllexport) | ||
|  | #endif | ||
|  | void foo() {} | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("a/test1.cpp", """
 | ||
|  | int main() {} | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("a/jamfile.jam", """
 | ||
|  | exe test1 : test1.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | 
 | ||
|  | tester.expect_addition("bin/$toolset/debug/test.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test1.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Run the same test from the "a" directory. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.run_build_system(subdir="a") | ||
|  | 
 | ||
|  | tester.expect_addition("bin/$toolset/debug/test.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test1.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # This time, do give the project an id. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | lib test : test.cpp ; | ||
|  | project test_project : requirements <library>test ; | ||
|  | build-project a ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | 
 | ||
|  | tester.expect_addition("bin/$toolset/debug/test.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test1.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Now, give the project an id in its attributes. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | lib test : test.cpp ; | ||
|  | project : id test_project : requirements <library>test ; | ||
|  | build-project a ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | 
 | ||
|  | tester.expect_addition("bin/$toolset/debug/test.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test1.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Give the project an id in both ways at once. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | lib test : test.cpp ; | ||
|  | project test_project1 : id test_project : requirements <library>test ; | ||
|  | build-project a ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | 
 | ||
|  | tester.expect_addition("bin/$toolset/debug/test.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test1.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Test an absolute path in native format. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | import path ; | ||
|  | path-constant here : . ; | ||
|  | current-location = [ path.native [ path.root [ path.make $(here) ] [ path.pwd ] | ||
|  |     ] ] ; | ||
|  | project test : requirements <source>$(current-location)/a/test1.cpp ; | ||
|  | exe test : test.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | tester.expect_addition("bin/$toolset/debug/test.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Test an absolute path in canonical format. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | import path ; | ||
|  | path-constant here : . ; | ||
|  | current-location = [ path.root [ path.make $(here) ] [ path.pwd ] ] ; | ||
|  | project test : requirements <source>$(current-location)/a/test1.cpp ; | ||
|  | exe test : test.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | tester.expect_addition("bin/$toolset/debug/test.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a/bin") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Test dependency properties (e.g. <source>) whose targets are specified using a | ||
|  | # relative path. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | # Use jamroot.jam rather than jamfile.jam to avoid inheriting the <source> from | ||
|  | # the parent as that would would make test3 a source of itself. | ||
|  | tester.write("b/jamroot.jam", """
 | ||
|  | obj test3 : test3.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("b/test3.cpp", """
 | ||
|  | void bar() {} | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("jamroot.jam", """
 | ||
|  | project test : requirements <source>b//test3 ; | ||
|  | build-project a ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("a/jamfile.jam", """
 | ||
|  | exe test : test1.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("a/test1.cpp", """
 | ||
|  | void bar(); | ||
|  | int main() { bar(); } | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system() | ||
|  | tester.expect_addition("b/bin/$toolset/debug/test3.obj") | ||
|  | tester.expect_addition("a/bin/$toolset/debug/test.exe") | ||
|  | 
 | ||
|  | tester.rm("bin") | ||
|  | tester.rm("a") | ||
|  | tester.rm("jamroot.jam") | ||
|  | tester.rm("test.cpp") | ||
|  | 
 | ||
|  | 
 | ||
|  | ################################################################################ | ||
|  | # | ||
|  | # Test that source-location is respected. | ||
|  | # | ||
|  | ################################################################################ | ||
|  | 
 | ||
|  | tester.write("build/jamroot.jam", """
 | ||
|  | project : requirements <source>test.cpp : source-location ../src ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("src/test.cpp", """
 | ||
|  | int main() {} | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("build/a/jamfile.jam", """
 | ||
|  | project : source-location ../../a_src ; | ||
|  | exe test : test1.cpp ; | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.write("a_src/test1.cpp", """
 | ||
|  | """)
 | ||
|  | 
 | ||
|  | tester.run_build_system(subdir="build/a") | ||
|  | tester.expect_addition("build/a/bin/$toolset/debug/test.exe") | ||
|  | 
 | ||
|  | tester.cleanup() |