Salome HOME
Correction of Renaud.
[tools/medcoupling.git] / CMakeLists.txt
index 8dcfa5c6a570b4596b7252132a12a735a035dc19..df0de11346ce86edd9a071a1289c28216161d4ff 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)
-#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)
@@ -51,14 +45,20 @@ SET(VERSION_DEV "0")
 #
 # 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
 # =========================
@@ -79,9 +79,20 @@ 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)
+  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)
@@ -107,8 +118,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.
@@ -120,11 +138,6 @@ IF(SALOME_MED_ENABLE_PYTHON)
   FIND_PACKAGE(SalomeSWIG REQUIRED)
 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
@@ -177,6 +190,9 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/MED_version.h DESTINATION ${SALOME_INS
 
 # Sources 
 # ========
+IF(WIN32)
+  ADD_DEFINITIONS("-D_USE_MATH_DEFINES")
+ENDIF(WIN32)
 
 ADD_SUBDIRECTORY(src)
 ADD_SUBDIRECTORY(bin)
@@ -203,7 +219,7 @@ INCLUDE(CMakePackageConfigHelpers)
 # List of targets in this project we want to make visible to the rest of the world.
 # They all have to be INSTALL'd with the option "EXPORT ${PROJECT_NAME}TargetGroup"
 SET(_${PROJECT_NAME}_exposed_targets
-   interpkernel medcoupling)
+   interpkernel medcoupling medcouplingremapper)
 
 IF(NOT SALOME_MED_MICROMED)
   LIST(APPEND _${PROJECT_NAME}_exposed_targets 
@@ -271,17 +287,3 @@ INSTALL(FILES
 # Install the export set for use with the install-tree
 INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE}" 
         FILE ${PROJECT_NAME}Targets.cmake)
-
-###
-
-MACRO(INSTALL_AND_COMPILE_PYTHON_FILE PYFILE2COMPINST PYFILELOC)
-  INSTALL(CODE "SET(PYTHON_FILE ${f})")
-  FOREACH(input ${PYFILE2COMPINST})
-    GET_FILENAME_COMPONENT(inputname ${input} NAME)
-    INSTALL(FILES ${input} DESTINATION ${CMAKE_INSTALL_PREFIX}/${PYFILELOC})
-    INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}\")")
-    INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}')\")")
-    INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")")
-    INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")")
-  ENDFOREACH(input ${PYFILE2COMPINST})
-ENDMACRO(INSTALL_AND_COMPILE_PYTHON_FILE PYFILE2COMPINST PYFILELOC)