⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tag.py

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 PY
字号:
#!/usr/bin/python# Copyright (C) Pedro Ferreira 2003. Permission to copy, use, modify, sell and# distribute this software is granted provided this copyright notice appears in# all copies. This software is provided "as is" without express or implied# warranty, and with no claim as to its suitability for any purpose.import BoostBuild################################################################################## test_folder_with_dot_in_name()# ------------------------------#################################################################################def test_folder_with_dot_in_name(t):    """ Regression test: the 'tag' feature did not work in directories that had    a dot in their name.    """    t.write("version-1.32.0/jamroot.jam", """project test : requirements <tag>@$(__name__).tag ;rule tag ( name : type ? : property-set ){   # Do nothing, just make sure the rule is invoked OK.   ECHO "The tag rule has been invoked." ;}exe a : a.cpp ;""")    t.write("version-1.32.0/a.cpp", "int main() {}\n")    t.run_build_system(subdir="version-1.32.0")    t.expect_addition("version-1.32.0/bin/$toolset/debug/a.exe")    t.expect_output_line("The tag rule has been invoked.")################################################################################## test_tag_property()# -------------------#################################################################################def test_tag_property(t):    """Basic tag property test.    """    t.write("jamroot.jam", """import virtual-target ;rule tag ( name : type ? : property-set ){    local tags ;    switch [ $(property-set).get <variant> ]    {        case debug   : tags += d ;        case release : tags += r ;    }    switch [ $(property-set).get <link> ]    {        case shared : tags += s ;        case static : tags += t ;    }    if $(tags)    {        return [ virtual-target.add-prefix-and-suffix $(name)_$(tags:J="")            : $(type) : $(property-set) ] ;    }}# Test both fully-qualified and local name of the ruleexe a : a.cpp : <tag>@$(__name__).tag ;lib b : a.cpp : <tag>@tag ;stage c : a ;""")    t.write("a.cpp", """int main() {}#ifdef _MSC_VER__declspec (dllexport) void x () {}#endif""")    file_list = \        BoostBuild.List("bin/$toolset/debug/a_ds.exe") + \        BoostBuild.List("bin/$toolset/debug/b_ds.dll") + \        BoostBuild.List("c/a_ds.exe") + \        BoostBuild.List("bin/$toolset/release/a_rs.exe") + \        BoostBuild.List("bin/$toolset/release/b_rs.dll") + \        BoostBuild.List("c/a_rs.exe") + \        BoostBuild.List("bin/$toolset/debug/link-static/a_dt.exe") + \        BoostBuild.List("bin/$toolset/debug/link-static/b_dt.lib") + \        BoostBuild.List("c/a_dt.exe") + \        BoostBuild.List("bin/$toolset/release/link-static/a_rt.exe") + \        BoostBuild.List("bin/$toolset/release/link-static/b_rt.lib") + \        BoostBuild.List("c/a_rt.exe")    variants = "debug release link=static,shared"    t.run_build_system(variants)    t.expect_addition(file_list)    t.run_build_system(variants + " clean")    t.expect_removal(file_list)################################################################################## main()# ------#################################################################################t = BoostBuild.Tester()test_tag_property(t)test_folder_with_dot_in_name(t)t.cleanup()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -