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

📄 option.jam

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 JAM
字号:
#  Copyright (c) 2005 Vladimir Prus.##  Use, modification and distribution is subject to the Boost Software#  License Version 1.0. (See accompanying file LICENSE_1_0.txt or#  http://www.boost.org/LICENSE_1_0.txt)import modules ;rule get ( name : default-value ? ){    local m = [ MATCH --$(name)=(.*) : [ modules.peek : ARGV ] ] ;    if $(m)    {        return $(m[1]) ;    }    else    {        return $(default-value) ;    }}# Check command-line args as soon as possible. For each option try to load# module named after option. Is that succeeds, invoke 'process' rule in the# module. The rule may return "true" to indicate that the regular build process# should not be attempted.## Options take the general form of: --<name>[=<value>] [<value>]#rule process ( ){    local ARGV = [ modules.peek : ARGV ] ;    local BOOST_BUILD_PATH = [ modules.peek : BOOST_BUILD_PATH ] ;    local dont-build ;    local args = $(ARGV) ;    while $(args)    {        local arg = [ MATCH ^--(.*) : $(args[1]) ] ;        while $(args[2-]) && ! $(arg)        {            args = $(args[2-]) ;            arg = [ MATCH ^--(.*) : $(args[1]) ] ;        }        args = $(args[2-]) ;        if $(arg)        {            local split = [ MATCH ^(([^-=]+)[^=]*)(=?)(.*)$ : $(arg) ] ;            local full-name = $(split[1]) ;            local prefix = $(split[2]) ;            local values ;            if $(split[3])            {                values = $(split[4]) ;            }            if $(args) && ! [ MATCH ^(--).* : $(args[1]) ]            {                values += $(args[1]) ;                args = $(args[2-]) ;            }            # Jook in options subdirectories of BOOST_BUILD_PATH for modules            # matching the full option name and then its prefix.            local plugin-dir = options ;            local option-files = [ GLOB $(plugin-dir:D=$(BOOST_BUILD_PATH)) :                $(full-name).jam $(prefix).jam ] ;            if $(option-files)            {                # Load the file into a module named for the option.                local f = $(option-files[1]) ;                local module-name = --$(f:D=:S=) ;                modules.load $(module-name) : $(f:D=) : $(f:D) ;                # If there is a process rule, call it with the full option name                # and its value (if any). If there was no "=" in the option, the                # value will be empty.                if process in [ RULENAMES $(module-name) ]                {                    dont-build += [ modules.call-in $(module-name) : process                        --$(full-name) : $(values) ] ;                }            }        }    }    return $(dont-build) ;}

⌨️ 快捷键说明

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