📄 m1-02.py
字号:
#!/usr/bin/python# Copyright 2002 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) # Tests that 'make' accepts targets from other directories and that build# requests for those targets can be overriden.import BoostBuildt = BoostBuild.Tester()t.set_tree("test1")t.run_build_system("-sTOOLSET=yfc")t.expect_addition("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj")t.expect_addition("auxillary/bin/b.obj/yfc/debug/runtime-link-dynamic/optimization-space/b.obj")t.expect_addition("bin/a/yfc/debug/runtime-link-dynamic/a")t.expect_nothing_more()t.fail(t.read("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj") !=\"""<optimization>off <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debuga.cpp""")t.fail(t.read("auxillary/bin/b.obj/yfc/debug/runtime-link-dynamic/b.obj") !=\"""<optimization>space <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debugb.cpp""")t.fail(t.read("bin/a/yfc/debug/runtime-link-dynamic/a") !=\"""<optimization>off <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debug<optimization>off <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debuga.cpp<optimization>space <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debugb.cpp""")# Check that we have vanilla target names available in subdirs.t.touch("auxillary/b.cpp")t.run_build_system("-sTOOLSET b.obj", subdir="auxillary")t.expect_touch("auxillary/bin/b.obj/yfc/debug/runtime-link-dynamic/optimization-space/b.obj")t.expect_no_modification("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj")t.expect_no_modification("bin/a/yfc/debug/runtime-link-dynamic/a")# Check that we can not request link-incompatible property for source target.t.write('jamfile.jam', t.read('jamfile2.jam'))stdout="""Error: subvariant of target ./a with properties <optimization>off <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debugrequests link-incompatible property <rtti>offfor source @auxillary/b.obj"""t.run_build_system("-sTOOLSET=yfc", stdout=stdout)# Check that if we request link-compatible property then requirement for the# source target will override it, with a warning. This is similar to the way# build requests are satisfied (see the first test).## CONSIDER: should be print the main target which requests this one (and# modifies requirements)?t.write('jamfile.jam', t.read('jamfile3.jam'))t.write('auxillary/jamfile.jam', t.read('auxillary/jamfile3.jam'))stdout="""Warning: cannot exactly satisfy request for auxillary/b.obj with properties <optimization>space <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debugUsing <optimization>speed <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debuginstead."""t.run_build_system("-sTOOLSET=yfc", stdout=stdout)# Check for link-incompatible properties.t.write('jamfile.jam', t.read('jamfile4.jam'))t.write('auxillary/jamfile.jam', t.read('auxillary/jamfile4.jam'))stdout="""Warning: cannot satisfy request for auxillary/b.obj with properties <optimization>space <rtti>on <runtime-link>dynamic <toolset>yfc <variant>debugNothing will be built."""t.run_build_system("-sTOOLSET=yfc", stdout=stdout)t.pass_test()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -