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

📄 version.jam

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 JAM
字号:
# Copyright 2002, 2003, 2004, 2006 Vladimir Prus# Copyright 2008 Jurko Gospodnetic# 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)import errors ;import numbers ;rule boost-build ( ){    return "V2 (Milestone 12)" ;}rule jam ( ){    local v = [ modules.peek : JAM_VERSION ] ;    return $(v:J=.) ;}rule print ( ){    ECHO "Boost.Build" [ boost-build ] ;    ECHO "Boost.Jam" [ jam ] ;}# Utility rule for testing whether all elements in a sequence are equal to 0.#local rule is-all-zeroes ( sequence * ){    local result = "true" ;    for local e in $(sequence)    {        if $(e) != "0"        {            result = "" ;        }    }    return $(result) ;}# Returns "true" if the first version is less than the second one.#rule version-less ( lhs + : rhs + ){    numbers.check $(lhs) ;    numbers.check $(rhs) ;    local done ;    local result ;    while ! $(done) && $(lhs) && $(rhs)    {        if [ numbers.less $(lhs[1]) $(rhs[1]) ]        {            done = "true" ;            result = "true" ;        }        else if [ numbers.less $(rhs[1]) $(lhs[1])  ]        {            done = "true" ;        }        else        {            lhs = $(lhs[2-]) ;            rhs = $(rhs[2-]) ;        }    }    if ( ! $(done) && ! $(lhs) && ! [ is-all-zeroes $(rhs) ] )    {        result = "true" ;    }        return $(result) ;}# Returns "true" if the current JAM version version is at least the given# version.#rule check-jam-version ( version + ){    local version-tag = $(version:J=.) ;    if ! $(version-tag)    {        errors.error Invalid version specifier: : $(version:E="(undefined)") ;    }    if ! $(.jam-version-check.$(version-tag))-is-not-empty    {        local jam-version = [ modules.peek : JAM_VERSION ] ;        if ! $(jam-version)        {            errors.error "Unable to deduce Boost Jam version. Your Boost Jam"                "installation is most likely terribly outdated." ;        }        .jam-version-check.$(version-tag) = "true" ;        if [ version-less [ modules.peek : JAM_VERSION ] : $(version) ]        {            .jam-version-check.$(version-tag) = "" ;        }    }    return $(.jam-version-check.$(version-tag)) ;}rule __test__ ( ){    import assert ;        local jam-version = [ modules.peek : JAM_VERSION ] ;    local future-version = $(jam-version) ;    future-version += "1" ;    assert.true  check-jam-version $(jam-version)    ;    assert.false check-jam-version $(future-version) ;    assert.true  version-less  0          :  1          ;    assert.false version-less  0          :  0          ;    assert.true  version-less  1          :  2          ;    assert.false version-less  1          :  1          ;    assert.false version-less  2          :  1          ;    assert.true  version-less  3 1 20     :  3 4 10     ;    assert.false version-less  3 1 10     :  3 1 10     ;    assert.false version-less  3 4 10     :  3 1 20     ;    assert.true  version-less  3 1 20 5 1 :  3 4 10     ;    assert.false version-less  3 1 10 5 1 :  3 1 10     ;    assert.false version-less  3 4 10 5 1 :  3 1 20     ;    assert.true  version-less  3 1 20     :  3 4 10 5 1 ;    assert.true  version-less  3 1 10     :  3 1 10 5 1 ;    assert.false version-less  3 4 10     :  3 1 20 5 1 ;    assert.false version-less  3 1 10     :  3 1 10 0 0 ;    assert.false version-less  3 1 10 0 0 :  3 1 10     ;    assert.false version-less  3 1 10 0   :  3 1 10 0 0 ;    assert.false version-less  3 1 10 0   : 03 1 10 0 0 ;    assert.false version-less 03 1 10 0   :  3 1 10 0 0 ;    # TODO: Add tests for invalid input data being sent to version-less.}

⌨️ 快捷键说明

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