README.txt 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. Pre-processing of MPL-containers
  2. --------------------------------
  3. Pre-processing of MPL-containers can be accomplished using the script
  4. "boost_mpl_preprocess.py". In the simple case call it with a single
  5. argument which is the path to the source-directory of Boost.
  6. python boost_mpl_preprocess.py <path-to-boost-sourcedir>
  7. If the Boost source-directory is the one this script resides in, you
  8. can just call it without any arguments.
  9. python boost_mpl_preprocess.py
  10. Either way, this will pre-process all four MPL-container types (vector,
  11. list, set, map) and makes them able to hold up to 100 elements. They can
  12. be used either in their 'numbered' or their 'variadic' form.
  13. Additionally, the script also allows more fine-grained pre-processing.
  14. The maximal number of elements an MPL-container type is able to hold can
  15. be different from the one of other MPL-container types and it can also
  16. differ between its 'numbered' and 'variadic' form.
  17. To see all options, call the script like this:
  18. python boost_mpl_preprocess.py --help
  19. Fixing pre-processing of MPL-containers
  20. ---------------------------------------
  21. Sadly, pre-processing of MPL-containers might fail, if the source-files
  22. used as input are missing some header-comments required during the pre-
  23. processing step.
  24. However, the script "boost_mpl_preprocess.py" makes sure to patch these
  25. input source-files prior to pre-processing (by implicitly calling script
  26. "fix_boost_mpl_preprocess.py" with the chosen settings). It only patches
  27. the source-files needed for pre-processing the selected MPL-container
  28. types and their selected form ('numbered' or 'variadic').
  29. If calling it with a single (or no) argument (as in the former section)
  30. all input source-files will be patched automatically.
  31. Instead of fixing the input-files implicitly during pre-processing one
  32. can also fix them explicitly by calling "fix_boost_mpl_preprocess.py"
  33. directly.
  34. If you just want to test if any fixing is needed call it like this:
  35. python fix_boost_mpl_preprocess.py --check-only <path-to-boost-sourcedir>
  36. This will tell you if any fixing is needed. In such a case call the script
  37. "fix_boost_mpl_preprocess.py" like this:
  38. python fix_boost_mpl_preprocess.py <path-to-boost-sourcedir>
  39. This will fix the header-comments of all the source-files needed during
  40. pre-processing. Calling "boost_mpl_preprocess.py" afterwards should then
  41. successfully pre-process the MPL-containers (without the need of implicitly
  42. fixing any files again).
  43. Note:
  44. Failure of pre-processing can be checked by examining at least one of the
  45. following directories in which automatically generated files will be put
  46. during pre-processing. If at least one file in these directories (or sub-
  47. directories therein) has a size of zero bytes, fixing is needed.
  48. <path-to-boost-sourcedir>/boost/mpl/vector/aux_/preprocessed/
  49. <path-to-boost-sourcedir>/boost/mpl/list/aux_/preprocessed/
  50. <path-to-boost-sourcedir>/boost/mpl/set/aux_/preprocessed/
  51. <path-to-boost-sourcedir>/boost/mpl/map/aux_/preprocessed/
  52. <path-to-boost-sourcedir>/boost/mpl/aux_/preprocessed/