diff --git a/Makefile b/Makefile index 3cff13e..7d5ae56 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,10 @@ PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp epub latex latexpdf text man changes linkcheck doctest +CONDA_DIR = build/conda +CONDA_ENV_FILE = environment.yml + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp epub latex latexpdf text man changes linkcheck doctest env help: @echo "Please use \`make ' where is one of" @@ -31,6 +34,7 @@ help: @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" + @echo " env to create a conda environment with the needed packages" clean: -rm -rf $(BUILDDIR)/* @@ -111,3 +115,14 @@ doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." + +env: + @rm -rf $(CONDA_DIR) + @mkdir -p $(BUILDDIR) && mkdir -p $(CONDA_DIR) + @wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh\ + -O $(CONDA_DIR)/miniconda.sh + @bash $(CONDA_DIR)/miniconda.sh -f -b -p $(CONDA_DIR) > /dev/null &&\ + echo "Conda environment created successfully..." + @./$(CONDA_DIR)/bin/conda env create -q -f $(CONDA_ENV_FILE) > /dev/null &&\ + echo "Conda packages installed successfully..." + @echo "To use conda environment type:\nsource enter-env.sh" diff --git a/enter-env.sh b/enter-env.sh new file mode 100644 index 0000000..ed45947 --- /dev/null +++ b/enter-env.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ ! -n "${BASH_VERSION}" ]; then + echo "This script has to be sourced in bash!" + exit 1 +fi + +[[ "${BASH_SOURCE[0]}" != "${0}" ]] && SOURCED=1 || SOURCED=0 +if [ ${SOURCED} == 0 ]; then + echo "This script has to be sourced!" + exit 1 +fi + +CONDA_DIR=${PWD}/build/conda +CONDA_DIR_NAME=SymbiFlow-docs + +export PATH="${CONDA_DIR}/bin:$PATH" + +# Use Conda hook for user shell +SHELL_NAME=`basename $SHELL` +CONDA_HOOK_COMMAND="${CONDA_DIR}/bin/conda shell.${SHELL_NAME} hook" +eval "$(${CONDA_HOOK_COMMAND})" + +conda activate ${CONDA_DIR_NAME} diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..1260116 --- /dev/null +++ b/environment.yml @@ -0,0 +1,9 @@ +name: SymbiFlow-docs +channels: + - symbiflow + - conda-forge + - defaults +dependencies: + - pip + - pip: + - -r file:requirements.txt diff --git a/readthedocs.yml b/readthedocs.yml new file mode 100644 index 0000000..3db5256 --- /dev/null +++ b/readthedocs.yml @@ -0,0 +1,20 @@ +# .readthedocs.yml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: source/conf.py + +# Optionally build your docs in additional formats such as PDF and ePub +formats: [] + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.7 + +conda: + environment: environment.yml diff --git a/requirements.txt b/requirements.txt index f7489fc..fe3f55c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -Sphinx +Sphinx==2.0.0 git+http://github.com/SymbiFlow/sphinx_materialdesign_theme.git@master#egg=sphinx_symbiflow_theme sphinx-markdown-tables