Salome HOME
UMesh.computeEnlargedNeighborsOfNodes
[tools/medcoupling.git] / CMakeLists.txt
index a21d110628e6477e80fb987ef0b1666668da8cbe..c38c24b3a215ceecbf381fe99f877650c14b4054 100644 (file)
@@ -17,7 +17,7 @@
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11 FATAL_ERROR)
 #INCLUDE(CMakeDependentOption)
 PROJECT(MEDCoupling C CXX)
 
@@ -30,14 +30,19 @@ CMAKE_POLICY(SET CMP0003 NEW)
 STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
 
 SET(${PROJECT_NAME_UC}_MAJOR_VERSION 8)
-SET(${PROJECT_NAME_UC}_MINOR_VERSION 0)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
 SET(${PROJECT_NAME_UC}_PATCH_VERSION 0)
 SET(${PROJECT_NAME_UC}_VERSION
   ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
 
-# Our own set of macros:
-LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_files")
-INCLUDE(SalomeMacros)
+# Common CMake macros
+SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake files")
+IF(EXISTS ${CONFIGURATION_ROOT_DIR})
+  LIST(APPEND CMAKE_MODULE_PATH "${CONFIGURATION_ROOT_DIR}/cmake")
+  INCLUDE(SalomeMacros)
+ELSE()
+  MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
+ENDIF()
 
 # Platform setup
 # ==============
@@ -56,9 +61,17 @@ OPTION(MEDCOUPLING_USE_MPI "(Use MPI containers) - For MED this triggers the bui
 OPTION(MEDCOUPLING_BUILD_TESTS "Build MED tests." ON)
 OPTION(MEDCOUPLING_BUILD_DOC "Build MED doc." ON)
 OPTION(MEDCOUPLING_BUILD_STATIC "Build MEDCoupling library in static mode." OFF)
-CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_METIS "Enable metis graph library in MEDPartitioner." ON "MEDCOUPLING_ENABLE_PARTITIONER" OFF)
-CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_SCOTCH "Enable scotch graph library in MEDPartitioner." ON "MEDCOUPLING_ENABLE_PARTITIONER;NOT MEDCOUPLING_USE_MPI" OFF)
-CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PARMETIS "Enable parmetis graph library in MEDPartitioner." ON "MEDCOUPLING_ENABLE_PARTITIONER;MEDCOUPLING_USE_MPI" OFF)
+IF(${MEDCOUPLING_USE_MPI})
+  SET(USE_METIS_NOT_PARMETIS OFF)
+ELSE()
+  SET(USE_METIS_NOT_PARMETIS ON)
+ENDIF()
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_METIS "Enable metis graph library in MEDPartitioner."  ${USE_METIS_NOT_PARMETIS}
+        "MEDCOUPLING_ENABLE_PARTITIONER" OFF)
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_SCOTCH "Enable scotch graph library in MEDPartitioner." ON 
+        "MEDCOUPLING_ENABLE_PARTITIONER;NOT MEDCOUPLING_USE_MPI" OFF)
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PARMETIS "Enable parmetis graph library in MEDPartitioner." ${MEDCOUPLING_USE_MPI} 
+        "MEDCOUPLING_ENABLE_PARTITIONER;MEDCOUPLING_USE_MPI" OFF)
 SET(XDR_DEFAULT_OPTION ON)
 IF(WIN32)
     SET(XDR_DEFAULT_OPTION OFF)
@@ -72,6 +85,10 @@ 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()
+
 #
 # Set list of prerequisites
 # =========================
@@ -90,12 +107,16 @@ IF(NOT MEDCOUPLING_MICROMED)
     IF(MEDCOUPLING_PARTITIONER_METIS)
       FIND_PACKAGE(SalomeMetis)
       SALOME_LOG_OPTIONAL_PACKAGE(Metis MEDCOUPLING_PARTITIONER_METIS)
-      ADD_DEFINITIONS("-DMED_ENABLE_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)
-      ADD_DEFINITIONS("-DMED_ENABLE_SCOTCH")
+      IF(SalomeScotch_FOUND)
+        ADD_DEFINITIONS("-DMED_ENABLE_SCOTCH")
+      ENDIF()
     ENDIF(MEDCOUPLING_PARTITIONER_SCOTCH)
   ENDIF(MEDCOUPLING_ENABLE_PARTITIONER)
 ENDIF(NOT MEDCOUPLING_MICROMED)
@@ -113,7 +134,9 @@ IF(MEDCOUPLING_USE_MPI)
   IF(MEDCOUPLING_PARTITIONER_PARMETIS)
     FIND_PACKAGE(SalomeParMetis)
     SALOME_LOG_OPTIONAL_PACKAGE(ParMetis MEDCOUPLING_PARTITIONER_PARMETIS)
-    ADD_DEFINITIONS("-DMED_ENABLE_PARMETIS")
+    IF (SalomeParMetis_FOUND)
+      ADD_DEFINITIONS("-DMED_ENABLE_PARMETIS")
+    ENDIF()
   ENDIF(MEDCOUPLING_PARTITIONER_PARMETIS)
 ENDIF(MEDCOUPLING_USE_MPI)
 
@@ -196,14 +219,16 @@ IF(WIN32)
 ENDIF(WIN32)
 
 ADD_SUBDIRECTORY(src)
-ADD_SUBDIRECTORY(cmake_files)
+ADD_SUBDIRECTORY(adm_local)
 
 IF(MEDCOUPLING_BUILD_DOC)
   ADD_SUBDIRECTORY(doc)
 ENDIF(MEDCOUPLING_BUILD_DOC)
 
 ADD_SUBDIRECTORY(resources)
-ADD_SUBDIRECTORY(v8_work)
+IF(MEDCOUPLING_ENABLE_PYTHON)
+  ADD_SUBDIRECTORY(v8_work)
+ENDIF()
 
 # Configuration export
 # ====================