From 185a267f9b22c1b944c3c6eb653f5479d744dd78 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Fri, 30 Oct 2020 12:24:23 +0100 Subject: [PATCH] Add new building option ENABLE_EXTERNAL_MATHJAX, set to ON by default. If set to ON, it generates HTML documentation using MathJax from an external CDN when doing 'make doc'. If set to OFF, MathJax is still looked for in the system and used if found, so it can be used offline. If not found, it is not used. --- CMakeLists.txt | 22 +++++++++++++++++----- cmake/Modules/FindMATHJAX2.cmake | 9 --------- docs/doxygen/other/main_page.dox | 2 +- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e533f679..6a4b0fde0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,6 +117,8 @@ if(CMAKE_VERSION VERSION_LESS 3.5.1) set(ENABLE_BENCHMARKS OFF) endif() +option(ENABLE_EXTERNAL_MATHJAX "Use MathJax from an external CDN in HTML docs" ON) + ################################################################################ # GNSS-SDR version information @@ -330,6 +332,7 @@ set(GNSSSDR_MATIO_LOCAL_VERSION "1.5.18") set(GNSSSDR_PUGIXML_LOCAL_VERSION "1.10") set(GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION "3.13.0") set(GNSSSDR_BENCHMARK_LOCAL_VERSION "1.5.2") +set(GNSSSDR_MATHJAX_EXTERNAL_VERSION "2.7.7") if(CMAKE_VERSION VERSION_LESS "3.0.2") set(GNSSSDR_GFLAGS_LOCAL_VERSION "2.2.1") # Fix for CentOS 7 @@ -2533,7 +2536,7 @@ endif() ################################################################################ -# Doxygen - http://www.doxygen.nl (OPTIONAL, used if found) +# Doxygen - https://www.doxygen.nl (OPTIONAL, used if found) ################################################################################ if(CMAKE_VERSION VERSION_LESS 3.6.9) find_package(Doxygen) @@ -2541,7 +2544,7 @@ else() find_package(Doxygen OPTIONAL_COMPONENTS dot) endif() set_package_properties(Doxygen PROPERTIES - URL "http://www.doxygen.nl" + URL "https://www.doxygen.nl" PURPOSE "Used to generate code documentation by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'" TYPE OPTIONAL ) @@ -2562,14 +2565,21 @@ endif() set_package_properties(LATEX PROPERTIES URL "https://www.latex-project.org" DESCRIPTION "High-quality typesetting system" - PURPOSE "Used to generate a PDF manual by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} pdfmanual'" + PURPOSE "Used to generate a PDF manual by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} pdfmanual'." TYPE OPTIONAL ) +if(DEFINED MATHJAX2_ROOT) + set(ENABLE_EXTERNAL_MATHJAX OFF) +endif() +if(ENABLE_EXTERNAL_MATHJAX AND NOT DEFINED MATHJAX2_USE_ROOT) + set(MATHJAX2_USE_ROOT "https://cdnjs.cloudflare.com/ajax/libs/mathjax/${GNSSSDR_MATHJAX_EXTERNAL_VERSION}") +endif() +unset(MATHJAX2_FOUND CACHE) find_package(MATHJAX2) set_package_properties(MATHJAX2 PROPERTIES URL "https://www.mathjax.org" DESCRIPTION "Beautiful and accessible math in all browsers" - PURPOSE "Used to generate equations in HTML docs." + PURPOSE "Used to generate equations in HTML docs when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'." TYPE OPTIONAL ) @@ -2660,7 +2670,7 @@ if(DOXYGEN_FOUND) else() message(STATUS " Doxygen has not been found in your system.") message(STATUS " You can get nice code documentation by using it!") - message(STATUS " Get it from http://www.doxygen.nl/download.html") + message(STATUS " Get it from https://www.doxygen.nl/download.html") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|kFreeBSD|GNU") if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat") message(STATUS " or simply by doing 'sudo yum install doxygen-latex'.") @@ -2672,6 +2682,7 @@ else() message(STATUS " or simply by doing 'sudo port install doxygen +docs', if you are using Macports,") message(STATUS " or 'brew cask install mactex', then restart Terminal and do 'brew install graphviz doxygen', if you use Homebrew.") endif() + set(ENABLE_EXTERNAL_MATHJAX OFF) endif() @@ -3188,6 +3199,7 @@ add_feature_info(ENABLE_OWN_GPSTK ENABLE_OWN_GPSTK "Forces the downloading and b add_feature_info(ENABLE_GNSS_SIM_INSTALL ENABLE_GNSS_SIM_INSTALL "Enables downloading and building of gnss-sim.") add_feature_info(ENABLE_INSTALL_TESTS ENABLE_INSTALL_TESTS "Install test binaries when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} install'.") add_feature_info(ENABLE_BENCHMARKS ENABLE_BENCHMARKS "Enables building of code snippet benchmarks.") +add_feature_info(ENABLE_EXTERNAL_MATHJAX ENABLE_EXTERNAL_MATHJAX "Use MathJax from an external CDN in HTML docs when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'.") message(STATUS "") message(STATUS "***************************************") diff --git a/cmake/Modules/FindMATHJAX2.cmake b/cmake/Modules/FindMATHJAX2.cmake index 8fb6fa623..0b78175b9 100644 --- a/cmake/Modules/FindMATHJAX2.cmake +++ b/cmake/Modules/FindMATHJAX2.cmake @@ -28,15 +28,6 @@ # - MATHJAX2_PATH - Path to the MathJax root directory -if(CMAKE_VERSION VERSION_LESS 3.11) - if(__INCLUDED_MATHJAX2) - return() - endif() - set(__INCLUDED_MATHJAX2 TRUE) -else() - include_guard() -endif() - if(DEFINED MATHJAX2_USE_ROOT) set(MATHJAX2_FOUND TRUE) set(MATHJAX2_PATH "${MATHJAX2_USE_ROOT}/") diff --git a/docs/doxygen/other/main_page.dox b/docs/doxygen/other/main_page.dox index e1053e8d6..2ba165881 100644 --- a/docs/doxygen/other/main_page.dox +++ b/docs/doxygen/other/main_page.dox @@ -157,7 +157,7 @@ You can create the documentation by doing: $ make doc \endverbatim -from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be +from the gnss-sdr/build folder. In both cases, Doxygen will generate HTML documentation that can be retrieved pointing your browser of preference to gnss-sdr/docs/html/index.html. There are two more extra targets available. From the gnss-sdr/build folder: