Salome HOME
Copyright update 2022
[modules/paravis.git] / src / Plugins / MEDReader / CMakeLists.txt
index 299f1cd39a3ccfe921abc1c88a6f01511eac71c1..7b70aa9e8f661aa630d3bf2dcf62e8c34107b7c3 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2010-2014  CEA/DEN, EDF R&D
+# Copyright (C) 2010-2022  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-# Patch for ParaView
-# cp ParaView-3.98.1/VTK/CMake/*.cmake ParaView-3.98.1_INSTALL/lib/cmake/paraview-3.98
+cmake_minimum_required(VERSION 3.8)
+project(MEDReader)
 
-# Env for MEDReader
-#setenv PV_PLUGIN_PATH ".../MEDReader_INSTALL/lib/paraview"
-#setenv LD_LIBRARY_PATH ...MEDReader_INSTALL/lib/salome:${LD_LIBRARY_PATH}
+option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+option(MEDREADER_USE_MPI "Activate parallel reading for MEDREADER" OFF)
 
-# Typical cmake command
-# env MED_ROOT_DIR=... cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=PATH_TO/MEDReader_INSTALL ../MEDReader_SRC -DMEDFILE_ROOT_DIR=/where/is/med-3.0.7_install
+find_package(ParaView REQUIRED)
+if(MEDREADER_USE_MPI)
+  add_definitions(-DMEDREADER_USE_MPI)
+endif(MEDREADER_USE_MPI)
 
-PROJECT(MEDReader)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+enable_testing()
 
-IF(COMMAND cmake_policy)
-  cmake_policy(SET CMP0003 NEW)
-ENDIF(COMMAND cmake_policy)
+include(GNUInstallDirs)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}")
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}")
 
-SET(MED_READER_MAJOR_VERSION 0)
-SET(MED_READER_MINOR_VERSION 0)
-SET(MED_READER_BUILD_VERSION 0)
-SET(MED_READER_VERSION "${MED_READER_MAJOR_VERSION}.${MED_READER_MINOR_VERSION}.${MED_READER_BUILD_VERSION}")
+set("_paraview_plugin_default_${CMAKE_PROJECT_NAME}" ON)
+paraview_plugin_scan(
+  ENABLE_BY_DEFAULT YES
+  PLUGIN_FILES      "${CMAKE_CURRENT_SOURCE_DIR}/plugin/paraview.plugin"
+  PROVIDES_PLUGINS  plugins
+  REQUIRES_MODULES  required_modules)
 
-#
-# Load the ParaView/VTK packages
-#
-SET(MEDReader_BUILD_ParaView_Plugin ON CACHE BOOL "Build the ParaView plugin")
-
-IF(MEDReader_BUILD_ParaView_Plugin)
-    FIND_PACKAGE(ParaView REQUIRED)
-    IF(NOT ParaView_FOUND)
-        MESSAGE(FATAL_ERROR "Please locate ParaView." )
-    ENDIF(NOT ParaView_FOUND)
-    INCLUDE(${PARAVIEW_USE_FILE})
-    # Load information about VTK/ParaView modules loaded/available.
-    PV_SETUP_MODULE_ENVIRONMENT("vtkMEDReader")
-ELSE(MEDReader_BUILD_ParaView_Plugin)
-    FIND_PACKAGE(VTK REQUIRED)
-    if(NOT VTK_FOUND)
-        MESSAGE(FATAL_ERROR "Please locate VTK." )
-    ENDIF(NOT VTK_FOUND)
-    INCLUDE(${VTK_USE_FILE})
-ENDIF(MEDReader_BUILD_ParaView_Plugin)
-# Standard CMake option for building libraries shared or static by default.
-OPTION(BUILD_SHARED_LIBS "Build with shared libraries." ${VTK_BUILD_SHARED_LIBS})
-#
-# Find dependant Library
-#
-SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "KERNEL_ROOT_DIR")
-SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR} CACHE PATH "MED_ROOT_DIR")
-#LIST(APPEND CMAKE_MODULE_PATH "${MED_ROOT_DIR}/adm_local_without_kernel/cmake_files")
-LIST(APPEND CMAKE_MODULE_PATH "${KERNEL_ROOT_DIR}/salome_adm/cmake_files")
-LIST(APPEND CMAKE_MODULE_PATH "${MED_ROOT_DIR}/adm_local/cmake_files")
-INCLUDE(SalomeMacros)
-INCLUDE(SalomeSetupPlatform)
-INCLUDE(SalomeMEDConfig)
-FIND_PACKAGE(SalomePython REQUIRED)
-FIND_PACKAGE(SalomeHDF5 REQUIRED)
-FIND_PACKAGE(SalomeMEDFile REQUIRED)
-
-#
-# process all vtk-modules defined in this plugin. This generates the necessary
-# wrappings for all these modules as well.
-#
-SET(VTK_INSTALL_RUNTIME_DIR lib/salome)
-SET(VTK_INSTALL_LIBRARY_DIR lib/salome)
-SET(VTK_INSTALL_ARCHIVE_DIR lib/salome)
-INCLUDE_DIRECTORIES(${MEDFILE_INCLUDE_DIRS} ${HDF5_INCLUDE_DIRS})
-PV_PROCESS_MODULES()
-
-#
-# Build the parallel vtkPMEDReader
-#
-SET(MEDReader_BUILD_PARALLEL ${VTK_USE_PARALLEL} CACHE BOOL "Build the Med Reader with parallel support.")
-
-#
-# Build the ParaView Plugin
-#
-IF(MEDReader_BUILD_ParaView_Plugin)
-  ADD_SUBDIRECTORY(ParaViewPlugin)
-ENDIF(MEDReader_BUILD_ParaView_Plugin)
+foreach (module IN LISTS required_modules)
+  if (NOT TARGET "${module}")
+    message("Missing required module: ${module}")
+    return ()
+  endif ()
+endforeach ()
 
-IF(SALOME_BUILD_TESTS)
-  ENABLE_TESTING()
-  ADD_SUBDIRECTORY(Test)
-ENDIF()
+paraview_plugin_build(
+  RUNTIME_DESTINATION "${CMAKE_INSTALL_BINDIR}"
+  LIBRARY_DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+  LIBRARY_SUBDIRECTORY "${PARAVIEW_PLUGIN_SUBDIR}"
+  PLUGINS ${plugins})