+# this rule enumerates through all the headers and ensures
+# that inclusion of the header by itself is sufficient to
+# compile successfully, proving the header does not depend
+# on any other headers to be included first - adapted from
+# logic in the winapi test bjam script
+rule test_all
+{
+ local all_rules = ;
+ local file ;
+ local headers_path = [ path.make $(BOOST_ROOT)/libs/uuid/include/boost/uuid ] ;
+ for file in [ path.glob-tree $(headers_path) : *.hpp : uuid ]
+ {
+ local rel_file = [ path.relative-to $(headers_path) $(file) ] ;
+ # Note: The test name starts with '~' in order to group these tests in the test report table, preferably at the end.
+ # All '/' are replaced with '-' because apparently test scripts have a problem with test names containing slashes.
+ local test_name = [ regex.replace $(rel_file) "/" "-" ] ;
+ local decl_test_name = ~hdr-decl-$(test_name) ;
+ # ECHO $(rel_file) ;
+ all_rules += [ compile compile/decl_header.cpp : <define>"BOOST_UUID_TEST_HEADER=$(rel_file)" <dependency>$(file) : $(decl_test_name) ] ;
+ }
+
+ # make sure compile time options work in isolation
+ all_rules += [ compile compile/decl_header.cpp :
+ <define>"BOOST_UUID_TEST_HEADER=uuid.hpp"
+ <define>"BOOST_UUID_NO_TYPE_TRAITS"
+ <dependency>../include/boost/uuid/uuid.hpp :
+ compile_uuid_no_type_traits ] ;
+ all_rules += [ compile compile/decl_header.cpp :
+ <define>"BOOST_UUID_TEST_HEADER=uuid.hpp"
+ <define>"BOOST_UUID_NO_SIMD"
+ <dependency>../include/boost/uuid/uuid.hpp :
+ compile_uuid_no_simd ] ;
+
+ # ECHO All rules: $(all_rules) ;
+ return $(all_rules) ;
+}
+