diff --git a/src/tools/lzma.jam b/src/tools/lzma.jam new file mode 100644 index 000000000..a98ba80c0 --- /dev/null +++ b/src/tools/lzma.jam @@ -0,0 +1,105 @@ +# Copyright (c) 2010 Vladimir Prus. +# Copyright (c) 2013 Steven Watanabe +# +# 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) + +# Supports the lzma library +# +# After 'using lzma', the following targets are available: +# +# /lzma//lzam -- The lzma library + +import project ; +import ac ; +import errors ; +import "class" : new ; +import targets ; +import path ; +import modules ; +import errors ; +import indirect ; +import property ; +import property-set ; + +header = lzma.h ; +names = lzma ; + +library-id = 0 ; + +if --debug-configuration in [ modules.peek : ARGV ] +{ + .debug = true ; +} + +rule init ( + version ? + # (currently ignored) + + : options * + # A list of the options to use + + : requirements * + # The requirements for the target + + : is-default ? + # Default configurations are only used when + # not yet configured. + ) +{ + local caller = [ project.current ] ; + + if ! $(.initialized) + { + .initialized = true ; + + project.initialize $(__name__) ; + .project = [ project.current ] ; + project lzma ; + } + + local library-path = [ property.select : $(options) ] ; + library-path = $(library-path:G=) ; + local include-path = [ property.select : $(options) ] ; + include-path = $(include-path:G=) ; + local library-name = [ property.select : $(options) ] ; + library-name = $(library-name:G=) ; + + condition = [ property-set.create $(requirements) ] ; + condition = [ property-set.create [ $(condition).base ] ] ; + + if $(.configured.$(condition)) + { + if $(is-default) + { + if $(.debug) + { + ECHO "notice: [lzma] lzma is already configured" ; + } + } + else + { + errors.user-error "lzma is already configured" ; + } + return ; + } + else + { + if $(.debug) + { + ECHO "notice: [lzma] Using pre-installed library" ; + if $(condition) + { + ECHO "notice: [lzma] Condition" [ $(condition).raw ] ; + } + } + + local mt = [ new ac-library lzma : $(.project) : $(condition) : + $(include-path) : $(library-path) : $(library-name) ] ; + $(mt).set-header $(header) ; + $(mt).set-default-names $(names) ; + targets.main-target-alternative $(mt) ; + } + .configured.$(condition) = true ; +}