+ SET(XDR_DEFAULT_OPTION OFF)
+ENDIF()
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_MEDLOADER_USE_XDR "Enable use of XDR for SauvReader." ${XDR_DEFAULT_OPTION} "NOT MEDCOUPLING_MICROMED" OFF)
+
+IF(MEDCOUPLING_BUILD_STATIC)
+ SET(BUILD_SHARED_LIBS 0)
+ SET(CMAKE_POSITION_INDEPENDENT_CODE 1) # -fPIC option
+ELSE()
+ SET(BUILD_SHARED_LIBS 1)
+ENDIF()
+
+IF(${MEDCOUPLING_PARTITIONER_PARMETIS} AND ${MEDCOUPLING_PARTITIONER_METIS})
+ MESSAGE(FATAL_ERROR "ParMetis and Metis are mutually exclusive! Make a choice (options MEDCOUPLING_PARTITIONER_METIS and MEDCOUPLING_PARTITIONER_PARMETIS).")
+ENDIF()
+
+IF(${MEDCOUPLING_PARTITIONER_PTSCOTCH} AND ${MEDCOUPLING_PARTITIONER_SCOTCH})
+ MESSAGE(FATAL_ERROR "PTScotch and Scotch are mutually exclusive! Make a choice (options MEDCOUPLING_PARTITIONER_SCOTCH and MEDCOUPLING_PARTITIONER_PTSCOTCH).")
+ENDIF()
+
+#
+# Set list of prerequisites
+# =========================
+
+IF(NOT MEDCOUPLING_MICROMED)
+ FIND_PACKAGE(SalomeHDF5 REQUIRED)
+ FIND_PACKAGE(SalomeMEDFile REQUIRED)
+ # XDR stuff
+ IF(MEDCOUPLING_MEDLOADER_USE_XDR)
+ FIND_PACKAGE(SalomeXDR REQUIRED)
+ ENDIF(MEDCOUPLING_MEDLOADER_USE_XDR)
+ # End of XDR Stuff
+ IF(MEDCOUPLING_ENABLE_PARTITIONER)
+ FIND_PACKAGE(SalomeLibXml2)
+ SALOME_LOG_OPTIONAL_PACKAGE(LibXml2 MEDCOUPLING_ENABLE_PARTITIONER)
+ IF(MEDCOUPLING_PARTITIONER_METIS)
+ FIND_PACKAGE(SalomeMetis)
+ SALOME_LOG_OPTIONAL_PACKAGE(Metis MEDCOUPLING_PARTITIONER_METIS)
+ IF(SalomeMetis_FOUND)
+ ADD_DEFINITIONS("-DMED_ENABLE_METIS")
+ ENDIF()
+ ENDIF(MEDCOUPLING_PARTITIONER_METIS)
+ IF(MEDCOUPLING_PARTITIONER_SCOTCH)
+ FIND_PACKAGE(SalomeScotch)
+ SALOME_LOG_OPTIONAL_PACKAGE(Scotch MEDCOUPLING_PARTITIONER_SCOTCH)
+ IF(SalomeScotch_FOUND)
+ ADD_DEFINITIONS("-DMED_ENABLE_SCOTCH")
+ ENDIF()
+ ENDIF(MEDCOUPLING_PARTITIONER_SCOTCH)
+ ENDIF(MEDCOUPLING_ENABLE_PARTITIONER)
+ENDIF(NOT MEDCOUPLING_MICROMED)
+
+ENABLE_TESTING() # let it outsite because even if MEDCOUPLING_BUILD_TESTS is OFF, python tests that not need additional compilation can be run.
+
+IF(MEDCOUPLING_BUILD_TESTS)
+ FIND_PACKAGE(SalomeCppUnit)
+ SALOME_LOG_OPTIONAL_PACKAGE(CppUnit SALOME_BUILD_TESTS)
+ENDIF(MEDCOUPLING_BUILD_TESTS)
+
+IF(MEDCOUPLING_USE_MPI)
+ FIND_PACKAGE(SalomeMPI REQUIRED)
+ ADD_DEFINITIONS("-DHAVE_MPI")
+ IF(MEDCOUPLING_PARTITIONER_PARMETIS)
+ FIND_PACKAGE(SalomeParMetis)
+ SALOME_LOG_OPTIONAL_PACKAGE(ParMetis MEDCOUPLING_PARTITIONER_PARMETIS)
+ IF (SalomeParMetis_FOUND)
+ ADD_DEFINITIONS("-DMED_ENABLE_PARMETIS")
+ ENDIF()
+ ENDIF(MEDCOUPLING_PARTITIONER_PARMETIS)
+ IF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
+ FIND_PACKAGE(SalomePTScotch)
+ SALOME_LOG_OPTIONAL_PACKAGE(PTScotch MEDCOUPLING_PARTITIONER_PTSCOTCH)
+ IF(SalomePTScotch_FOUND)
+ ADD_DEFINITIONS("-DMED_ENABLE_PTSCOTCH")
+ ENDIF(SalomePTScotch_FOUND)
+ ENDIF(MEDCOUPLING_PARTITIONER_PTSCOTCH)
+ENDIF(MEDCOUPLING_USE_MPI)
+
+IF(MEDCOUPLING_ENABLE_RENUMBER)
+ FIND_PACKAGE(SalomeBoost)
+ SALOME_LOG_OPTIONAL_PACKAGE(Boost MEDCOUPLING_ENABLE_RENUMBER)
+ENDIF(MEDCOUPLING_ENABLE_RENUMBER)
+
+IF(MEDCOUPLING_ENABLE_PYTHON)
+ FIND_PACKAGE(SalomePythonInterp)
+ FIND_PACKAGE(SalomePythonLibs)
+ FIND_PACKAGE(SalomeNumPySciPy)
+ FIND_PACKAGE(SalomeSWIG)
+ SALOME_LOG_OPTIONAL_PACKAGE(PythonInterp MEDCOUPLING_ENABLE_PYTHON)
+ SALOME_LOG_OPTIONAL_PACKAGE(PythonLibs MEDCOUPLING_ENABLE_PYTHON)
+ SALOME_LOG_OPTIONAL_PACKAGE(SWIG MEDCOUPLING_ENABLE_PYTHON)
+ IF ("${PYTHON_VERSION_MAJOR}" STREQUAL "2")
+ IF("${PYTHON_VERSION_MINOR}" LESS "7")
+ MESSAGE(FATAL_ERROR "MEDCoupling's Python requires at least Python 2.7 (you seem to have ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}). Upgrade your Python, or turn off MEDCOUPLING_ENABLE_PYTHON")
+ ENDIF()
+ ENDIF()
+ IF ("${PYTHON_VERSION_MAJOR}" STREQUAL "3")
+ MESSAGE(STATUS "Using Python 3")
+ ENDIF()
+ENDIF(MEDCOUPLING_ENABLE_PYTHON)
+
+IF(MEDCOUPLING_BUILD_DOC)
+ FIND_PACKAGE(SalomeDoxygen)
+ FIND_PACKAGE(SalomeGraphviz)
+ FIND_PACKAGE(SalomeSphinx)
+ SALOME_LOG_OPTIONAL_PACKAGE(Doxygen MEDCOUPLING_BUILD_DOC)
+ SALOME_LOG_OPTIONAL_PACKAGE(Graphviz MEDCOUPLING_BUILD_DOC)
+ SALOME_LOG_OPTIONAL_PACKAGE(Sphinx MEDCOUPLING_BUILD_DOC)
+ENDIF(MEDCOUPLING_BUILD_DOC)
+
+# Detection report
+SALOME_PACKAGE_REPORT_AND_CHECK()
+
+# Directories
+#
+# Directories have to be given after prerequisites (to be able to use
+# Python version string for example).
+# ===========
+SET(MEDCOUPLING_INSTALL_BINS bin CACHE PATH "Install path: MEDCoupling binaries")
+SET(MEDCOUPLING_INSTALL_LIBS lib CACHE PATH "Install path: MEDCoupling libs")
+SET(MEDCOUPLING_INSTALL_HEADERS include CACHE PATH "Install path: MEDCoupling headers")
+SET(MEDCOUPLING_INSTALL_SCRIPT_SCRIPTS ${MEDCOUPLING_INSTALL_BINS} CACHE PATH "Install path: MEDCoupling scripts")
+SET(MEDCOUPLING_INSTALL_TESTS tests CACHE PATH "Install path: MEDCoupling tests")
+# SET(MEDCOUPLING_INSTALL_SCRIPT_DATA ${MEDCOUPLING_INSTALL_BINS} CACHE PATH "Install path: MEDCoupling script data")
+SET(MEDCOUPLING_INSTALL_SCRIPT_PYTHON ${MEDCOUPLING_INSTALL_BINS} CACHE PATH "Install path: MEDCoupling Python scripts")
+SET(MEDCOUPLING_INSTALL_CMAKE_LOCAL cmake_files CACHE PATH "Install path: local MEDCoupling CMake files")
+
+IF(MEDCOUPLING_ENABLE_PYTHON)
+ SET(_pydir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
+ SET(MEDCOUPLING_INSTALL_PYTHON ${_pydir} CACHE PATH "Install path: MEDCoupling Python stuff")
+ SET(MEDCOUPLING_INSTALL_PYTHON_SHARED ${MEDCOUPLING_INSTALL_PYTHON}/shared_modules CACHE PATH
+ "Install path: MEDCoupling Python shared modules")
+ENDIF(MEDCOUPLING_ENABLE_PYTHON)
+
+SET(MEDCOUPLING_INSTALL_RES share/resources CACHE PATH "Install path: MEDCoupling resources")
+SET(MEDCOUPLING_INSTALL_DOC share/doc CACHE PATH "Install path: MEDCoupling documentation")
+
+# Med specific:
+
+SET(MEDCOUPLING_INSTALL_RES_DATA "${MEDCOUPLING_INSTALL_RES}/med" CACHE PATH "Install path: MEDCoupling specific data")
+#SET(MEDCOUPLING_INSTALL_RES_SCRIPTS "${MEDCOUPLING_INSTALL_RES}/med" CACHE PATH "Install path: MEDCouplng specific scripts")
+
+MARK_AS_ADVANCED(MEDCOUPLING_INSTALL_BINS MEDCOUPLING_INSTALL_LIBS MEDCOUPLING_INSTALL_IDLS MEDCOUPLING_INSTALL_HEADERS)
+MARK_AS_ADVANCED(MEDCOUPLING_INSTALL_SCRIPT_SCRIPTS MEDCOUPLING_INSTALL_SCRIPT_DATA MEDCOUPLING_INSTALL_SCRIPT_PYTHON)
+MARK_AS_ADVANCED(MEDCOUPLING_INSTALL_APPLISKEL_SCRIPTS MEDCOUPLING_INSTALL_APPLISKEL_PYTHON MEDCOUPLING_INSTALL_CMAKE MEDCOUPLING_INSTALL_CMAKE_LOCAL MEDCOUPLING_INSTALL_RES)
+MARK_AS_ADVANCED(MEDCOUPLING_INSTALL_PYTHON MEDCOUPLING_INSTALL_PYTHON_SHARED MEDCOUPLING_INSTALL_RES_DATA MEDCOUPLING_INSTALL_DOC)
+
+# Header configuration
+# ====================
+SALOME_XVERSION(${PROJECT_NAME})
+SALOME_CONFIGURE_FILE(MEDCoupling_version.h.in MEDCoupling_version.h INSTALL ${MEDCOUPLING_INSTALL_HEADERS})
+
+# Accumulate environment variables for MED module
+#SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${MEDCOUPLING_INSTALL_BINS}
+# ${CMAKE_INSTALL_PREFIX}/${MEDCOUPLING_INSTALL_PYTHON})
+#SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH NOCHECK ${CMAKE_INSTALL_PREFIX}/${MEDCOUPLING_INSTALL_LIBS})
+
+
+# Sources
+# ========
+IF(WIN32)
+ ADD_DEFINITIONS("-D_USE_MATH_DEFINES")