summaryrefslogtreecommitdiff
path: root/Utilities/Sphinx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-04-01 21:47:42 -0400
committerBrad King <brad.king@kitware.com>2022-04-05 16:09:54 -0400
commitcca73b54ae6a25f50b17cf32077ca85020340d92 (patch)
treee4bdc6b78481c77918e7d52a64b4754685b9ded8 /Utilities/Sphinx
parentfa136ae3804a59223179c1390192387b4c18e010 (diff)
downloadcmake-cca73b54ae6a25f50b17cf32077ca85020340d92.tar.gz
Utilities/Sphinx: Add undocumented option to build docs for cmake.org
Diffstat (limited to 'Utilities/Sphinx')
-rw-r--r--Utilities/Sphinx/CMakeLists.txt33
-rw-r--r--Utilities/Sphinx/conf.py.in1
-rw-r--r--Utilities/Sphinx/templates/layout.html22
3 files changed, 50 insertions, 6 deletions
diff --git a/Utilities/Sphinx/CMakeLists.txt b/Utilities/Sphinx/CMakeLists.txt
index c8a970dcaf..65760367ea 100644
--- a/Utilities/Sphinx/CMakeLists.txt
+++ b/Utilities/Sphinx/CMakeLists.txt
@@ -49,6 +49,12 @@ else()
set(conf_copyright "Kitware, Inc.")
endif()
+if(CMake_SPHINX_CMAKE_ORG)
+ set(conf_baseurl "https://cmake.org/cmake/help/latest")
+else()
+ set(conf_baseurl "")
+endif()
+
set(conf_docs "${CMake_SOURCE_DIR}/Help")
set(conf_path "${CMAKE_CURRENT_SOURCE_DIR}")
set(conf_version "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}")
@@ -129,11 +135,24 @@ if(SPHINX_LATEXPDF)
list(APPEND doc_formats latexpdf)
endif()
+set(doc_html_opts "")
+if(CMake_SPHINX_CMAKE_ORG)
+ list(APPEND doc_html_opts
+ -A googleanalytics=1
+ -A versionswitch=1
+ )
+endif()
+
set(doc_format_outputs "")
set(doc_format_last "")
foreach(format ${doc_formats})
set(doc_format_output "doc_format_${format}")
set(doc_format_log "build-${format}.log")
+ if(CMake_SPHINX_CMAKE_ORG)
+ set(doctrees "doctrees/${format}")
+ else()
+ set(doctrees "doctrees")
+ endif()
if(format STREQUAL "latexpdf")
# This format does not use builder (-b) but make_mode (-M) which expects
# arguments in peculiar order
@@ -144,8 +163,9 @@ foreach(format ${doc_formats})
${CMake_SOURCE_DIR}/Help
${CMAKE_CURRENT_BINARY_DIR}/${format}
-c ${CMAKE_CURRENT_BINARY_DIR}
- -d ${CMAKE_CURRENT_BINARY_DIR}/doctrees
+ -d ${CMAKE_CURRENT_BINARY_DIR}/${doctrees}
${sphinx_flags}
+ ${doc_${format}_opts}
> ${doc_format_log} # log stdout, pass stderr
${${format}_extra_commands}
DEPENDS ${doc_format_last}
@@ -158,9 +178,10 @@ foreach(format ${doc_formats})
OUTPUT ${doc_format_output}
COMMAND ${SPHINX_EXECUTABLE}
-c ${CMAKE_CURRENT_BINARY_DIR}
- -d ${CMAKE_CURRENT_BINARY_DIR}/doctrees
+ -d ${CMAKE_CURRENT_BINARY_DIR}/${doctrees}
-b ${format}
${sphinx_flags}
+ ${doc_${format}_opts}
${CMake_SOURCE_DIR}/Help
${CMAKE_CURRENT_BINARY_DIR}/${format}
> ${doc_format_log} # log stdout, pass stderr
@@ -172,7 +193,9 @@ foreach(format ${doc_formats})
endif()
set_property(SOURCE ${doc_format_output} PROPERTY SYMBOLIC 1)
list(APPEND doc_format_outputs ${doc_format_output})
- set(doc_format_last ${doc_format_output})
+ if(NOT CMake_SPHINX_CMAKE_ORG)
+ set(doc_format_last ${doc_format_output})
+ endif()
endforeach()
add_custom_target(documentation ALL DEPENDS ${doc_format_outputs})
@@ -192,6 +215,10 @@ if(CMake_SPHINX_DEPEND_ON_EXECUTABLES)
endforeach()
endif()
+if(CMake_SPHINX_CMAKE_ORG)
+ return()
+endif()
+
if(SPHINX_INFO)
CMake_OPTIONAL_COMPONENT(sphinx-info)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/texinfo/cmake.info
diff --git a/Utilities/Sphinx/conf.py.in b/Utilities/Sphinx/conf.py.in
index c383828bd7..2b3083b046 100644
--- a/Utilities/Sphinx/conf.py.in
+++ b/Utilities/Sphinx/conf.py.in
@@ -55,6 +55,7 @@ for fpath in cmake_manuals:
man_show_urls = False
man_make_section_directory = False
+html_baseurl = '@conf_baseurl@'
html_show_sourcelink = True
html_static_path = ['@conf_path@/static']
html_style = 'cmake.css'
diff --git a/Utilities/Sphinx/templates/layout.html b/Utilities/Sphinx/templates/layout.html
index be2660caa0..0cc5c26afe 100644
--- a/Utilities/Sphinx/templates/layout.html
+++ b/Utilities/Sphinx/templates/layout.html
@@ -18,9 +18,9 @@
{% endblock %}
{% block extrahead %}
- {% if versionswitch is defined %}
- <script type="text/javascript" src="{{ pathto('../version_switch.js', 1) }}"></script>
- {% endif %}
+ {%- if versionswitch is defined %}
+ <script type="text/javascript" src="{{ pathto('../version_switch.js', 1) }}"></script>
+ {%- endif %}
{{ super() }}
{% endblock %}
@@ -29,3 +29,19 @@
{% block htmltitle %}
<title>{{ title|striptags|e }} {{ "&mdash;"|safe }} {{ docstitle|e }}</title>
{% endblock %}
+
+{%- block footer %}
+{{ super() }}
+{%- if googleanalytics is defined %}
+<script type="text/javascript">
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+try {
+var pageTracker = _gat._getTracker("UA-6042509-4");
+pageTracker._trackPageview();
+} catch(err) {}
+</script>
+{%- endif %}
+{%- endblock %}