# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
-# TODO: write those in the new format, and load them via FIND_PACKAGE():
-#INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindPARMETIS.cmake)
-#INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMETIS.cmake)
-#INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSCOTCH.cmake)
-#INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSPLITTER.cmake)
-#INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindRENUMBER.cmake)
#IF(WIN32)
-# INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake)
+# INCLUDE(${PROJECT_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake)
#ENDIF(WIN32)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
SET(XVERSION 0x0${${PROJECT_NAME_UC}_MAJOR_VERSION}0${${PROJECT_NAME_UC}_MINOR_VERSION}0${${PROJECT_NAME_UC}_PATCH_VERSION})
SET(VERSION_DEV "0")
+#
+# Kernel detection comes before user options to be
+# able to take previous values of SALOME_USE_MPI, SALOME_BUILD_DOC, etc ...
+#
+IF(NOT SALOME_MED_STANDALONE)
+ SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "Path to the Salome KERNEL")
+ IF(EXISTS ${KERNEL_ROOT_DIR})
+ LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files")
+ INCLUDE(SalomeMacros)
+ FIND_PACKAGE(SalomeKERNEL REQUIRED)
+ ELSE(EXISTS ${KERNEL_ROOT_DIR})
+ MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR or turn option SALOME_MED_STANDALONE to ON !")
+ ENDIF(EXISTS ${KERNEL_ROOT_DIR})
+ LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files")
+ FIND_PACKAGE(SalomePThread REQUIRED) # for MEDCouplingCorba/Test for EDF
+ FIND_PACKAGE(SalomeOmniORB REQUIRED)
+ELSE(NOT SALOME_MED_STANDALONE)
+ LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local_without_kernel/cmake_files")
+ INCLUDE(SalomeMacros)
+ENDIF(NOT SALOME_MED_STANDALONE)
+
#
# User options
# ============
+INCLUDE(CMakeDependentOption)
OPTION(SALOME_MED_STANDALONE "Build MED without CORBA bindings. When OFF, exchange to PARAVIS is disabled." OFF)
OPTION(SALOME_MED_MICROMED "Build MED without MED file dependancy." OFF)
OPTION(SALOME_MED_ENABLE_PYTHON "Build PYTHON bindings." ON)
+OPTION(SALOME_MED_ENABLE_PARTITIONER "Build MEDPartitioner." ON)
+OPTION(SALOME_MED_ENABLE_RENUMBER "Build Renumber." ON)
OPTION(SALOME_USE_MPI "To build ParaMEDMEM." OFF)
OPTION(SALOME_BUILD_GUI "Build GUI of MED." ON)
OPTION(SALOME_BUILD_TESTS "Build MED tests." ON)
OPTION(SALOME_BUILD_DOC "Build MED doc." ON)
+CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_METIS "Enable metis graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF)
+CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_SCOTCH "Enable scotch graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;NOT SALOME_USE_MPI" OFF)
+CMAKE_DEPENDENT_OPTION(SALOME_MED_PARTITIONER_PARMETIS "Enable parmetis graph librarie in MEDPartitioner." ON "SALOME_MED_ENABLE_PARTITIONER;SALOME_USE_MPI" OFF)
+
#
# Set list of prerequisites
INCLUDE(SalomeMacros)
ENDIF(NOT SALOME_MED_STANDALONE)
+LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files")
+
IF(NOT SALOME_MED_MICROMED)
FIND_PACKAGE(SalomeHDF5 REQUIRED)
FIND_PACKAGE(SalomeMEDFile REQUIRED)
+ IF(SALOME_MED_ENABLE_PARTITIONER)
+ FIND_PACKAGE(SalomeLibXml2 REQUIRED)
+ IF(SALOME_MED_PARTITIONER_METIS)
+ FIND_PACKAGE(SalomeMetis REQUIRED)
+ ENDIF(SALOME_MED_PARTITIONER_METIS)
+ IF(SALOME_MED_PARTITIONER_SCOTCH)
+ FIND_PACKAGE(SalomeScotch REQUIRED)
+ ENDIF(SALOME_MED_PARTITIONER_SCOTCH)
+ ENDIF(SALOME_MED_ENABLE_PARTITIONER)
ENDIF(NOT SALOME_MED_MICROMED)
IF(SALOME_BUILD_GUI)
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files")
+ENABLE_TESTING() # let it outsite because even if SALOME_BUILD_TESTS is OFF, python tests that not need additional compilation can be run.
+
IF(SALOME_BUILD_TESTS)
- ENABLE_TESTING()
FIND_PACKAGE(SalomeCppUnit REQUIRED)
ENDIF(SALOME_BUILD_TESTS)
IF(SALOME_USE_MPI)
FIND_PACKAGE(SalomeMPI REQUIRED)
+ IF(SALOME_MED_PARTITIONER_PARMETIS)
+ FIND_PACKAGE(SalomeParMetis REQUIRED)
+ ENDIF(SALOME_MED_PARTITIONER_PARMETIS)
ENDIF(SALOME_USE_MPI)
+IF(SALOME_MED_ENABLE_RENUMBER)
+ FIND_PACKAGE(SalomeBoost)
+ENDIF(SALOME_MED_ENABLE_RENUMBER)
+
IF(SALOME_BUILD_DOC)
FIND_PACKAGE(SalomeDoxygen REQUIRED)
FIND_PACKAGE(SalomeGraphviz) # Remains optional even here.
IF(SALOME_MED_ENABLE_PYTHON)
FIND_PACKAGE(SalomePython REQUIRED)
FIND_PACKAGE(SalomeSWIG REQUIRED)
+ IF(NOT SALOME_MED_STANDALONE)
+ FIND_PACKAGE(SalomeOmniORBPy REQUIRED)
+ ENDIF(NOT SALOME_MED_STANDALONE)
ENDIF(SALOME_MED_ENABLE_PYTHON)
-IF(NOT SALOME_MED_MICROMED)
- FIND_PACKAGE(SalomeMEDFile REQUIRED)
-ENDIF(NOT SALOME_MED_MICROMED)
-
-
# Directories
#
# Directories have to be given after prerequisites (to be able to use
# Create the configuration files:
# - in the build tree:
-# Ensure the variables are always defined for the configure:
-
+# Ensure the variables are always defined for the configure (even if empty):
+SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}")
+SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}")
SET(MEDFILE_ROOT_DIR "${MEDFILE_ROOT_DIR}")
SET(HDF5_ROOT_DIR "${HDF5_ROOT_DIR}")
SET(MPI_ROOT_DIR "${MPI_ROOT_DIR}")
${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake
INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE}"
PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE CMAKE_INSTALL_PREFIX
- MEDFILE_ROOT_DIR HDF5_ROOT_DIR OMNIORB_ROOT_DIR PTHREAD_ROOT_DIR
+ KERNEL_ROOT_DIR GUI_ROOT_DIR MEDFILE_ROOT_DIR
+ HDF5_ROOT_DIR OMNIORB_ROOT_DIR PTHREAD_ROOT_DIR
SWIG_ROOT_DIR PYTHON_ROOT_DIR CPPUNIT_ROOT_DIR GRAPHVIZ_ROOT_DIR DOXYGEN_ROOT_DIR
SPHINX_ROOT_DIR)