From fc0ac7a147656e1efa35b89f0fd591350b151f66 Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Sun, 7 Apr 2013 01:29:13 +0000 Subject: [PATCH] Add missing file [SVN r83790] --- src/build/config-cache.jam | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/build/config-cache.jam diff --git a/src/build/config-cache.jam b/src/build/config-cache.jam new file mode 100644 index 000000000..ff05fb6f8 --- /dev/null +++ b/src/build/config-cache.jam @@ -0,0 +1,63 @@ +# Copyright 2012 Steven Watanabe +# 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 modules ; +import errors ; +import regex ; +import path ; +import project ; + +rule get ( name ) +{ + return $(.vars.$(name)) ; +} + +rule set ( name : value * ) +{ + .all-vars += $(name) ; + .vars.$(name) = $(value) ; +} + +rule save ( ) +{ + if $(.cache-file) + { + local target = $(.cache-file) ; + local contents = "# Automatically generated by Boost.Build.\n# Do not edit.\n\nmodule config-cache {\n" ; + for local var in $(.all-vars) + { + local transformed ; + for local value in $(.vars.$(var)) + { + transformed += [ regex.escape $(value) : \"\\ : \\ ] ; + } + local quoted = \"$(transformed)\" ; + contents += " set \"$(var)\" : $(quoted:J= ) ;\n" ; + } + contents += "}\n" ; + FILE_CONTENTS on $(target) = $(contents) ; + ALWAYS $(target) ; + config-cache.write $(target) ; + UPDATE_NOW $(target) : [ modules.peek configure : .log-fd ] : ignore-minus-n ; + } +} + +actions write +{ + @($(STDOUT):E=$(FILE_CONTENTS:J=)) > "$(<)" +} + +rule load ( cache-file ) +{ + if $(.cache-file) + { + errors.error duplicate load of cache file ; + } + cache-file = $(cache-file) ; + if [ path.exists $(cache-file) ] && ! ( --reconfigure in [ modules.peek : ARGV ] ) + { + include $(cache-file) ; + } + .cache-file = $(cache-file) ; +}