diff --git a/CMakeLists.txt b/CMakeLists.txt index 32abed99e..e47ebe59d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -873,12 +873,21 @@ IF(ENABLE_DOXYGEN) SET(BUILD_INTERNAL_DOCS NO CACHE STRING "") ENDIF() - OPTION(DOXYGEN_ENABLE_SERVER_SIDE_SEARCH "Enable doxygen server-side search. This is of interest to developers only." OFF) - IF(DOXYGEN_ENABLE_SERVER_SIDE_SEARCH) - SET(SERVER_SIDE_SEARCH YES CACHE STRING "") + ### + # + # If we are building release documentation, we need to set some + # variables that will be used in the Doxygen.in template. + ### + OPTION(ENABLE_DOXYGEN_BUILD_RELEASE_DOCS "Build release documentation. This is of interest only to the netCDF developers." OFF) + IF(ENABLE_DOXYGEN_BUILD_RELEASE_DOCS) + SET(DOXYGEN_CSS_FILE "${CMAKE_SOURCE_DIR}/docs/release.css" CACHE STRING "") + SET(DOXYGEN_HEADER_FILE "${CMAKE_SOURCE_DIR}/docs/release_header.html" CACHE STRING "") + SET(DOXYGEN_SEARCHENGINE "NO" CACHE STRING "") ELSE() - SET(SERVER_SIDE_SEARCH NO CACHE STRING "") - ENDIF() + SET(DOXYGEN_CSS_FILE "" CACHE STRING "") + SET(DOXYGEN_HEADER_FILE "" CACHE STRING "") + SET(DOXYGEN_SEARCHENGINE "YES" CACHE STRING "") + ENDIF(ENABLE_DOXYGEN_BUILD_RELEASE_DOCS) # Option to turn on the TODO list in the doxygen-generated documentation. OPTION(DOXYGEN_ENABLE_TASKS "Turn on test, todo, bug lists in documentation. This is of interest to developers only." OFF) IF(DOXYGEN_ENABLE_TASKS) @@ -920,7 +929,7 @@ ENDIF() # Set some of the options as advanced. MARK_AS_ADVANCED(ENABLE_INTERNAL_DOCS VALGRIND_TESTS ENABLE_PNETCDF ENABLE_COVERAGE_TESTS) MARK_AS_ADVANCED(ENABLE_DAP_REMOTE_TESTS ENABLE_DAP_LONG_TESTS USE_REMOTE_CDASH) -MARK_AS_ADVANCED(DOXYGEN_ENABLE_SERVER_SIDE_SEARCH DOXYGEN_ENABLE_TASKS) +MARK_AS_ADVANCED(ENABLE_DOXYGEN_BUILD_RELEASE_DOCS DOXYGEN_ENABLE_TASKS) ################################ # Option checks ################################ diff --git a/Doxyfile.developer b/Doxyfile.developer index 26e984e7a..47dfef865 100755 --- a/Doxyfile.developer +++ b/Doxyfile.developer @@ -1096,7 +1096,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = docs/extra_header.html # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1129,7 +1129,7 @@ HTML_STYLESHEET = # see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = docs/extra.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1527,7 +1527,7 @@ MATHJAX_CODEFILE = # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -SEARCHENGINE = YES +SEARCHENGINE = NO # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There diff --git a/configure.ac b/configure.ac index c11295ca6..467259e6b 100644 --- a/configure.ac +++ b/configure.ac @@ -95,12 +95,25 @@ test "x$enable_doxygen_tasks" = xyes || enable_doxygen_tasks=no AM_CONDITIONAL([SHOW_DOXYGEN_TAG_LIST], [test "x$enable_doxygen_tasks" = xyes]) AC_SUBST([SHOW_DOXYGEN_TAG_LIST], [$enable_doxygen_tasks]) -AC_ARG_ENABLE([doxygen-server-side-search], - [AS_HELP_STRING([--enable-doxygen-server-side-search], - [Enable doxygen server-side search. This is of interest to developers only, or users who will serve the documentation via a web server instead of browsing locally.])]) -test "x$enable_doxygen_server_side_search" = xyes || enable_doxygen_server_side_search=no -AM_CONDITIONAL([SERVER_SIDE_SEARCH], [test "x$enable_doxygen_server_side_search" = xyes]) -AC_SUBST([SERVER_SIDE_SEARCH], [$enable_doxygen_server_side_search]) +### +# Determine if we should build documentation +# configured for releases on the Unidata web server. +### +AC_ARG_ENABLE([doxygen-build-release-docs], + [AS_HELP_STRING([--enable-doxygen-build-release-docs], + [Build release documentation. This is of interest only to developers.])]) +test "x$enable_doxygen_build_release_docs" = xyes || enable_doxygen_build_release_docs=no +AM_CONDITIONAL([DOXYGEN_BUILD_RELEASE_DOCS], [test "x$enable_doxygen_build_release_docs" = xyes]) + +if test $enable_doxygen_build_release_docs = yes; then + AC_SUBST([DOXYGEN_CSS_FILE], ["release.css"]) + AC_SUBST([DOXYGEN_HEADER_FILE], ["release_header.html"]) + AC_SUBST([DOXYGEN_SEARCHENGINE], ["NO"]) +else + AC_SUBST([DOXYGEN_CSS_FILE], []) + AC_SUBST([DOXYGEN_HEADER_FILE], []) + AC_SUBST([DOXYGEN_SEARCHENGINE], ["YES"]) +fi AC_ARG_ENABLE([doxygen-pdf-output], [AS_HELP_STRING([--enable-doxygen-pdf-output], @@ -999,7 +1012,6 @@ AM_CONDITIONAL(BUILD_DISKLESS, [test x$enable_diskless = xyes]) AM_CONDITIONAL(BUILD_MMAP, [test x$enable_mmap = xyes]) AM_CONDITIONAL(BUILD_DOCS, [test x$enable_doxygen = xyes]) AM_CONDITIONAL(SHOW_DOXYGEN_TAG_LIST, [test x$enable_doxygen_tasks = xyes]) -AM_CONDITIONAL(SERVER_SIDE_SEARCH, [test x$enable_doxygen_server_side_search = xyes]) # If the machine doesn't have a long long, and we want netCDF-4, then # we've got problems! diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 93a754ff3..a3cd2f628 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -7,6 +7,8 @@ IF(ENABLE_DOXYGEN) FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.html ${CMAKE_CURRENT_SOURCE_DIR}/images ${CMAKE_CURRENT_SOURCE_DIR}/*.doc ${CMAKE_CURRENT_SOURCE_DIR}/*.xml ${CMAKE_CURRENT_SOURCE_DIR}/*.m4 ${CMAKE_CURRENT_SOURCE_DIR}/*.texi) FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) + + # Set abs_top_srcdir to work with the autotools # doxyfile template. SET(abs_top_srcdir ${CMAKE_SOURCE_DIR}) @@ -16,7 +18,6 @@ IF(ENABLE_DOXYGEN) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) - # Create auth.md by combining auth.md.in and oc2/ocauth.md ADD_CUSTOM_TARGET(auth_doc ALL diff --git a/docs/Doxyfile.in b/docs/Doxyfile.in index cd7b596f7..e54366399 100644 --- a/docs/Doxyfile.in +++ b/docs/Doxyfile.in @@ -1120,7 +1120,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = @DOXYGEN_HEADER_FILE@ # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1142,7 +1142,7 @@ HTML_FOOTER = @abs_top_srcdir@/docs/footer.html # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = +HTML_STYLESHEET = @DOXYGEN_CSS_FILE@ # The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- # defined cascading style sheet that is included after the standard style sheets @@ -1550,7 +1550,7 @@ MATHJAX_CODEFILE = # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -SEARCHENGINE = YES +SEARCHENGINE = @DOXYGEN_SEARCHENGINE@ # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There @@ -1562,7 +1562,7 @@ SEARCHENGINE = YES # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. -SERVER_BASED_SEARCH = @SERVER_SIDE_SEARCH@ +SERVER_BASED_SEARCH = NO # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file diff --git a/docs/release.css b/docs/release.css new file mode 100644 index 000000000..629b88756 --- /dev/null +++ b/docs/release.css @@ -0,0 +1,29 @@ +.tabs { + width: 100% !important; +} + +.tabs ul.tablist { + width: 100% !important; +} + +.tabs ul.tablist li.linkMenu select#versions { + vertical-align: middle; + height: ; + margin: 8px 0 0 10px !important; + padding: 0; +} + +.tabs ul.tablist li.searchForm { + float: right; + padding: 0; + margin: 0; +} + +.tabs ul.tablist li.searchForm form#cse-search-box { + float: right; + margin: 8px 10px 0 0; +} +.tabs ul.tablist li.searchForm form#cse-search-box input#search { + border-radius: 5px; + margin: 0 5px 0 0; +} diff --git a/docs/release_header.html b/docs/release_header.html new file mode 100644 index 000000000..d6d784b06 --- /dev/null +++ b/docs/release_header.html @@ -0,0 +1,92 @@ + + + +
+ + + +
+ $projectname
+ $projectnumber
+
+ $projectbrief
+ |
+
+
+
+
+ $projectbrief
+ |
+
+
+
+
+ + + + + | + + +