Pass versions from CMake to Sphinx

This commit is contained in:
Victor Zverovich 2016-06-02 06:41:25 -07:00
parent 0d9870dd9e
commit 9492b9ff03
4 changed files with 31 additions and 22 deletions

View File

@ -5,7 +5,8 @@ if (NOT DOXYGEN)
endif () endif ()
add_custom_target(doc add_custom_target(doc
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build.py ${FMT_VERSION} SOURCES build.py) COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build.py ${FMT_VERSION}
SOURCES build.py conf.py _templates/layout.html)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
DESTINATION share/doc/fmt OPTIONAL) DESTINATION share/doc/fmt OPTIONAL)

View File

@ -8,8 +8,9 @@
{# Google Analytics #} {# Google Analytics #}
<script> <script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;
a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-20116650-4', 'fmtlib.net'); ga('create', 'UA-20116650-4', 'fmtlib.net');
ga('send', 'pageview'); ga('send', 'pageview');
@ -17,9 +18,11 @@
{% endblock %} {% endblock %}
{%- macro searchform(classes, button) %} {%- macro searchform(classes, button) %}
<form class="{{classes}}" role="search" action="{{ pathto('search') }}" method="get"> <form class="{{classes}}" role="search" action="{{ pathto('search') }}"
method="get">
<div class="form-group"> <div class="form-group">
<input type="text" name="q" class="form-control" {{ 'placeholder="Search"' if not button }} > <input type="text" name="q" class="form-control"
{{ 'placeholder="Search"' if not button }} >
</div> </div>
<input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" /> <input type="hidden" name="area" value="default" />
@ -36,7 +39,8 @@
<div class="navbar-content"> <div class="navbar-content">
{# Brand and toggle get grouped for better mobile display #} {# Brand and toggle get grouped for better mobile display #}
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> <button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span> <span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
@ -49,18 +53,19 @@
<div class="collapse navbar-collapse"> <div class="collapse navbar-collapse">
<ul class="nav navbar-nav"> <ul class="nav navbar-nav">
<li class="dropdown"> <li class="dropdown">
{# TODO: update versions automatically #} <a href="#" class="dropdown-toggle" data-toggle="dropdown"
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" role="button" aria-expanded="false">{{ version }}
aria-expanded="false">{{ version }} <span class="caret"></span></a> <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
<li><a href="http://fmtlib.net/2.0.0/">2.0.0</a></li> {% for v in versions.split(',') %}
<li><a href="http://fmtlib.net/1.1.0/">1.1.0</a></li> <li><a href="http://fmtlib.net/{{v}}">{{v}}</a></li>
<li><a href="http://fmtlib.net/1.0.0/">1.0.0</a></li> {% endfor %}
</ul> </ul>
</li> </li>
{% for name in ['Contents', 'Usage', 'API', 'Syntax'] %} {% for name in ['Contents', 'Usage', 'API', 'Syntax'] %}
{% if pagename == name.lower() %} {% if pagename == name.lower() %}
<li class="active"><a href="{{name.lower()}}.html">{{name}} <span class="sr-only">(current)</span></a></li> <li class="active"><a href="{{name.lower()}}.html">{{name}}
<span class="sr-only">(current)</span></a></li>
{%else%} {%else%}
<li><a href="{{name.lower()}}.html">{{name}}</a></li> <li><a href="{{name.lower()}}.html">{{name}}</a></li>
{%endif%} {%endif%}
@ -81,10 +86,11 @@
<p class="lead">Small, safe and fast formatting library</p> <p class="lead">Small, safe and fast formatting library</p>
<div class="btn-group" role="group"> <div class="btn-group" role="group">
<a class="btn btn-success" <a class="btn btn-success"
href="https://github.com/fmtlib/fmt/releases/download/2.0.0/cppformat-2.0.0.zip"> href="https://github.com/fmtlib/fmt/releases/download/2.0.0/cppformat-2.0.0.zip">
<span class="glyphicon glyphicon-download"></span> Download <span class="glyphicon glyphicon-download"></span> Download
</a> </a>
<button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button> <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>
{# TODO: update downloads automatically #}
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="https://github.com/fmtlib/fmt/releases/download/2.0.0/cppformat-2.0.0.zip">Version 2.0.0</a></li> <li><a href="https://github.com/fmtlib/fmt/releases/download/2.0.0/cppformat-2.0.0.zip">Version 2.0.0</a></li>
<li><a href="https://github.com/fmtlib/fmt/releases/download/1.1.0/cppformat-1.1.0.zip">Version 1.1.0</a></li> <li><a href="https://github.com/fmtlib/fmt/releases/download/1.1.0/cppformat-1.1.0.zip">Version 1.1.0</a></li>
@ -112,7 +118,8 @@
{%- block sidebarlogo %} {%- block sidebarlogo %}
{%- if logo %} {%- if logo %}
<p class="logo"><a href="{{ pathto(master_doc) }}"> <p class="logo"><a href="{{ pathto(master_doc) }}">
<img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/> <img class="logo" src="{{ pathto('_static/' + logo, 1) }}"
alt="Logo"/>
</a></p> </a></p>
{%- endif %} {%- endif %}
{%- endblock %} {%- endblock %}

View File

@ -92,12 +92,14 @@ def build_docs(version='dev', **kwargs):
if p.returncode != 0: if p.returncode != 0:
raise CalledProcessError(p.returncode, cmd) raise CalledProcessError(p.returncode, cmd)
html_dir = os.path.join(work_dir, 'html') html_dir = os.path.join(work_dir, 'html')
versions = [v for v in ['3.0.0', '2.0.0', '1.1.0'] if v != version]
check_call(['sphinx-build', check_call(['sphinx-build',
'-Dbreathe_projects.format=' + doxyxml_dir, '-Dbreathe_projects.format=' + doxyxml_dir,
'-Dversion=' + version, '-Drelease=' + version, '-Dversion=' + version, '-Drelease=' + version,
'-Aversion=' + version, '-b', 'html', doc_dir, html_dir]) '-Aversion=' + version, '-Aversions=' + ','.join(versions),
'-b', 'html', doc_dir, html_dir])
try: try:
check_call(['lessc', #'--clean-css', check_call(['lessc', '--clean-css',
'--include-path=' + os.path.join(doc_dir, 'bootstrap'), '--include-path=' + os.path.join(doc_dir, 'bootstrap'),
os.path.join(doc_dir, 'fmt.less'), os.path.join(doc_dir, 'fmt.less'),
os.path.join(html_dir, '_static', 'fmt.css')]) os.path.join(html_dir, '_static', 'fmt.css')])

View File

@ -228,8 +228,7 @@ latex_documents = [
# One entry per manual page. List of tuples # One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'format', u'format Documentation', ('index', 'fmt', u'fmt documentation', [u'Victor Zverovich'], 1)
[u'Victor Zverovich'], 1)
] ]
# If true, show URL addresses after external links. # If true, show URL addresses after external links.
@ -242,8 +241,8 @@ man_pages = [
# (source start file, target name, title, author, # (source start file, target name, title, author,
# dir menu entry, description, category) # dir menu entry, description, category)
texinfo_documents = [ texinfo_documents = [
('index', 'format', u'format Documentation', ('index', 'fmt', u'fmt documentation',
u'Victor Zverovich', 'format', 'One line description of project.', u'Victor Zverovich', 'fmt', 'One line description of project.',
'Miscellaneous'), 'Miscellaneous'),
] ]