- INCLUDE(SalomeMacros)
- INCLUDE(SalomeSetupPlatform)
-
- FIND_PACKAGE(SalomeKERNEL)
-
- # Try first to find medfile version using the new CMake first
- FIND_PACKAGE(SalomeMedfile QUIET)
- IF(medfile_FOUND)
- MESSAGE(STATUS "Found Medfile in config mode (new CMake version of medfile)")
- # Backward compat:
- SET(MED_ENABLE_MED3 ON)
- SET(MED3_INCLUDE_DIRS "${MEDFILE_INCLUDE_DIRS}")
- SET(MED3_LIBS_C_ONLY "${MEDFILE_C_LIBRARIES}")
- ELSE()
- # if not found, revert to the old logic:
- FIND_PACKAGE(MEDFILE REQUIRED)
- SET(MED_ENABLE_MED3 ON)
- ENDIF()
-
- FIND_PACKAGE(SalomePThread)
- FIND_PACKAGE(SalomePython)
- SET(PYTHON_LIBS ${PYTHON_LIBRARIES})
-
- FIND_PACKAGE(SalomeOmniORB)
- SET(OMNIORB_LIBS ${OMNIORB_LIBRARIES})
-
- IF(SALOME_USE_MPI)
- FIND_PACKAGE(SalomeMPI)
- SET(MPI_IS_OK 1)
- ENDIF()
-
- FIND_PACKAGE(SalomeHDF5)
+#
+# User options
+# ============
+INCLUDE(CMakeDependentOption)
+OPTION(MEDCOUPLING_MICROMED "Build MED without MED file dependency." OFF)
+OPTION(MEDCOUPLING_ENABLE_PYTHON "Build PYTHON bindings." ON)
+OPTION(MEDCOUPLING_ENABLE_PARTITIONER "Build MEDPartitioner." ON)
+OPTION(MEDCOUPLING_ENABLE_RENUMBER "Build Renumber." ON)
+OPTION(MEDCOUPLING_WITH_FILE_EXAMPLES "Install examples of files containing meshes and fields of different formats." ON)
+OPTION(MEDCOUPLING_USE_MPI "(Use MPI containers) - For MED this triggers the build of ParaMEDMEM." OFF)
+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)
+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" OFF)
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PARMETIS "Enable parmetis graph library in MEDPartitioner." ${MEDCOUPLING_USE_MPI}
+ "MEDCOUPLING_ENABLE_PARTITIONER;MEDCOUPLING_USE_MPI" OFF)
+CMAKE_DEPENDENT_OPTION(MEDCOUPLING_PARTITIONER_PTSCOTCH "Enable ptscotch 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)
+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)