Salome HOME
Merge V9_dev branch into master
authorrnv <rnv@opencascade.com>
Wed, 6 Jun 2018 11:43:11 +0000 (14:43 +0300)
committerrnv <rnv@opencascade.com>
Thu, 14 Jun 2018 08:37:38 +0000 (11:37 +0300)
cmake/FindGUI.cmake
cmake/FindQwt.cmake
cmake/FindSalomeOpenCASCADE.cmake [new file with mode: 0644]
cmake/FindSphinx.cmake
cmake/UseSphinx.cmake [new file with mode: 0644]
config/salome.xml

index 55d26381c33000a632fe18e5a53f325ec3b740f1..5b5b8a75eee3cfbc054ee72993dbefa14f8f7357 100644 (file)
 
 SET(GUI_CXXFLAGS -I${GUI_ROOT_DIR}/include/salome)
 
+# idl
+FIND_LIBRARY(SalomeIDLGUI SalomeIDLGUI ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeIDLPVServer SalomeIDLPVServer ${GUI_ROOT_DIR}/lib/salome)
+# src
 FIND_LIBRARY(caf caf ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(CAM CAM ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(CASCatch CASCatch ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(DDS DDS ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(Event Event ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(GLViewer GLViewer ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(GraphicsView GraphicsView ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeGuiHelpers SalomeGuiHelpers ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(ImageComposer ImageComposer ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(LightApp LightApp ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(LogWindow LogWindow ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(ObjBrowser ObjBrowser ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeObject SalomeObject ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(OCCViewer OCCViewer ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(ObjBrowser ObjBrowser ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(OpenGLUtils OpenGLUtils ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PVServerService PVServerService ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PVServerServiceLoader PVServerServiceLoader ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PVViewer PVViewer ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(Plot2d Plot2d ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(PyConsole PyConsole ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(PyInterp PyInterp ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomePrs SalomePrs ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PyViewer PyViewer ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(QDS QDS ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(qtx qtx ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(QxScene QxScene ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeApp SalomeApp ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeIDLGUI SalomeIDLGUI ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeObject SalomeObject ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomePrs SalomePrs ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SalomePyQtGUILight SalomePyQtGUILight ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SalomePyQtGUI SalomePyQtGUI ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomePyQt SalomePyQt ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomePy SalomePy ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeSession SalomeSession ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeStyle SalomeStyle ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SOCC SOCC ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SPlot2d SPlot2d ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(std std ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SUITApp SUITApp ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(suit suit ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SUITApp SUITApp ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SVTK SVTK ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeApp SalomeApp ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeSession SalomeSession ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(SalomeStyle SalomeStyle ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(ToolsGUI ToolsGUI ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(ViewerTools ViewerTools ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(ViewerData ViewerData ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(VTKViewer VTKViewer ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(vtkEDFOverloads vtkEDFOverloads ${GUI_ROOT_DIR}/lib/paraview)
-FIND_LIBRARY(vtkTools vtkTools ${GUI_ROOT_DIR}/lib/salome)
-FIND_LIBRARY(SalomeGuiHelpers SalomeGuiHelpers ${GUI_ROOT_DIR}/lib/salome)
 FIND_LIBRARY(SalomeTreeData SalomeTreeData ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(VTKViewer VTKViewer ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(ViewerData ViewerData ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(ViewerTools ViewerTools ${GUI_ROOT_DIR}/lib/salome)
+# tools
+FIND_LIBRARY(PyConsole PyConsole ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PyEditor PyEditor ${GUI_ROOT_DIR}/lib/salome)
+FIND_LIBRARY(PyInterp PyInterp ${GUI_ROOT_DIR}/lib/salome)
index e4993611b1c7febbb1a86407d04503d6d6f3e2b0..fcb1c0dd78a6213a0e9f40afa28b4a129926a90a 100644 (file)
 #
 #  The header qwt_plot.h is looked for.
 #  The libraries 
-#      qwt-qt4, qwt
+#      qwt-qt<qt_version>, qwt
 #  are looked for.
+#  Here, <qt_version> is a Qt version being used.
+#  For this to work correctly, Qt detection procedure must preceed Qwt one.
 #
 
 IF(NOT Qwt_FIND_QUIETLY)
     MESSAGE(STATUS "Looking for Qwt ...")
 ENDIF()
 
+IF(QT_VERSION)
+  STRING(REPLACE "." ";" _qwt_qt_version_list ${QT_VERSION})
+  LIST(GET _qwt_qt_version_list 0 _qwt_qt_version_major)
+ELSE()
+  # by default use version 5 of Qt
+  SET(_qwt_qt_version_major "5")
+ENDIF()
+
+FIND_PATH(QWT_INCLUDE_DIR qwt_plot.h PATH_SUFFIXES qwt-qt${_qwt_qt_version_major})
 FIND_PATH(QWT_INCLUDE_DIR qwt_plot.h PATH_SUFFIXES qwt)
-FIND_PATH(QWT_INCLUDE_DIR qwt_plot.h PATH_SUFFIXES qwt-qt4)
 
 IF(WIN32)
   SET(QWT_DEFINITIONS "-DQWT_DLL")
@@ -43,18 +53,18 @@ IF(WIN32)
   ENDIF()
   FIND_LIBRARY(QWT_LIBRARY qwt)
 ELSE(WIN32)
-  # Give precedence to qwt-qt4 library.
+  # Give precedence to qwt-qt<version> library.
   # Note: on some platforms there can be several native qwt libraries linked against different 
   #       versions of Qt; for example /usr/lib/libqwt.so for qwt linked against Qt 3 and
-  #       /usr/lib/libqwt-qt4.so for qwt linked against Qt 4.
-  #       We need only qt4-based qwt library, so we search libqwt-qt4, then libqwt library
-  #       first ignoring system paths, then including system paths.
-  FIND_LIBRARY(QWT_LIBRARY qwt-qt4 PATH_SUFFIXES lib lib64 PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
-  FIND_LIBRARY(QWT_LIBRARY qwt-qt4 PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
+  #       /usr/lib/libqwt-qt4.so for qwt linked against Qt 4, etc.
+  #       We need only qwt library built with version of Qt we use, so we search libqwt-qt<version>,
+  #       then libqwt library; first ignoring system paths, then including system paths.
+  FIND_LIBRARY(QWT_LIBRARY qwt-qt${_qwt_qt_version_major} PATH_SUFFIXES lib lib64 PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
+  FIND_LIBRARY(QWT_LIBRARY qwt-qt${_qwt_qt_version_major} PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
   FIND_LIBRARY(QWT_LIBRARY qwt PATH_SUFFIXES lib lib64 PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
   FIND_LIBRARY(QWT_LIBRARY qwt PATHS "${QWT_ROOT_DIR}" NO_DEFAULT_PATH)
-  FIND_LIBRARY(QWT_LIBRARY qwt-qt4 PATH_SUFFIXES lib lib64)
-  FIND_LIBRARY(QWT_LIBRARY qwt-qt4)
+  FIND_LIBRARY(QWT_LIBRARY qwt-qt${_qwt_qt_version_major} PATH_SUFFIXES lib lib64)
+  FIND_LIBRARY(QWT_LIBRARY qwt-qt${_qwt_qt_version_major})
   FIND_LIBRARY(QWT_LIBRARY qwt PATH_SUFFIXES lib lib64)
   FIND_LIBRARY(QWT_LIBRARY qwt)
 ENDIF(WIN32)
diff --git a/cmake/FindSalomeOpenCASCADE.cmake b/cmake/FindSalomeOpenCASCADE.cmake
new file mode 100644 (file)
index 0000000..684f4a2
--- /dev/null
@@ -0,0 +1,48 @@
+# Copyright (C) 2013-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+# Author: Roman NIKOLAEV
+#
+
+# OpenCascade detection for Salome
+#
+#  !! Please read the generic detection procedure in SalomeMacros.cmake !!
+#
+
+# TODO: RNV: Check different OCCT layouts !!!
+SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(OpenCASCADE OpenCASCADE_INCLUDE_DIR 2)
+
+IF(OpenCASCADE_FOUND)
+  
+  IF(NOT CAS_FIND_QUIETLY)
+      MESSAGE(STATUS "Found OpenCascade version: ${OpenCASCADE_VERSION}")
+  ENDIF()
+
+  # OPENCASCADE definitions
+  SET(OpenCascade_DEFINITIONS ${OpenCASCADE_C_FLAGS} ${OpenCASCADE_CXX_FLAGS})
+  SET(OpenCascade_LDFLAGS ${OpenCASCADE_LINKER_FLAGS})
+
+  SALOME_ACCUMULATE_HEADERS(OpenCASCADE_INCLUDE_DIR)
+  SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${OpenCASCADE_LIBRARY_DIR})
+
+ELSE()
+  # TODO: Detect OpenCASCADE if it is distributed without CMake configuration.
+  IF(NOT CAS_FIND_QUIETLY)
+    MESSAGE(STATUS "Could not find OpenCASCADE ...")
+  ENDIF()
+ENDIF()
\ No newline at end of file
index 9914763e044a1f09b70b7bbbf9d29af0140e24b4..668888327ca2ca6c922eb8f03b470f8cf59d79e5 100644 (file)
@@ -2,8 +2,16 @@
 #
 # Output variables:
 #   SPHINX_EXECUTABLE - path to the Sphinx executable
-#   SPHINX_PYTHONPATH - path to the Sphinx Python modules                 
-# 
+#   SPHINX_PYTHONPATH - path to the Sphinx Python modules
+#
+# Additional features:
+#   Sphinx_EXTENSIONS - optional variable which can be used to specify
+#                       a list of required Sphinx extensions; not found
+#                       extensions will be reported during the detection
+#                       procedure; by default this variable is empty.
+#                       Example:
+#                           set(Sphinx_EXTENSIONS sphinxcontrib.napoleon)
+#
 ###########################################################################
 # Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 
 FIND_PROGRAM(SPHINX_EXECUTABLE
             NAMES sphinx-build sphinx-build-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
-            PATH_SUFFIXES Scripts)          
+            PATH_SUFFIXES Scripts)
 FIND_PROGRAM(SPHINX_APIDOC_EXECUTABLE
              NAMES sphinx-apidoc sphinx-apidoc-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
             PATH_SUFFIXES Scripts)
+FIND_PROGRAM(SPHINX_INTL_EXECUTABLE
+             NAMES sphinx-intl sphinx-intl-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}
+            PATH_SUFFIXES Scripts)
+
 
 # Get root dir locally, going up two levels from the exec:
 GET_FILENAME_COMPONENT(_tmp_ROOT_DIR "${SPHINX_EXECUTABLE}" PATH)
@@ -45,7 +57,7 @@ ENDIF()
 
 # Handle the standard arguments of the find_package() command:
 INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sphinx REQUIRED_VARS SPHINX_EXECUTABLE SPHINX_APIDOC_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sphinx REQUIRED_VARS SPHINX_EXECUTABLE SPHINX_APIDOC_EXECUTABLE SPHINX_INTL_EXECUTABLE)
 
 IF(SPHINX_EXECUTABLE)
   EXECUTE_PROCESS(COMMAND ${SPHINX_EXECUTABLE} "--version" OUTPUT_VARIABLE SPHINX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -57,3 +69,12 @@ IF(SPHINX_EXECUTABLE)
     SET(SPHINX_THEME "classic")
   ENDIF()
 ENDIF(SPHINX_EXECUTABLE)
+
+FOREACH(_ext ${Sphinx_EXTENSIONS})
+  EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "import ${_ext}; print 'ok'" OUTPUT_VARIABLE _has_ext ERROR_QUIET)
+  IF(_has_ext)
+    MESSAGE(STATUS "Required Sphinx extension '${_ext}' has been found!")
+  ELSE()
+    MESSAGE(WARNING "Required Sphinx extension '${_ext}' is not found!")
+  ENDIF()
+ENDFOREACH()
diff --git a/cmake/UseSphinx.cmake b/cmake/UseSphinx.cmake
new file mode 100644 (file)
index 0000000..1ee25d1
--- /dev/null
@@ -0,0 +1,153 @@
+###########################################################################
+# Copyright (C) 2007-2018  CEA/DEN, EDF R&D, OPEN CASCADE
+#
+# Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+include(SalomeMacros)
+
+IF(NOT Sphinx_FOUND)
+   MESSAGE(FATAL_ERROR "Developer error -> UseSphinx file should be included after detection of the sphinx!")
+ENDIF()
+
+function(JOIN OUTPUT GLUE)
+    set(_TMP_RESULT "")
+    set(_GLUE "") # effective glue is empty at the beginning
+    foreach(arg ${ARGN})
+        set(_TMP_RESULT "${_TMP_RESULT}${_GLUE}${arg}")
+        set(_GLUE "${GLUE}")
+    endforeach()
+    set(${OUTPUT} "${_TMP_RESULT}" PARENT_SCOPE)
+endfunction()
+
+#----------------------------------------------------------------------------
+# ADD_MULTI_LANG_DOCUMENTATION is a macro which adds sphinx multi-language 
+# documentation.
+#
+# USAGE: ADD_MULTI_LANG_DOCUMENTATION(TARGET <target_name> MODULE <module_name>
+#                                     LANGUAGES <languages_list>)
+#
+# ARGUMENTS:
+# TARGET_NAME : IN : target name for the documentation
+# MODULE : IN : SALOME module name
+# LANGUAGES : IN : list of the languages
+#----------------------------------------------------------------------------
+MACRO(ADD_MULTI_LANG_DOCUMENTATION)
+  # Common options
+  SET(PAPEROPT_a4 "-D latex_paper_size=a4")
+
+  # Parse input argument
+  PARSE_ARGUMENTS(MULTI_LANG "TARGET_NAME;MODULE;LANGUAGES" "" ${ARGN})
+
+  # Content of the executable file to generate documentation
+  SET(CMDS)
+
+  JOIN(SPHINX_EXE " " ${SPHINX_EXECUTABLE})
+  STRING(REPLACE "$$" "$" SPHINX_EXE ${SPHINX_EXE})
+
+  IF(MULTI_LANG_LANGUAGES)
+    # 1. Options for generation POT files
+    SET(POT_SPHINXOPTS "-c ${CMAKE_CURRENT_BINARY_DIR} -b gettext ${CMAKE_CURRENT_SOURCE_DIR}/input potfiles")
+    SET(CMDS "${CMDS} ${SPHINX_EXE} ${POT_SPHINXOPTS}\n")
+
+    # 2. Update PO files options
+    SET(LANGS "")
+    FOREACH(lang ${MULTI_LANG_LANGUAGES})
+      SET(LANGS "${LANGS} -l ${lang}")
+    ENDFOREACH()
+    SET(PO_SPHINXOPTS "${PO_SPHINXOPTS} update -p potfiles ${LANGS}")
+    SET(CMDS "${CMDS} ${SPHINX_INTL_EXECUTABLE} ${PO_SPHINXOPTS}\n")
+
+    # 3. Build MO files
+    SET(CMDS "${CMDS} ${SPHINX_INTL_EXECUTABLE} build\n")
+  ENDIF()
+
+  # 4. Options for EN documentation
+  SET(SPHINXOPTS "-c ${CMAKE_CURRENT_BINARY_DIR} -d doctrees -b html ${PAPEROPT_a4} ${CMAKE_CURRENT_SOURCE_DIR}/input ${MULTI_LANG_MODULE}")
+  SET(CMDS "${CMDS} ${SPHINX_EXE} ${SPHINXOPTS}\n")
+
+  # 5. Options for other documentation
+  FOREACH(lang ${MULTI_LANG_LANGUAGES})
+    SET(${lang}_SPHINXOPTS "-c ${CMAKE_CURRENT_BINARY_DIR} -d doctrees -b html ${PAPEROPT_a4} -D language=${lang} ${CMAKE_CURRENT_SOURCE_DIR}/input ${MULTI_LANG_MODULE}_${lang}")
+    SET(CMDS "${CMDS} ${SPHINX_EXE} ${${lang}_SPHINXOPTS}\n")
+  ENDFOREACH()
+
+  # 6. Create command file
+  IF(WIN32)
+    SET(_ext "bat")
+    SET(_call_cmd "call")
+  ELSE()
+    SET(_ext "sh")
+    SET(_call_cmd ".")
+  ENDIF()
+  
+  SET(_env)
+  FOREACH(_item ${_${PROJECT_NAME}_EXTRA_ENV})
+    FOREACH(_val ${_${PROJECT_NAME}_EXTRA_ENV_${_item}})
+      IF(WIN32)
+        IF(${_item} STREQUAL "LD_LIBRARY_PATH")
+          SET(_item PATH)
+        ENDIF()
+        STRING(REPLACE "/" "\\" _env "${_env} @SET ${_item}=${_val};%${_item}%\n")        
+      ELSEIF(APPLE)
+        IF(${_item} STREQUAL "LD_LIBRARY_PATH")
+          SET(_env "${_env} export DYLD_LIBRARY_PATH=${_val}:\${DYLD_LIBRARY_PATH}\n")
+        ELSE()
+          SET(_env "${_env} export ${_item}=${_val}:\${${_item}}\n")
+        ENDIF()
+      ELSE()
+        SET(_env "${_env} export ${_item}=${_val}:\${${_item}}\n")
+      ENDIF()
+    ENDFOREACH()
+  ENDFOREACH()
+  
+  SET(_script ${CMAKE_CURRENT_BINARY_DIR}/build_doc.${_ext})
+  FILE(WRITE ${_script} ${_env}${CMDS})
+
+  # 7. Create custom target
+  ADD_CUSTOM_TARGET(${MULTI_LANG_TARGET_NAME}
+                   # 1. Copy existing po files
+                   COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/locale ${CMAKE_CURRENT_BINARY_DIR}/locale
+                   # 2.  Generate documentation
+                   COMMAND ${_call_cmd} ${_script}
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                  )
+
+  # 8. Update PO files
+  FOREACH(lang ${MULTI_LANG_LANGUAGES})
+    FILE(GLOB _pfiles ${CMAKE_CURRENT_BINARY_DIR}/locale/${lang}/LC_MESSAGES/*.po)
+    ADD_CUSTOM_COMMAND(TARGET ${MULTI_LANG_TARGET_NAME} POST_BUILD
+      COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/locale/${lang}/LC_MESSAGES)
+    FOREACH(pofile ${_pfiles})
+      GET_FILENAME_COMPONENT(fn_wo_path ${pofile} NAME)
+      ADD_CUSTOM_COMMAND(TARGET ${MULTI_LANG_TARGET_NAME} POST_BUILD
+                         COMMAND ${CMAKE_COMMAND} -E
+                         copy_if_different ${pofile} ${CMAKE_CURRENT_SOURCE_DIR}/locale/${lang}/LC_MESSAGES/${fn_wo_path})
+    ENDFOREACH()
+  ENDFOREACH()
+
+  # 9. Make clean files/folders
+  SET(make_clean_files ${MULTI_LANG_MODULE} doctrees potfiles locale)
+  FOREACH(lang ${MULTI_LANG_LANGUAGES})
+    SET(make_clean_files ${make_clean_files} ${MULTI_LANG_MODULE}_${lang})
+  ENDFOREACH()
+  SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")
+
+ENDMACRO(ADD_MULTI_LANG_DOCUMENTATION)
\ No newline at end of file
index 1e83e15fdc946cf868ed498f07b57bfeebde2206..ad2b5be6796ab07f1d35c48f8a090d5392a2c4df 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <!DOCTYPE config>
-<config comment="SALOME 8.4" name="V8_4_0">
+<config comment="SALOME 8.5" name="V8_5_0">
   <product name="alabaster" version="0.7.6" />
   <product name="babel" version="2.0" />
   <product name="boost" version="1.52.0">
@@ -25,9 +25,9 @@
       <patch comment="Gcc 6 compatibility" name="freeimage.004_gcc66.patch" sha1="16a744c44edd656313518a2c4395faf3c2231b29" />
     </patches>
   </product>
-  <product name="freetype" version="2.4.11" />
+  <product name="freetype" version="2.9.0" />
   <product name="gmsh" version="3.0.5" />
-  <product name="gl2ps" version="1.3.9-svn-20160620">
+  <product name="gl2ps" version="1.4.0-20170729">
     <patches>
       <patch comment="Fix problem with missing additional libraries" name="gl2ps.001_libs.patch" sha1="59fb1261603d11392ce26a9c98561fa2777d826c" />
     </patches>
     </patches>
   </product>
   <product name="hdf5" version="1.8.14" />
-  <product name="homardtool" version="11.10" />
+  <product name="homardtool" version="11.11" />
   <product name="h5py" version="2.5.0" />
   <product name="jinja2" version="2.7.3" />
-  <product name="lapack" version="3.5.0" />
+  <product name="lapack" version="3.7.0" />
   <product name="libxml2" version="2.9.0">
     <patches>
       <patch comment="Fix crash on 64bits platforms" name="libxml2.001_64bits_crash.patch" sha1="0fd898b7998ada0ffe6cd6806c0a76564c275386" />
     </patches>
   </product>
   <product name="markupsafe" version="0.23" />
-  <product name="matplotlib" version="1.4.3">
+  <product name="matplotlib" version="2.0.2">
     <patches>
       <patch comment="Fix build procedure: create configuration file properly" name="matplotlib.001_build_procedure.patch" sha1="38611bfd4148bfb80740c6126a52560b7fecd8cf" />
     </patches>
@@ -59,7 +59,7 @@
       <patch comment="Compatibility with gcc6" name="medfile.002_gcc6.patch" sha1="f625c9ee091ece9e5b7c2aa0c443ed8dfc64e982" />
     </patches>
   </product>
-  <product name="meshgems" version="2.5-7" />
+  <product name="meshgems" version="2.6-4" />
   <product name="metis" version="5.1.0" />
   <product name="mpich2" version="1.4.1p1" />
   <product name="mpi4py" version="1.3.1" />
@@ -69,8 +69,8 @@
     </patches>
   </product>
   <product name="nose" version="1.3.7" />
-  <product name="numpy" version="1.9.2" />
-  <product name="occt" version="88af3920" />
+  <product name="numpy" version="1.12.1" />
+  <product name="occt" version="7.2.0p3" />
   <product name="omniorb" version="4.1.6">
     <patches>
       <patch comment="Fix compilation issues" name="omniorb.001_omninotify_compilation.patch" sha1="2ea6f693df5dc9a69cf315b04e9c77f57712a88e" />
@@ -78,7 +78,7 @@
     </patches>
   </product>
   <product name="omniorbpy" version="3.6" />
-  <product name="opencv" version="2.4.6.1">
+  <product name="opencv" version="2.4.13.5">
     <patches>
       <patch comment="Fix compilation problem (reduce optimizaion level)" name="opencv.001_compile.patch" sha1="1daad6f39cd53502c5062a366fa5a543489cd632"/>
       <patch comment="Gcc 6 compatibility patch" name="opencv.002_gcc6.patch" sha1="64f8954aadd739037dadac69f7f4ca3a2cf7edd5"/>
@@ -90,7 +90,7 @@
       <patch comment="Gcc 4.4 compatibility" name="paco++.001_gcc44_compat.patch" sha1="b1d28cbe87caa37177432aadaa612e792eecf1ea" />
     </patches>
   </product>
-  <product name="paraview" version="5.4.0-463c0633">
+  <product name="paraview" version="5.4.1p2-b5c4c893">
     <patches>
       <patch comment="Fix problem with installation of VTKTargets.cmake" name="paraview.001_vtk_targets.patch" sha1="6e2024fc8503ef05d0ce493bc4804ff844e6a51a" />
       <patch comment="Fix compilation of VisItBridge utility" name="paraview.002_visitbridge.patch" sha1="34d2f6f064775c288e5aaba9ad72893c6de6fd72" />
     </patches>
   </product>
   <product name="qwt" version="6.1.2" />
-  <product name="scipy" version="0.15.1" />
-  <product name="scotch" version="5.1.11">
+  <product name="scipy" version="0.18.1" />
+  <product name="scotch" version="6.0.4">
     <patches>
       <patch comment="Fix problem with linking to pthreads" name="scotch.001_pthreads.patch" sha1="10b8e8c0fa1da10f3fb6e266cf3dbddad1755512" />
     </patches>
   </product>
-  <product name="setuptools" version="0.6c11" />
+  <product name="setuptools" version="38.4.0" />
   <product name="sip" version="4.19.3" />
   <product name="six" version="1.9.0" />
   <product name="snowballstemmer" version="1.2.0" />
-  <product name="solvespace" version="2.1">
-    <patches>
-      <patch comment="To build w/o GUI" name="solvespace.001_nogui.patch" sha1="5f29477e1c27daf0a87879d3a841d0485c053a46" />
-    </patches>
-  </product>
   <product name="sphinx" version="1.2.3" />
+  <product name="sphinx-inlt" version="0.9.10" />
+  <product name="sphinxcontrib-napoleon" version="2.0.12" />
   <product name="sphinxrtdtheme" version="0.1.9" />
-  <product name="swig" version="2.0.8" />
+  <product name="swig" version="2.0.12" />
   <product name="tcltk" version="8.6.0" />
   <product name="tclx" version="8.4.1" />
   <product name="tbb" version="4.2.4" />
     </patches>
   </product>
   <product name="planegcs" version="0.16" />
-  <product comment="SALOME Geometry module" name="geom" version="V8_4_0" />
-  <product comment="SALOME GUI module" name="gui" version="V8_4_0" />
-  <product comment="SALOME HexaBlock module" name="hexablock" version="V8_4_0" />
-  <product comment="SALOME Homard module" name="homard" version="V8_4_0" />
-  <product comment="SALOME JobManager module" name="jobmanager" version="V8_4_0" />
-  <product comment="SALOME Kernel module" name="kernel" version="V8_4_0" />
-  <product comment="SALOME Med module" name="med" version="V8_4_0" />
-  <product comment="SALOME ParaVis module" name="paravis" version="V8_4_0" />
-  <product comment="SALOME Mesh module" name="smesh" version="V8_4_0" />
-  <product comment="SALOME YACS module" name="yacs" version="V8_4_0" />
-  <product comment="SALOME MG-CadSurf meshing plugin" name="blsurfplugin" version="V8_4_0" />
-  <product comment="SALOME MG-Tetra meshing plugin" name="ghs3dplugin" version="V8_4_0" />
-  <product comment="SALOME MG-Tetra_HPC meshing plugin" name="ghs3dprlplugin" version="V8_4_0" />
-  <product comment="SALOME MG-Hexa meshing plugin" name="hexoticplugin" version="V8_4_0" />
-  <product comment="SALOME HexaBlock meshing plugin" name="hexablockplugin" version="V8_4_0" />
-  <product comment="SALOME MG-Hybrid meshing plugin" name="hybridplugin" version="V8_4_0" />
-  <product comment="SALOME Netgen meshing plugin" name="netgenplugin" version="V8_4_0" />
-  <product comment="SALOME Gmsh meshing plugin" name="gmshplugin" version="V8_4_0" />
-  <product comment="SALOME Documentation tool" name="documentation" version="V8_4_0" />
-  <product comment="SALOME Hxx2salome tool" name="hxx2salome" version="V8_4_0" />
-  <product comment="libBatch library" name="libbatch" version="V2_3_2" />
-  <product comment="SALOME MedCoupling library" name="medcoupling" version="V8_4_0" />
-  <product comment="SALOME Tutorial" name="tutorial" version="V8_4_0" />
-  <product comment="SALOME YacsGen tool" name="yacsgen" version="V8_4_0" />
-  <product comment="SALOME AtomGen sample module" name="atomgen" version="V8_4_0" />
-  <product comment="SALOME Atomic sample module" name="atomic" version="V8_4_0" />
-  <product comment="SALOME AtomSolv sample module" name="atomsolv" version="V8_4_0" />
-  <product comment="SALOME Calculator sample module" name="calculator" version="V8_4_0" />
-  <product comment="SALOME Component sample module" name="component" version="V8_4_0" />
-  <product comment="SALOME data files" name="samples" version="V8_4_0" />
-  <product comment="SALOME DscCode sample module" name="dsccode" version="V8_4_0" />
-  <product comment="SALOME Hello sample module" name="hello" version="V8_4_0" />
-  <product comment="SALOME Light sample module" name="light" version="V8_4_0" />
-  <product comment="SALOME PyCalculator sample module" name="pycalculator" version="V8_4_0" />
-  <product comment="SALOME PyHello sample module" name="pyhello" version="V8_4_0" />
-  <product comment="SALOME PyLight sample module" name="pylight" version="V8_4_0" />
-  <product comment="SALOME Randomizer sample module" name="randomizer" version="V8_4_0" />
-  <product comment="SALOME Sierpinsky sample module" name="sierpinsky" version="V8_4_0" />
+  <product comment="SALOME Geometry module" name="geom" version="V8_5_0" />
+  <product comment="SALOME GUI module" name="gui" version="V8_5_0" />
+  <product comment="SALOME HexaBlock module" name="hexablock" version="V8_5_0" />
+  <product comment="SALOME Homard module" name="homard" version="V8_5_0" />
+  <product comment="SALOME JobManager module" name="jobmanager" version="V8_5_0" />
+  <product comment="SALOME Kernel module" name="kernel" version="V8_5_0" />
+  <product comment="SALOME Med module" name="med" version="V8_5_0" />
+  <product comment="SALOME ParaVis module" name="paravis" version="V8_5_0" />
+  <product comment="SALOME Mesh module" name="smesh" version="V8_5_0" />
+  <product comment="SALOME YACS module" name="yacs" version="V8_5_0" />
+  <product comment="SALOME MG-CadSurf meshing plugin" name="blsurfplugin" version="V8_5_0" />
+  <product comment="SALOME MG-Tetra meshing plugin" name="ghs3dplugin" version="V8_5_0" />
+  <product comment="SALOME MG-Tetra_HPC meshing plugin" name="ghs3dprlplugin" version="V8_5_0" />
+  <product comment="SALOME MG-Hexa meshing plugin" name="hexoticplugin" version="V8_5_0" />
+  <product comment="SALOME HexaBlock meshing plugin" name="hexablockplugin" version="V8_5_0" />
+  <product comment="SALOME MG-Hybrid meshing plugin" name="hybridplugin" version="V8_5_0" />
+  <product comment="SALOME Netgen meshing plugin" name="netgenplugin" version="V8_5_0" />
+  <product comment="SALOME Gmsh meshing plugin" name="gmshplugin" version="V8_5_0" />
+  <product comment="SALOME Documentation tool" name="documentation" version="V8_5_0" />
+  <product comment="SALOME Hxx2salome tool" name="hxx2salome" version="V8_5_0" />
+  <product comment="libBatch library" name="libbatch" version="V2_4_0" />
+  <product comment="SALOME MedCoupling library" name="medcoupling" version="V8_5_0" />
+  <product comment="SALOME Tutorial" name="tutorial" version="V8_5_0" />
+  <product comment="SALOME YacsGen tool" name="yacsgen" version="V8_5_0" />
+  <product comment="SALOME AtomGen sample module" name="atomgen" version="V8_5_0" />
+  <product comment="SALOME Atomic sample module" name="atomic" version="V8_5_0" />
+  <product comment="SALOME AtomSolv sample module" name="atomsolv" version="V8_5_0" />
+  <product comment="SALOME Calculator sample module" name="calculator" version="V8_5_0" />
+  <product comment="SALOME Component sample module" name="component" version="V8_5_0" />
+  <product comment="SALOME data files" name="samples" version="V8_5_0" />
+  <product comment="SALOME DscCode sample module" name="dsccode" version="V8_5_0" />
+  <product comment="SALOME Hello sample module" name="hello" version="V8_5_0" />
+  <product comment="SALOME Light sample module" name="light" version="V8_5_0" />
+  <product comment="SALOME PyCalculator sample module" name="pycalculator" version="V8_5_0" />
+  <product comment="SALOME PyHello sample module" name="pyhello" version="V8_5_0" />
+  <product comment="SALOME PyLight sample module" name="pylight" version="V8_5_0" />
+  <product comment="SALOME Randomizer sample module" name="randomizer" version="V8_5_0" />
+  <product comment="SALOME Sierpinsky sample module" name="sierpinsky" version="V8_5_0" />
 </config>