diff options
Diffstat (limited to 'jam-files/boost-build/options/help.jam')
-rw-r--r-- | jam-files/boost-build/options/help.jam | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/jam-files/boost-build/options/help.jam b/jam-files/boost-build/options/help.jam deleted file mode 100644 index b507e1ed..00000000 --- a/jam-files/boost-build/options/help.jam +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright 2003 Dave Abrahams -# Copyright 2003, 2006 Rene Rivera -# Copyright 2003, 2006 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) - -# This module is the plug-in handler for the --help and --help-.* -# command-line options -import modules ; -import assert ; -import doc : do-scan set-option set-output set-output-file print-help-usage print-help-top ; -import sequence ; -import set ; -import project ; -import print ; -import os ; -import version ; -import path ; - -# List of possible modules, but which really aren't. -# -.not-modules = - boost-build bootstrap site-config test user-config - -tools allyourbase boost-base features python stlport testing unit-tests ; - -# The help system options are parsed here and handed off to the doc -# module to translate into documentation requests and actions. The -# understood options are: -# -# --help-disable-<option> -# --help-doc-options -# --help-enable-<option> -# --help-internal -# --help-options -# --help-usage -# --help-output <type> -# --help-output-file <file> -# --help [<module-or-class>] -# -rule process ( - command # The option. - : values * # The values, starting after the "=". - ) -{ - assert.result --help : MATCH ^(--help).* : $(command) ; - local did-help = ; - switch $(command) - { - case --help-internal : - local path-to-modules = [ modules.peek : BOOST_BUILD_PATH ] ; - path-to-modules ?= . ; - local possible-modules = [ GLOB $(path-to-modules) : *\\.jam ] ; - local not-modules = [ GLOB $(path-to-modules) : *$(.not-modules)\\.jam ] ; - local modules-to-list = - [ sequence.insertion-sort - [ set.difference $(possible-modules:D=:S=) : $(not-modules:D=:S=) ] ] ; - local modules-to-scan ; - for local m in $(modules-to-list) - { - local module-files = [ GLOB $(path-to-modules) : $(m)\\.jam ] ; - modules-to-scan += $(module-files[1]) ; - } - do-scan $(modules-to-scan) : print-help-all ; - did-help = true ; - - case --help-enable-* : - local option = [ MATCH --help-enable-(.*) : $(command) ] ; option = $(option:L) ; - set-option $(option) : enabled ; - did-help = true ; - - case --help-disable-* : - local option = [ MATCH --help-disable-(.*) : $(command) ] ; option = $(option:L) ; - set-option $(option) ; - did-help = true ; - - case --help-output : - set-output $(values[1]) ; - did-help = true ; - - case --help-output-file : - set-output-file $(values[1]) ; - did-help = true ; - - case --help-doc-options : - local doc-module-spec = [ split-symbol doc ] ; - do-scan $(doc-module-spec[1]) : print-help-options ; - did-help = true ; - - case --help-options : - print-help-usage ; - did-help = true ; - - case --help : - local spec = $(values[1]) ; - if $(spec) - { - local spec-parts = [ split-symbol $(spec) ] ; - if $(spec-parts) - { - if $(spec-parts[2]) - { - do-scan $(spec-parts[1]) : print-help-classes $(spec-parts[2]) ; - do-scan $(spec-parts[1]) : print-help-rules $(spec-parts[2]) ; - do-scan $(spec-parts[1]) : print-help-variables $(spec-parts[2]) ; - } - else - { - do-scan $(spec-parts[1]) : print-help-module ; - } - } - else - { - EXIT "Unrecognized help option '"$(command)" "$(spec)"'." ; - } - } - else - { - version.print ; - ECHO ; - # First print documentation from the current Jamfile, if any. - # FIXME: Generally, this duplication of project.jam logic is bad. - local names = [ modules.peek project : JAMROOT ] - [ modules.peek project : JAMFILE ] ; - local project-file = [ path.glob . : $(names) ] ; - if ! $(project-file) - { - project-file = [ path.glob-in-parents . : $(names) ] ; - } - - for local p in $(project-file) - { - do-scan $(p) : print-help-project $(p) ; - } - - # Next any user-config help. - local user-path = [ os.home-directories ] [ os.environ BOOST_BUILD_PATH ] ; - local user-config = [ GLOB $(user-path) : user-config.jam ] ; - if $(user-config) - { - do-scan $(user-config[1]) : print-help-config user $(user-config[1]) ; - } - - # Next any site-config help. - local site-config = [ GLOB $(user-path) : site-config.jam ] ; - if $(site-config) - { - do-scan $(site-config[1]) : print-help-config site $(site-config[1]) ; - } - - # Then the overall help. - print-help-top ; - } - did-help = true ; - } - if $(did-help) - { - UPDATE all ; - NOCARE all ; - } - return $(did-help) ; -} - -# Split a reference to a symbol into module and symbol parts. -# -local rule split-symbol ( - symbol # The symbol to split. - ) -{ - local path-to-modules = [ modules.peek : BOOST_BUILD_PATH ] ; - path-to-modules ?= . ; - local module-name = $(symbol) ; - local symbol-name = ; - local result = ; - while ! $(result) - { - local module-path = [ GLOB $(path-to-modules) : $(module-name)\\.jam ] ; - if $(module-path) - { - # The 'module-name' in fact refers to module. Return the full - # module path and a symbol within it. If 'symbol' passed to this - # rule is already module, 'symbol-name' will be empty. Otherwise, - # it's initialized on the previous loop iteration. - # In case there are several modules by this name, - # use the first one. - result = $(module-path[1]) $(symbol-name) ; - } - else - { - if ! $(module-name:S) - { - result = - ; - } - else - { - local next-symbol-part = [ MATCH ^.(.*) : $(module-name:S) ] ; - if $(symbol-name) - { - symbol-name = $(next-symbol-part).$(symbol-name) ; - } - else - { - symbol-name = $(next-symbol-part) ; - } - module-name = $(module-name:B) ; - } - } - } - if $(result) != - - { - return $(result) ; - } -} |