diff --git a/test/build.jam b/test/build.jam index ee5adb8..7d86904 100755 --- a/test/build.jam +++ b/test/build.jam @@ -4,19 +4,34 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +local predef-include-root ; +local predef-dependency ; + +# When using modular layout, header files are not present in $root/boost +# unlink links are created, therefore instead of direct dependency on +# a header, we need to use dependency on metatarget. if $(BOOST_PREDEF_ROOT) { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_PREDEF_ROOT)/include ; + predef-include-root = $(BOOST_PREDEF_ROOT)/include ; + predef-dependency = $(predef-include-root)/boost/predef.h ; +} +else if $(BOOST_MODULARLAYOUT) +{ + predef-include-root = $(BOOST_ROOT)/include ; + predef-dependency = /boost//predef-headers ; } else { - path-constant BOOST_PREDEF_INCLUDE_ROOT : $(BOOST_ROOT) ; + predef-include-root = $(BOOST_ROOT) ; + predef-dependency = $(predef-include-root)/boost/predef.h ; } project test : requirements - $(BOOST_PREDEF_INCLUDE_ROOT) - $(BOOST_PREDEF_INCLUDE_ROOT)/boost/predef.h + $(predef-include-root) + # Add explicit dependency since we don't have header scanner for + # .m and .mm files. + $(predef-dependency) ; using testing ;