Jamfile.v2 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. #
  2. # Copyright Andrey Semashev 2007 - 2015.
  3. # Distributed under the Boost Software License, Version 1.0.
  4. # (See accompanying file LICENSE_1_0.txt or copy at
  5. # http://www.boost.org/LICENSE_1_0.txt)
  6. #
  7. using quickbook ;
  8. using boostbook ;
  9. using doxygen ;
  10. using xsltproc ;
  11. import set ;
  12. import doxygen ;
  13. import xsltproc ;
  14. import notfile ;
  15. import path ;
  16. import project ;
  17. project boost/libs/log/doc ;
  18. path-constant images_location : html ;
  19. # NOTE: At least Doxygen 1.8.2 is needed to generate docs correctly. Older versions don't support C++11 constructs correctly and generate misleading docs.
  20. local doxygen_params =
  21. <doxygen:param>RECURSIVE=YES
  22. <doxygen:param>ALPHABETICAL_INDEX=YES
  23. <doxygen:param>REPEAT_BRIEF=YES
  24. <doxygen:param>ALWAYS_DETAILED_SEC=YES
  25. <doxygen:param>BRIEF_MEMBER_DESC=NO
  26. <doxygen:param>ABBREVIATE_BRIEF=YES
  27. <doxygen:param>INHERIT_DOCS=YES
  28. <doxygen:param>HIDE_UNDOC_MEMBERS=YES
  29. <doxygen:param>HIDE_UNDOC_CLASSES=YES
  30. <doxygen:param>HIDE_SCOPE_NAMES=YES
  31. <doxygen:param>EXTRACT_ALL=NO
  32. <doxygen:param>EXTRACT_PRIVATE=NO
  33. <doxygen:param>BUILTIN_STL_SUPPORT=YES
  34. <doxygen:param>ENABLE_PREPROCESSING=YES
  35. <doxygen:param>MACRO_EXPANSION=YES
  36. <doxygen:param>TAB_SIZE=4
  37. <doxygen:param>SOURCE_BROWSER=YES
  38. <doxygen:param>VERBATIM_HEADERS=NO
  39. # <doxygen:param>SEARCH_INCLUDES=YES
  40. # <doxygen:param>"INCLUDE_PATH=../../.."
  41. # <doxygen:param>EXCLUDE_SYMBOLS="aux aux::*"
  42. <doxygen:param>"PREDEFINED=BOOST_LOG_DOXYGEN_PASS \\
  43. BOOST_LOG_NO_VTABLE= \\
  44. BOOST_SYMBOL_VISIBLE= \\
  45. BOOST_FORCEINLINE=inline \\
  46. BOOST_STATIC_ASSERT(x)= \\
  47. BOOST_STATIC_ASSERT_MSG(x,y)= \\
  48. BOOST_STATIC_CONSTANT(x,y)=\"static constexpr x y\" \\
  49. BOOST_RV_REF(x)=\"x&&\" \\
  50. BOOST_NESTED_TEMPLATE=template \\
  51. BOOST_CONSTEXPR=constexpr \\
  52. BOOST_CXX14_CONSTEXPR=constexpr \\
  53. BOOST_CONSTEXPR_OR_CONST=constexpr \\
  54. BOOST_NOEXCEPT=noexcept \\
  55. BOOST_NOEXCEPT_IF(x)=noexcept(x) \\
  56. BOOST_NOEXCEPT_OR_NOTHROW=noexcept \\
  57. BOOST_COPY_ASSIGN_REF(x)=\"x const&\" \\
  58. BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(x)= \\
  59. BOOST_LOG_UNIQUE_IDENTIFIER_NAME(x)=anonymous \\
  60. BOOST_LOG_USE_NATIVE_SYSLOG=1 \\
  61. BOOST_PARAMETER_KEYWORD(x,y)=\"keyword y;\" \\
  62. BOOST_LOG_AUX_VOID_DEFAULT=\"= void\" \\
  63. BOOST_LOG_CONSOLE_SINK_FRONTEND_INTERNAL=sinks::synchronous_sink \\
  64. BOOST_LOG_FILE_SINK_FRONTEND_INTERNAL=sinks::synchronous_sink \\
  65. BOOST_LOG_NAMESPACE=log \\
  66. BOOST_LOG_OPEN_NAMESPACE=\"namespace log {\" \\
  67. BOOST_LOG_CLOSE_NAMESPACE=\"}\" \\
  68. BOOST_DEFAULTED_FUNCTION(x,y)=\"x = default;\" \\
  69. BOOST_DELETED_FUNCTION(x)=\"x = delete;\" \\
  70. BOOST_EXPLICIT_OPERATOR_BOOL()=\"explicit operator bool() const;\" \\
  71. BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()=\"explicit operator bool() const noexcept;\" \\
  72. BOOST_LOG_USE_CHAR \\
  73. BOOST_LOG_USE_WCHAR_T \\
  74. BOOST_LOG_API= \\
  75. BOOST_LOG_SETUP_API="
  76. <xsl:param>boost.doxygen.detailns=aux
  77. # <xsl:param>boost.doxygen.detail=implementation_
  78. ;
  79. local top_level_includes =
  80. [ glob
  81. ../../../boost/log/*.hpp
  82. ] ;
  83. local core_includes =
  84. [ glob
  85. ../../../boost/log/core/*.hpp
  86. ] ;
  87. local attributes_includes =
  88. [ glob
  89. ../../../boost/log/attributes/*.hpp
  90. ] ;
  91. local expressions_includes =
  92. [ glob
  93. ../../../boost/log/expressions/*.hpp
  94. ../../../boost/log/expressions/predicates/*.hpp
  95. ../../../boost/log/expressions/formatters/*.hpp
  96. ] ;
  97. local sources_includes =
  98. [ glob
  99. ../../../boost/log/sources/*.hpp
  100. ] ;
  101. local sinks_includes =
  102. [ set.difference
  103. # Document all these files...
  104. [ glob
  105. ../../../boost/log/sinks/*.hpp
  106. ]
  107. :
  108. # ...except these
  109. [ glob
  110. ../../../boost/log/sinks/nt6_event_log*.hpp
  111. ]
  112. ] ;
  113. local utility_includes =
  114. [ glob
  115. ../../../boost/log/utility/*.hpp
  116. ../../../boost/log/utility/ipc/*.hpp
  117. ../../../boost/log/utility/setup/*.hpp
  118. ../../../boost/log/utility/type_dispatch/*.hpp
  119. ../../../boost/log/utility/functional/*.hpp
  120. ../../../boost/log/utility/manipulators/*.hpp
  121. ] ;
  122. local support_includes =
  123. [ glob
  124. ../../../boost/log/support/*.hpp
  125. ] ;
  126. # This rule generates *.qbk files with macros with references to files, classes, etc. from the doxygen resulting *.xml files.
  127. rule gen-references ( target : source : properties * )
  128. {
  129. DEPENDS target : source ;
  130. local source-path = [ path.make [ on $(source) return $(LOCATE) ] ] ;
  131. STYLESHEET on $(target) = [ path.native [ path.join [ path.parent $(source-path) ] gen_references.xsl ] ] ;
  132. local target-name = $(source:B) ;
  133. TARGET on $(target) = [ path.native [ path.join $(source-path) $(target-name:S=.qbk) ] ] ;
  134. }
  135. actions gen-references
  136. {
  137. # echo "*** Executing " $(NAME:E=xsltproc) -o "$(TARGET)" "$(STYLESHEET)" "$(>)"
  138. $(NAME:E=xsltproc) -o "$(TARGET)" "$(STYLESHEET)" "$(>)"
  139. }
  140. doxygen top_level_reference
  141. :
  142. $(top_level_includes)
  143. :
  144. $(doxygen_params)
  145. <xsl:param>"boost.doxygen.reftitle=Top level headers"
  146. <location>tmp
  147. ;
  148. notfile top_level_refs : @gen-references : top_level_reference.xml ;
  149. doxygen core_reference
  150. :
  151. $(core_includes)
  152. :
  153. $(doxygen_params)
  154. <xsl:param>"boost.doxygen.reftitle=Core components"
  155. <location>tmp
  156. ;
  157. notfile core_refs : @gen-references : core_reference.xml ;
  158. doxygen attributes_reference
  159. :
  160. $(attributes_includes)
  161. :
  162. $(doxygen_params)
  163. <xsl:param>"boost.doxygen.reftitle=Attributes"
  164. <location>tmp
  165. ;
  166. notfile attributes_refs : @gen-references : attributes_reference.xml ;
  167. doxygen expressions_reference
  168. :
  169. $(expressions_includes)
  170. :
  171. $(doxygen_params)
  172. <xsl:param>"boost.doxygen.reftitle=Expressions"
  173. <location>tmp
  174. ;
  175. notfile expressions_refs : @gen-references : expressions_reference.xml ;
  176. doxygen sources_reference
  177. :
  178. $(sources_includes)
  179. :
  180. $(doxygen_params)
  181. <xsl:param>"boost.doxygen.reftitle=Logging sources"
  182. <location>tmp
  183. ;
  184. notfile sources_refs : @gen-references : sources_reference.xml ;
  185. doxygen sinks_reference
  186. :
  187. $(sinks_includes)
  188. :
  189. $(doxygen_params)
  190. <xsl:param>"boost.doxygen.reftitle=Sinks"
  191. <location>tmp
  192. ;
  193. notfile sinks_refs : @gen-references : sinks_reference.xml ;
  194. doxygen utility_reference
  195. :
  196. $(utility_includes)
  197. :
  198. $(doxygen_params)
  199. <xsl:param>"boost.doxygen.reftitle=Utilities"
  200. <location>tmp
  201. ;
  202. notfile utility_refs : @gen-references : utility_reference.xml ;
  203. doxygen support_reference
  204. :
  205. $(support_includes)
  206. :
  207. $(doxygen_params)
  208. <xsl:param>"boost.doxygen.reftitle=Other libraries support layer"
  209. <location>tmp
  210. ;
  211. notfile support_refs : @gen-references : support_reference.xml ;
  212. xml log_doc
  213. :
  214. log.qbk
  215. :
  216. <dependency>top_level_refs
  217. <dependency>core_refs
  218. <dependency>attributes_refs
  219. <dependency>expressions_refs
  220. <dependency>sources_refs
  221. <dependency>sinks_refs
  222. <dependency>utility_refs
  223. <dependency>support_refs
  224. ;
  225. boostbook log
  226. :
  227. log_doc
  228. :
  229. <dependency>html/images/log
  230. <xsl:param>boost.root=../../../..
  231. <xsl:param>boost.libraries=../../../libs/libraries.htm
  232. <xsl:param>nav.layout=none
  233. <xsl:param>boost.image=Boost
  234. <xsl:param>navig.graphics=1
  235. <xsl:param>chunk.section.depth=2
  236. <xsl:param>boost.compact.function=0
  237. <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/log/doc/html
  238. <format>pdf:<xsl:param>img.src.path=$(images_location)/
  239. ;
  240. install html/images/log : [ glob *.png ] ;
  241. ###############################################################################
  242. alias boostdoc ;
  243. explicit boostdoc ;
  244. alias boostrelease : log ;
  245. explicit boostrelease ;