units/test_headers/Jamfile.v2

57 lines
1.4 KiB
Plaintext

# 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 ;