On Sat 11 Jul 2020 at 10:20 -0300, David Bremner wrote: > I don't love the use of exec, but it is getting unwieldy to pass
It's already a config file written in Python which is a terrible sin. So no need to apologise, I think it makes sense in this context. > configuration options on the sphinx-build command line, and I > anticipate further use of conditionals. > --- > configure | 8 ++++++++ > doc/Makefile.local | 2 +- > doc/conf.py | 11 ++++++++--- > 3 files changed, 17 insertions(+), 4 deletions(-) > > diff --git a/configure b/configure > index 80cbac4f..177432db 100755 > --- a/configure > +++ b/configure > @@ -1548,6 +1548,14 @@ NOTMUCH_HAVE_PYTHON3_PYTEST=${have_python3_pytest} > PLATFORM=${platform} > EOF > > +cat > sphinx.config <<EOF > +# Generate by configure, run from doc/conf.py Minor insignificant typo: Generated > +EOF > +if [ $WITH_EMACS = "1" ]; then > + printf "tags.add('WITH_EMACS')\n" >> sphinx.config > +fi > +printf "rsti_dir = '%s'\n" $(realpath emacs) >> sphinx.config > + > # Finally, after everything configured, inform the user how to continue. > cat <<EOF > > diff --git a/doc/Makefile.local b/doc/Makefile.local > index 769438ed..598b6028 100644 > --- a/doc/Makefile.local > +++ b/doc/Makefile.local > @@ -4,7 +4,7 @@ dir := doc > > # You can set these variables from the command line. > SPHINXOPTS := -q > -SPHINXBUILD = WITH_EMACS=${WITH_EMACS} RSTI_DIR=$(realpath emacs) > sphinx-build > +SPHINXBUILD = sphinx-build > DOCBUILDDIR := $(dir)/_build > > # Internal variables. > diff --git a/doc/conf.py b/doc/conf.py > index 70987ac5..fdff2a2c 100644 > --- a/doc/conf.py > +++ b/doc/conf.py > @@ -22,6 +22,13 @@ for pathdir in ['.', '..']: > with open(version_file,'r') as infile: > version=infile.read().replace('\n','') > > +# read generated config > +for pathdir in ['.', '..']: > + conf_file = os.path.join(location,pathdir,'sphinx.config') > + if os.path.exists(conf_file): > + with open(conf_file,'r') as infile: > + exec(''.join(infile.readlines())) > + > # The full version, including alpha/beta/rc tags. > release = version > > @@ -29,12 +36,10 @@ release = version > # directories to ignore when looking for source files. > exclude_patterns = ['_build'] > > -if os.environ.get('WITH_EMACS') == '1': > +if tags.has('WITH_EMACS'): > # Hacky reimplementation of include to workaround limitations of > # sphinx-doc > lines = ['.. include:: /../emacs/rstdoc.rsti\n\n'] # in the source tree > - rsti_dir = os.environ.get('RSTI_DIR') > - # the other files are from the build tree > for file in ('notmuch.rsti', 'notmuch-lib.rsti', 'notmuch-show.rsti', > 'notmuch-tag.rsti'): > lines.extend(open(rsti_dir+'/'+file)) > rst_epilog = ''.join(lines) _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-le...@notmuchmail.org