[mlpack-git] master: Added MathJax for HTML Doxygen output. (69947df)
gitdub at mlpack.org
gitdub at mlpack.org
Tue Aug 30 09:11:39 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/814605744b0a7c8b70a955076d3f110e2d6687db...459242594a29b6bae06ef3ffa4be7c2757c15246
>---------------------------------------------------------------
commit 69947df7729f3f0275b29764898523642c7cd7dc
Author: Mikhail Lozhnikov <lozhnikovma at gmail.com>
Date: Tue Aug 30 16:11:39 2016 +0300
Added MathJax for HTML Doxygen output.
>---------------------------------------------------------------
69947df7729f3f0275b29764898523642c7cd7dc
CMake/FindMathJax.cmake | 21 +++++++++++++++++++++
CMake/GenerateDoxyfile.cmake | 23 ++++++++++++++++++++++-
CMakeLists.txt | 22 ++++++++++++++++++----
Doxyfile | 3 +++
4 files changed, 64 insertions(+), 5 deletions(-)
diff --git a/CMake/FindMathJax.cmake b/CMake/FindMathJax.cmake
new file mode 100644
index 0000000..4111183
--- /dev/null
+++ b/CMake/FindMathJax.cmake
@@ -0,0 +1,21 @@
+# Find the MathJax package.
+# Once done this will define
+#
+# MATHJAX_FOUND - system has MathJax
+# MATHJAX_JS_PATH - path to MathJax.js
+# MATHJAX_PATH - path to the MathJax root directory
+
+find_file (MATHJAX_JS_PATH
+ NAMES
+ MathJax.js
+ PATHS
+ ${MATHJAX_ROOT}
+ /usr/share/javascript/mathjax/
+ /usr/local/share/javascript/mathjax/)
+
+get_filename_component (MATHJAX_PATH ${MATHJAX_JS_PATH} DIRECTORY)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(MathJax DEFAULT_MSG
+ MATHJAX_JS_PATH)
+
+mark_as_advanced (MATHJAX_JS_PATH)
diff --git a/CMake/GenerateDoxyfile.cmake b/CMake/GenerateDoxyfile.cmake
index 4e74496..cca9549 100644
--- a/CMake/GenerateDoxyfile.cmake
+++ b/CMake/GenerateDoxyfile.cmake
@@ -49,5 +49,26 @@ string(REGEX REPLACE
"\\1 ${CMAKE_CURRENT_SOURCE_DIR}/"
DOXYFILE_AUXVAR ${DOXYFILE_CONTENTS})
+# Apply the MathJax option. If the option is specified, we change the NO to
+# YES. Otherwise, it's off by default, so we needn't modify anything.
+if (MATHJAX)
+ string(REGEX REPLACE
+ "(USE_MATHJAX[ ]*=) NO"
+ "\\1 YES"
+ DOXYFILE_CONTENTS ${DOXYFILE_AUXVAR})
+ # Include the path to MathJax. If we couldn't find the MathJax package,
+ # we will use MathJax at the MathJax Content Delivery Network.
+ if (MATHJAX_FOUND)
+ string(CONCAT
+ DOXYFILE_AUXVAR
+ ${DOXYFILE_CONTENTS}
+ "\nMATHJAX_RELPATH = ${MATHJAX_PATH}")
+
+ set(DOXYFILE_CONTENTS ${DOXYFILE_AUXVAR})
+ endif()
+else ()
+ set(DOXYFILE_CONTENTS ${DOXYFILE_AUXVAR})
+endif ()
+
# Save the Doxyfile to its new location.
-file(WRITE "${DESTDIR}/Doxyfile" "${DOXYFILE_AUXVAR}")
+file(WRITE "${DESTDIR}/Doxyfile" "${DOXYFILE_CONTENTS}")
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bd53495..1c5d98e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,9 +26,11 @@ option(TEST_VERBOSE "Run test cases with verbose output." OFF)
option(BUILD_TESTS "Build tests." ON)
option(BUILD_CLI_EXECUTABLES "Build command-line executables." ON)
option(BUILD_SHARED_LIBS
- "Compile shared libraries (if OFF, static libraries are compiled)" ON)
+ "Compile shared libraries (if OFF, static libraries are compiled)." ON)
option(BUILD_WITH_COVERAGE
- "Build with support for code coverage tools (gcc only)" OFF)
+ "Build with support for code coverage tools (gcc only)." OFF)
+option(MATHJAX
+ "Use MathJax for HTML Doxygen output (disabled by default)." OFF)
enable_testing()
# Include modules in the CMake directory.
@@ -170,6 +172,7 @@ endif()
# BOOST_ROOT - root of Boost installation
# BOOST_INCLUDEDIR - include directory for Boost
# BOOST_LIBRARYDIR - library directory for Boost
+# MATHJAX_ROOT - root of MathJax installation
find_package(Armadillo 4.100.0 REQUIRED)
@@ -376,11 +379,22 @@ add_dependencies(mlpack mlpack_arma_config)
# I guess this option will just be unavailable.
find_package(Doxygen)
if (DOXYGEN_FOUND)
+ if (MATHJAX)
+ find_package(MathJax)
+ if (NOT MATHJAX_FOUND)
+ message(STATUS "Using MathJax at the MathJax Content Delivery Network. "
+ "Be careful, formulas will not be shown without the internet.")
+ endif ()
+ endif ()
# Preprocess the Doxyfile. This is done before 'make doc'.
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/Doxyfile
PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -D DESTDIR="${CMAKE_BINARY_DIR}" -P
- "${CMAKE_CURRENT_SOURCE_DIR}/CMake/GenerateDoxyfile.cmake"
+ COMMAND ${CMAKE_COMMAND}
+ -D DESTDIR="${CMAKE_BINARY_DIR}"
+ -D MATHJAX="${MATHJAX}"
+ -D MATHJAX_FOUND="${MATHJAX_FOUND}"
+ -D MATHJAX_PATH="${MATHJAX_PATH}"
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/CMake/GenerateDoxyfile.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile"
COMMENT "Creating Doxyfile to generate Doxygen documentation"
diff --git a/Doxyfile b/Doxyfile
index 352bb95..e602ac3 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -149,6 +149,9 @@ DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 1
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
+USE_MATHJAX = NO
+MATHJAX_FORMAT = SVG
+MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
More information about the mlpack-git
mailing list