| # Jamfile.v2 |
| # |
| # Copyright (c) 2007-2008 |
| # Steven Watanabe |
| # |
| # Distributed under the Boost Software License, Version 1.0. (See |
| # accompanying file LICENSE_1_0.txt or copy at |
| # http://www.boost.org/LICENSE_1_0.txt |
| |
| import testing ; |
| import path ; |
| import regex ; |
| import print ; |
| import sequence ; |
| import feature ; |
| |
| project boost/units/test_headers : |
| requirements <include>$(BOOST_ROOT) <include>../../.. |
| ; |
| |
| headers = [ path.glob-tree ../../../boost/units : *.hpp : detail ] ; |
| |
| for local file in $(headers) |
| { |
| compile test.cpp |
| : # requirements |
| <define>BOOST_UNITS_HEADER_NAME=$(file) |
| <dependency>$(file) |
| : # test name |
| [ regex.replace [ path.relative-to ../../.. $(file) ] "/" "_" ] ; |
| } |
| |
| feature.feature <generate-include-all-order> : forward reverse : incidental ; |
| |
| rule generate-include-all ( target : sources * : properties * ) |
| { |
| print.output $(target) ; |
| |
| if <generate-include-all-order>reverse in $(properties) |
| { |
| sources = [ sequence.reverse $(sources) ] ; |
| } |
| |
| for local file in $(sources) |
| { |
| print.text "#include <$(file:G=)> |
| " : overwrite ; |
| } |
| |
| } |
| |
| make include_all1.cpp : $(headers) : @generate-include-all ; |
| make include_all2.cpp : $(headers) : @generate-include-all : <generate-include-all-order>reverse ; |
| |
| # this ought to catch non-inlined functions and other duplicate definitions |
| link include_all1.cpp include_all2.cpp main.cpp : <include>. : include_all_headers ; |