# Check that <use> properties are ignored the traversing # target for staging. t.copy("l.cpp", "l2.cpp") t.copy("l.cpp", "l3.cpp") t.write("Jamfile", """ lib l2 : l2.cpp ; lib l3 : l3.cpp ; lib l : l.cpp : <use>l2 <dependency>l3 ; exe a : a.cpp l ; stage dist : a : <install-dependencies>on <install-type>EXE <install-type>LIB ; """) t.rm("dist") t.run_build_system() t.expect_addition("dist/l3.dll") t.expect_nothing("dist/l2.dll") # Check if <dependency> on 'stage' works. t.rm(".") t.write("Jamroot", """ stage a1 : a1.txt : <location>dist ; stage a2 : a2.txt : <location>dist <dependency>a1 ; """) t.write("a1.txt", "") t.write("a2.txt", "") t.run_build_system("a2") t.expect_addition(["dist/a1.txt", "dist/a2.txt"]) # Regression test: check if <location>. works t.rm(".") t.write("Jamroot", """
""") t.write("foo.cpp", """ void gee(); void aux() { gee(); } """) t.write("project-root.jam", """ """) t.write( "lib/x.cpp", """ void #if defined(_WIN32) __declspec(dllexport) #endif gee() {} """) t.write("lib/Jamfile", """ lib x : x.cpp ; """) t.write("lib/project-root.jam", """ """) t.run_build_system() t.expect_addition("bin/$toolset/debug/a.exe") t.expect_nothing("lib/bin/$toolset/release/x.obj") t.cleanup()
t.write("sub3/sub3.cpp", """ #ifdef _WIN32 __declspec(dllexport) #endif void sub3() {} """) # The 'clean' should not remove files under separate Jamroot. t.run_build_system() t.run_build_system("--clean") t.expect_removal("bin/$toolset/debug/a.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1_2.obj") t.expect_removal("sub2/bin/$toolset/debug/sub2.obj") t.expect_nothing("sub3/bin/$toolset/debug/sub3.obj") # The 'clean-all' removes everything it can reach. t.run_build_system() t.run_build_system("--clean") t.expect_removal("bin/$toolset/debug/a.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1_2.obj") t.expect_removal("sub2/bin/$toolset/debug/sub2.obj") t.expect_nothing("sub3/bin/$toolset/debug/sub3.obj") # The 'clean' together with project target removes # only under that probject t.run_build_system() t.run_build_system("sub1 --clean") t.expect_nothing("bin/$toolset/debug/a.obj")
t.write("foo.cpp", """ void gee(); void aux() { gee(); } """) t.write("project-root.jam", """ """) t.write("lib/x.cpp", """ void #if defined(_WIN32) __declspec(dllexport) #endif gee() {} """) t.write("lib/Jamfile", """ lib x : x.cpp ; """) t.write("lib/project-root.jam", """ """) t.run_build_system() t.expect_addition("bin/$toolset/debug/a.exe") t.expect_nothing("lib/bin/$toolset/release/x.obj") t.cleanup()
#ifdef _WIN32 __declspec(dllexport) #endif void sub3() {} """) # The 'clean' should not remove files under separate Jamroot. t.run_build_system() t.run_build_system("--clean") t.expect_removal("bin/$toolset/debug/a.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1_2.obj") t.expect_removal("sub2/bin/$toolset/debug/sub2.obj") t.expect_nothing("sub3/bin/$toolset/debug/sub3.obj") # The 'clean-all' removes everything it can reach. t.run_build_system() t.run_build_system("--clean") t.expect_removal("bin/$toolset/debug/a.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1.obj") t.expect_removal("sub1/bin/$toolset/debug/sub1_2.obj") t.expect_removal("sub2/bin/$toolset/debug/sub2.obj") t.expect_nothing("sub3/bin/$toolset/debug/sub3.obj") # The 'clean' together with project target removes # only under that probject t.run_build_system() t.run_build_system("sub1 --clean") t.expect_nothing("bin/$toolset/debug/a.obj")