Salome HOME
MEDReader ready -> debug is in progress.
[tools/medcoupling.git] / CMakeLists.txt
index 959fc7ca56a1c9c33734c6e2b81324db9ae26811..621eb595960c0305747d247fd748d489bf80c4bc 100644 (file)
 # 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)
 #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)
@@ -46,6 +42,27 @@ SET(VERSION ${${PROJECT_NAME_UC}_VERSION})
 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
 # ============
@@ -54,6 +71,7 @@ OPTION(SALOME_MED_STANDALONE "Build MED without CORBA bindings. When OFF, exchan
 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)
@@ -61,7 +79,8 @@ 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
 # =========================
@@ -82,11 +101,19 @@ ELSE(NOT SALOME_MED_STANDALONE)
   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)
 
@@ -113,8 +140,15 @@ 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.
@@ -124,13 +158,11 @@ ENDIF(SALOME_BUILD_DOC)
 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
@@ -241,8 +273,9 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets}
 # 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}")
@@ -263,7 +296,8 @@ CONFIGURE_PACKAGE_CONFIG_FILE(adm_local/cmake_files/${PROJECT_NAME}Config.cmake.
     ${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)