Jamfile.v2 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # Jamfile.v2
  2. #
  3. # Copyright (c) 2007-2008
  4. # Steven Watanabe
  5. #
  6. # Distributed under the Boost Software License, Version 1.0. (See
  7. # accompanying file LICENSE_1_0.txt or copy at
  8. # http://www.boost.org/LICENSE_1_0.txt
  9. import testing ;
  10. import path ;
  11. import regex ;
  12. import print ;
  13. import sequence ;
  14. import feature ;
  15. project boost/units/test_headers :
  16. requirements <include>$(BOOST_ROOT) <include>../../..
  17. ;
  18. headers = [ path.glob-tree ../../../boost/units : *.hpp : detail ] ;
  19. for local file in $(headers)
  20. {
  21. compile test.cpp
  22. : # requirements
  23. <define>BOOST_UNITS_HEADER_NAME=$(file)
  24. <dependency>$(file)
  25. : # test name
  26. [ regex.replace [ path.relative-to ../../.. $(file) ] "/" "_" ] ;
  27. }
  28. feature.feature <generate-include-all-order> : forward reverse : incidental ;
  29. rule generate-include-all ( target : sources * : properties * )
  30. {
  31. print.output $(target) ;
  32. if <generate-include-all-order>reverse in $(properties)
  33. {
  34. sources = [ sequence.reverse $(sources) ] ;
  35. }
  36. for local file in $(sources)
  37. {
  38. print.text "#include <$(file:G=)>
  39. " : overwrite ;
  40. }
  41. }
  42. make include_all1.cpp : $(headers) : @generate-include-all ;
  43. make include_all2.cpp : $(headers) : @generate-include-all : <generate-include-all-order>reverse ;
  44. # this ought to catch non-inlined functions and other duplicate definitions
  45. link include_all1.cpp include_all2.cpp main.cpp : <include>. : include_all_headers ;