From e9409ea8b6207a6af3f782591e1b9d7d1ec64069 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Andr=C3=A9=20Ribes?= Date: Wed, 16 Jun 2010 17:24:16 +0200 Subject: [PATCH] Ajout de la documentation Ajout de la compilation optionelle --- Makefile.am | 5 + adm_local/check_scipy.m4 | 35 ++++++ adm_local/check_sphinx.m4 | 55 +++++++++ adm_local/make_common_starter.am | 2 +- configure.ac | 73 +++++++++--- doc/Makefile.am | 101 ++++++++++++++++ doc/conf.py | 194 +++++++++++++++++++++++++++++++ doc/index.rst | 16 +++ src/Makefile.am | 6 +- src/tests/Makefile.am | 3 +- 10 files changed, 470 insertions(+), 20 deletions(-) create mode 100644 adm_local/check_scipy.m4 create mode 100644 adm_local/check_sphinx.m4 create mode 100644 doc/Makefile.am create mode 100644 doc/conf.py create mode 100644 doc/index.rst diff --git a/Makefile.am b/Makefile.am index 1aa61a8..ab24f24 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,8 @@ include $(top_srcdir)/adm_local/make_common_starter.am + SUBDIRS = idl resources src bin +if SPHINX_IS_OK +SUBDIRS += doc +endif + ACLOCAL_AMFLAGS = -I adm_local diff --git a/adm_local/check_scipy.m4 b/adm_local/check_scipy.m4 new file mode 100644 index 0000000..662d002 --- /dev/null +++ b/adm_local/check_scipy.m4 @@ -0,0 +1,35 @@ +dnl Copyright (C) 2010 EDF R&D +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl +dnl Author: André Ribes, andre.ribes@edf.fr, EDF R&D + +AC_DEFUN([CHECK_SCIPY],[ +AC_REQUIRE([CHECK_PYTHON])dnl + +scipy_ok=no + +scipydir=`$PYTHON -c "import scipy;print scipy.get_include()" 2>/dev/null` + +if test -d "$scipydir"; then + scipy_ok=yes +fi + +AC_MSG_RESULT(for scipy: $scipy_ok) + +])dnl +dnl diff --git a/adm_local/check_sphinx.m4 b/adm_local/check_sphinx.m4 new file mode 100644 index 0000000..c9cc4c6 --- /dev/null +++ b/adm_local/check_sphinx.m4 @@ -0,0 +1,55 @@ +dnl Copyright (C) 2006-2010 CEA/DEN, EDF R&D +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_SPHINX],[ + +AC_CHECKING(for sphinx doc generator) + +sphinx_ok=yes +dnl where is sphinx ? +AC_PATH_PROG(SPHINX,sphinx-build) +if test "x$SPHINX" = "x" +then + AC_MSG_WARN(sphinx not found) + sphinx_ok=no +fi + +dnl Can I load ths sphinx module ? +dnl This code comes from the ax_python_module macro. +if test -z $PYTHON; +then + PYTHON="python" +fi +PYTHON_NAME=`basename $PYTHON` +AC_MSG_CHECKING($PYTHON_NAME module: sphinx) + $PYTHON -c "import sphinx" 2>/dev/null + if test $? -eq 0; + then + AC_MSG_RESULT(yes) + eval AS_TR_CPP(HAVE_PYMOD_sphinx)=yes + else + AC_MSG_RESULT(no) + eval AS_TR_CPP(HAVE_PYMOD_sphinx)=no + sphinx_ok=no + fi + +AM_CONDITIONAL(SPHINX_IS_OK, [test x"$sphinx_ok" = xyes]) + +])dnl +dnl diff --git a/adm_local/make_common_starter.am b/adm_local/make_common_starter.am index 7bb83d1..44e4165 100644 --- a/adm_local/make_common_starter.am +++ b/adm_local/make_common_starter.am @@ -24,7 +24,7 @@ admlocalm4dir = $(admlocaldir)/unix/config_files sharedpkgpythondir =$(pkgpythondir)/shared_modules # Documentation directory -docdir = $(datadir)/doc/salome +docdir = $(datadir)/doc/salome/adao IDL_INCLUDES = -I$(KERNEL_ROOT_DIR)/idl/salome KERNEL_LIBS= -L$(KERNEL_ROOT_DIR)/lib/salome -lSalomeContainer -lOpUtil -lSalomeDSCContainer -lSalomeDSCSuperv -lSalomeDatastream -lSalomeDSCSupervBasic -lCalciumC diff --git a/configure.ac b/configure.ac index 7859ba0..4e47246 100644 --- a/configure.ac +++ b/configure.ac @@ -1,27 +1,42 @@ +dnl Copyright (C) 2010 EDF R&D +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl +dnl Author: André Ribes, andre.ribes@edf.fr, EDF R&D -AC_INIT(adao, 1.0) +AC_INIT(adao, 0.1) AC_CONFIG_AUX_DIR(adm_local) AM_INIT_AUTOMAKE AM_CONFIG_HEADER(adao_config.h) - -dnl Check Salome Install -CHECK_KERNEL -if test "x$Kernel_ok" = "xno"; then - AC_MSG_ERROR([You must define a correct KERNEL_ROOT_DIR or use the --with-kernel= configure option !]) -fi +MODULE_NAME=adao +AC_SUBST(MODULE_NAME) AC_ENABLE_DEBUG(yes) AC_DISABLE_PRODUCTION + AC_PROG_LIBTOOL AC_PROG_CC AC_PROG_CXX -CHECK_F77 -CHECK_BOOST + +CHECK_KERNEL CHECK_OMNIORB CHECK_EFICAS - -MODULE_NAME=adao -AC_SUBST(MODULE_NAME) +CHECK_SCIPY +CHECK_SPHINX echo echo @@ -34,13 +49,17 @@ echo "Configuration Options Summary:" echo echo "Mandatory products:" echo " Threads ................ : $threads_ok" +echo " Python ................. : $python_ok" +echo " Scipy .................. : $scipy_ok" +echo +echo "SALOME Integration mandatory products:" echo " OmniOrb (CORBA) ........ : $omniORB_ok" echo " OmniOrbpy (CORBA) ...... : $omniORBpy_ok" -echo " Python ................. : $python_ok" -echo " Boost ................. : $boost_ok" echo " SALOME KERNEL .......... : $Kernel_ok" echo " Eficas ................. : $eficas_ok" echo +echo "Optional products:" +echo " Sphinx (for doc)........ : $threads_ok" echo "------------------------------------------------------------------------" echo @@ -50,16 +69,35 @@ fi if test "x$python_ok" = "xno"; then AC_MSG_ERROR([Python is required],1) fi +if test "x$scipy_ok" = "xno"; then + AC_MSG_ERROR([Scipy is required],1) +fi + +salome_module_ok=yes + if test "x$omniORB_ok" = "xno"; then - AC_MSG_ERROR([OmniOrb is required],1) + AC_MSG_WARN([OmniOrb is required for SALOME Module part]) + salome_module_ok=no fi if test "x$omniORBpy_ok" = "xno"; then - AC_MSG_ERROR([OmniOrbpy is required],1) + AC_MSG_WARN([OmniOrbpy is required for SALOME Module part]) + salome_module_ok=no fi if test "x$Kernel_ok" = "xno"; then - AC_MSG_ERROR([SALOME KERNEL is required],1) + AC_MSG_WARN([SALOME KERNEL is required for SALOME Module part - + You could define a correct KERNEL_ROOT_DIR or use the --with-kernel= configure option]) + salome_module_ok=no +fi +if test "x$eficas_ok" = "xno"; then + AC_MSG_WARN([Eficas is required for SALOME Module part]) + salome_module_ok=no fi +AM_CONDITIONAL(SALOME_MODULE, test x$salome_module_ok = xyes) + +if test "x$sphinx_ok" = "xno"; then + AC_MSG_WARN([Sphinx is required for ADAO documentation]) +fi AC_CONFIG_FILES([ Makefile @@ -79,5 +117,6 @@ AC_CONFIG_FILES([ src/tests/daSalome/test000_Blue_AnalysisFile.py bin/Makefile bin/qtEficas_adao_study.py + doc/Makefile ]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..88eda8c --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,101 @@ +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = $(top_builddir)/doc/build + +EXTRA_DIST = main.rst conf.py + +install-data-local: + make html + ${mkinstalldirs} $(DESTDIR)$(docdir) + cp -R $(BUILDDIR)/html $(DESTDIR)$(docdir) + +uninstall-local: + chmod -R +w $(DESTDIR)$(docdir) + rm -rf $(DESTDIR)$(docdir)/html + +clean-local: + -rm -rf $(top_builddir)/doc/build + + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(top_srcdir)/doc + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @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)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ADAO.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ADAO.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000..a2cfb7e --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,194 @@ +# -*- coding: utf-8 -*- +# +# ADAO documentation build configuration file, created by +# sphinx-quickstart on Wed Jun 16 15:48:00 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'ADAO' +copyright = u'2010, EDF R&D, Jean-Philippe Argaud, André Ribes' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '1.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# 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, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ADAOdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +latex_paper_size = 'a4' + +# The font size ('10pt', '11pt' or '12pt'). +latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'ADAO.tex', u'ADAO Documentation', + u'Jean-Philippe Argaud, André Ribes', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/doc/index.rst b/doc/index.rst new file mode 100644 index 0000000..667c83c --- /dev/null +++ b/doc/index.rst @@ -0,0 +1,16 @@ + +ADAO documentation +================== + +Contents: + +.. toctree:: + :maxdepth: 2 + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/src/Makefile.am b/src/Makefile.am index 6998b32..7212bbe 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1 +1,5 @@ -SUBDIRS = daComposant daSalome daEficas tests +SUBDIRS = daComposant tests + +if SALOME_MODULE +SUBDIRS += daSalome daEficas +endif diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index 54b6585..d7d6368 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -1,2 +1,3 @@ +if SALOME_MODULE SUBDIRS = daSalome - +endif -- 2.39.2