diff --git a/src/build/toolset.jam b/src/build/toolset.jam index 6e5b98049..b5defd5f4 100644 --- a/src/build/toolset.jam +++ b/src/build/toolset.jam @@ -559,7 +559,7 @@ rule add-requirements ( requirements * ) { if ! $(.ignore-requirements) { - requirements = [ property.translate-indirect $(specification) : [ CALLER_MODULE ] ] ; + requirements = [ property.translate-indirect $(requirements) : [ CALLER_MODULE ] ] ; requirements = [ property.expand-subfeatures-in-conditions $(requirements) ] ; requirements = [ property.make $(requirements) ] ; .requirements = [ $(.requirements).add-raw $(requirements) ] ; diff --git a/test/toolset_requirements.py b/test/toolset_requirements.py new file mode 100644 index 000000000..c9a8fa8ee --- /dev/null +++ b/test/toolset_requirements.py @@ -0,0 +1,44 @@ +#!/usr/bin/python + +# Copyright 2014 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) + +# Test the handling of toolset.add-requirements + +import BoostBuild + +t = BoostBuild.Tester(pass_toolset=0, ignore_toolset_requirements=False) + +t.write('jamroot.jam', ''' +import toolset ; +import errors ; + +rule test-rule ( properties * ) +{ + return TEST_INDIRECT_CONDITIONAL ; +} + +toolset.add-requirements + TEST_MACRO + @test-rule + shared:TEST_CONDITIONAL +; + +rule check-requirements ( target : sources * : properties * ) +{ + local macros = TEST_MACRO TEST_CONDITIONAL TEST_INDIRECT_CONDITIONAL ; + for local m in $(macros) + { + if ! $(m) in $(properties) + { + errors.error $(m) not defined ; + } + } +} +make test : : @check-requirements ; +''') + +t.run_build_system() + +t.cleanup()