refactor(doc): Use cmake APP_VERSION in conf.py
This also moves the doc generation completely into cmake (no more Makefile). To generate the docs the project needs to first be configured and then `make doc` can be run. The approach used is leaned on the cmake's project own use of Sphinx: Utilities/Sphinx/CMakeLists.txt
This commit is contained in:
parent
fc2d2db76f
commit
2c42bae09f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,7 +1,6 @@
|
|||||||
/build/*
|
/build/*
|
||||||
/doc/config
|
/doc/config
|
||||||
/include/settings.hpp
|
/include/settings.hpp
|
||||||
/man/polybar.1
|
|
||||||
/polybar
|
/polybar
|
||||||
/polybar-msg
|
/polybar-msg
|
||||||
/tags
|
/tags
|
||||||
|
1
doc/.gitignore
vendored
1
doc/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
build
|
|
@ -94,16 +94,43 @@ install(FILES config
|
|||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Documentation {{{
|
# Documentation {{{
|
||||||
|
configure_file(conf.py.in conf.py @ONLY)
|
||||||
|
|
||||||
add_custom_target(doc ALL
|
set(SPHINX_FLAGS "" CACHE STRING "Flags to pass to sphinx-build")
|
||||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc
|
separate_arguments(sphinx_flags UNIX_COMMAND "${SPHINX_FLAGS}")
|
||||||
COMMAND make html man)
|
|
||||||
|
|
||||||
install(DIRECTORY build/html/
|
set(doc_path "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
|
||||||
|
# We want to run `sphinx-build` with the following builders
|
||||||
|
set(doc_builders "html" "man")
|
||||||
|
|
||||||
|
# Name of all documentation targets
|
||||||
|
set(doc_targets "")
|
||||||
|
|
||||||
|
foreach(builder ${doc_builders})
|
||||||
|
set(doc_target "doc_${builder}")
|
||||||
|
set(builder_log "builder-${builder}.log")
|
||||||
|
add_custom_target(${doc_target}
|
||||||
|
COMMAND sphinx-build
|
||||||
|
-b ${builder}
|
||||||
|
-c "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
-d "${CMAKE_CURRENT_BINARY_DIR}/doctrees"
|
||||||
|
${sphinx_flags}
|
||||||
|
"${CMAKE_SOURCE_DIR}/doc"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${builder}" > ${builder_log}
|
||||||
|
COMMENT "sphinx-build ${builder}: see doc/${builder_log}")
|
||||||
|
|
||||||
|
list(APPEND doc_targets ${doc_target})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Dummy target that depends on all documentation targets
|
||||||
|
add_custom_target(doc ALL DEPENDS ${doc_targets})
|
||||||
|
|
||||||
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
|
||||||
DESTINATION share/doc/polybar
|
DESTINATION share/doc/polybar
|
||||||
COMPONENT doc)
|
COMPONENT doc)
|
||||||
|
|
||||||
install(FILES build/man/polybar.1
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man/polybar.1
|
||||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1
|
||||||
COMPONENT doc)
|
COMPONENT doc)
|
||||||
# }}}
|
# }}}
|
||||||
|
19
doc/Makefile
19
doc/Makefile
@ -1,19 +0,0 @@
|
|||||||
# Minimal makefile for Sphinx documentation
|
|
||||||
#
|
|
||||||
|
|
||||||
# You can set these variables from the command line.
|
|
||||||
SPHINXOPTS =
|
|
||||||
SPHINXBUILD = sphinx-build
|
|
||||||
SOURCEDIR = .
|
|
||||||
BUILDDIR = build
|
|
||||||
|
|
||||||
# Put it first so that "make" without argument is like "make help".
|
|
||||||
help:
|
|
||||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
||||||
|
|
||||||
.PHONY: help Makefile
|
|
||||||
|
|
||||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
||||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
||||||
%: Makefile
|
|
||||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@ -11,7 +11,11 @@ The documentation uses [Sphinx](http://www.sphinx-doc.org/en/stable/) with the "
|
|||||||
[`sphinx_rtd_theme`](https://github.com/rtfd/sphinx_rtd_theme/) to generate the documentation, so you will need to
|
[`sphinx_rtd_theme`](https://github.com/rtfd/sphinx_rtd_theme/) to generate the documentation, so you will need to
|
||||||
have those installed.
|
have those installed.
|
||||||
|
|
||||||
You can then run `make html` inside this folder and sphinx will generate the html documentation inside `doc/build/html`.
|
To generate the documentation you first need to configure polybar the same as when you compile it (`cmake ..` in `build`
|
||||||
Open `doc/build/html/index.html` to read the documentation in the browser.
|
folder).
|
||||||
|
After that you can run `make doc` to generate all of the documentation or `make doc_html` or `make doc_man` to only
|
||||||
|
generate the html documentation or the man pages.
|
||||||
|
|
||||||
With `make man` it will generate the man pages in the `doc/build/man` folder.
|
Open `build/doc/html/index.html` to read the documentation in the browser.
|
||||||
|
|
||||||
|
The manual pages are placed in `build/doc/man`.
|
||||||
|
@ -24,8 +24,7 @@ copyright = ''
|
|||||||
author = 'Polybar Team'
|
author = 'Polybar Team'
|
||||||
|
|
||||||
# The short X.Y version
|
# The short X.Y version
|
||||||
# TODO set this dynamically
|
version = '@APP_VERSION@'
|
||||||
version = '3.2.1'
|
|
||||||
# The full version, including alpha/beta/rc tags
|
# The full version, including alpha/beta/rc tags
|
||||||
release = version
|
release = version
|
||||||
|
|
||||||
@ -43,7 +42,7 @@ extensions = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['@doc_path@/_templates']
|
||||||
|
|
||||||
# The suffix(es) of source filenames.
|
# The suffix(es) of source filenames.
|
||||||
# You can specify multiple suffix as a list of string:
|
# You can specify multiple suffix as a list of string:
|
||||||
@ -86,7 +85,7 @@ html_theme = 'sphinx_rtd_theme'
|
|||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
html_static_path = ['_static']
|
html_static_path = ['@doc_path@/_static']
|
||||||
|
|
||||||
# Custom sidebar templates, must be a dictionary that maps document names
|
# Custom sidebar templates, must be a dictionary that maps document names
|
||||||
# to template names.
|
# to template names.
|
Loading…
Reference in New Issue
Block a user