X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=9c87b71106f3c2e1ec70d286c085a16acbbf77ab;hb=fb19073dbd2a5e18b2ada20acbdcb7c11a3010a9;hp=ea961ae99da33f95735256d1276d196591ce5bd8;hpb=156e17edc0ba736b1393736bde8e47e1e66be5e5;p=modules%2Fparavis.git diff --git a/CMakeLists.txt b/CMakeLists.txt index ea961ae9..9c87b711 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2010-2015 CEA/DEN, EDF R&D +# Copyright (C) 2010-2017 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 @@ -27,25 +27,37 @@ ENDIF(WIN32) # Ensure a proper linker behavior: CMAKE_POLICY(SET CMP0003 NEW) +IF(WIN32) + CMAKE_POLICY(SET CMP0020 OLD) # disable automatic linking to qtmain.lib +ENDIF(WIN32) # Versioning # =========== # Project name, upper case STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC) -SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7) -SET(${PROJECT_NAME_UC}_MINOR_VERSION 7) +SET(${PROJECT_NAME_UC}_MAJOR_VERSION 9) +SET(${PROJECT_NAME_UC}_MINOR_VERSION 1) 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}) -SET(${PROJECT_NAME_UC}_VERSION_DEV 1) +SET(${PROJECT_NAME_UC}_VERSION_DEV 0) + +# Common CMake macros +# =================== +SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration 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() # Find KERNEL # =========== 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) ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS}) @@ -58,17 +70,6 @@ ENDIF(EXISTS ${KERNEL_ROOT_DIR}) INCLUDE(SalomeSetupPlatform) # From KERNEL # Always build libraries as shared objects: SET(BUILD_SHARED_LIBS TRUE) -# Local macros: -LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files") - -# Detect GUI root dir (but doesn't find GUI yet! See below) -# =================== -SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "Path to the Salome GUI") -IF(EXISTS ${GUI_ROOT_DIR}) - LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files") -ELSE() - MESSAGE(FATAL_ERROR "We absolutely need a Salome GUI, please define GUI_ROOT_DIR") -ENDIF() # User options # ============ @@ -76,6 +77,7 @@ OPTION(SALOME_BUILD_DOC "Generate SALOME GUI documentation" ON) OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON) OPTION(SALOME_PARAVIS_ALL_TEST "Add all tests for Salome PARAVIS module" OFF) OPTION(SALOME_PARAVIS_BUILD_PLUGINS "Build PARAVIS plugins (MEDReader, etc ...)" ON) +OPTION(SALOME_PARAVIS_BUILD_CORBA_PLUGINS "Build PARAVIS CORBA plugins (ParaMEDCorba -- this requires the SALOME FIELDS module)" ON) OPTION(SALOME_PARAVIS_USE_GEOM_SOURCE "Import a GEOMETRY object to PARAVIS via its Corba IOR" OFF) OPTION(SALOME_PARAVIS_USE_SMESH_SOURCE "Import a MESH object to PARAVIS via its Corba IOR" OFF) CMAKE_DEPENDENT_OPTION(SALOME_LIGHT_ONLY "Build SALOME Light only (no CORBA)" OFF @@ -90,10 +92,8 @@ CMAKE_DEPENDENT_OPTION(SALOME_LIGHT_ONLY "Build SALOME Light only (no CORBA)" OF ## ## From KERNEL: ## - -FIND_PACKAGE(SalomePython REQUIRED) -FIND_PACKAGE(SalomeHDF5 REQUIRED) -FIND_PACKAGE(SalomeSWIG REQUIRED) +FIND_PACKAGE(SalomePythonInterp REQUIRED) +FIND_PACKAGE(SalomePythonLibs REQUIRED) IF(NOT SALOME_LIGHT_ONLY) FIND_PACKAGE(SalomeOmniORB REQUIRED) @@ -108,57 +108,64 @@ IF(SALOME_BUILD_DOC) SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC) ENDIF() -## -## From GUI: part 1 (Qt must be checked before ParaView) -## -FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui QtXml QtHelp) -# This search for qhelpgenerator is required here -# to avoid detecting native one due to bug in ParaViewMacros.cmake -FIND_PROGRAM(QT_HELP_GENERATOR - qhelpgenerator - PATHS "${QT_BINARY_DIR}" - NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH - DOC "qhelpgenerator used to compile Qt help project files") -MARK_AS_ADVANCED(QT_HELP_GENERATOR) +# Find GUI +# =================== +SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "Path to the Salome GUI") +IF(EXISTS ${GUI_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files") + # We should skip detection of VTK (done automatically from GUI) as we need to detect ParaView instead; + # otherwise ParaView targets are not found + SET(OMIT_DETECT_PACKAGE_VTK ON) + FIND_PACKAGE(SalomeGUI REQUIRED) + SALOME_GUI_WITH_CORBA() # check whether GUI builded with CORBA + SALOME_GUI_MODE(SALOME_USE_SALOMEOBJECT SALOME_USE_PVVIEWER) + ADD_DEFINITIONS(${GUI_DEFINITIONS}) + INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS}) +ELSE() + MESSAGE(FATAL_ERROR "We absolutely need a Salome GUI, please define GUI_ROOT_DIR") +ENDIF() ## -## Specific to ParaViS: +## From GUI ## -FIND_PACKAGE(SalomeParaView REQUIRED) -# GUI itself has to be loaded AFTER ParaView: the ParaView config doesn't mix -# well with the VTK one (and GUI loads VTK): -FIND_PACKAGE(SalomeGUI REQUIRED) -SALOME_GUI_WITH_CORBA() # check whether GUI builded with CORBA -SALOME_GUI_MODE(SALOME_USE_SALOMEOBJECT SALOME_USE_PVVIEWER) -ADD_DEFINITIONS(${GUI_DEFINITIONS}) -INCLUDE_DIRECTORIES(${GUI_INCLUDE_DIRS}) +IF (NOT SALOME_GUI_BUILD_WITH_QT5) + FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui QtXml QtHelp) +ELSE() + FIND_PACKAGE(SalomeQt5 REQUIRED) +ENDIF() ## -## From GUI: part 2 +## Specific to ParaViS: ## -FIND_PACKAGE(SalomeCAS REQUIRED) # [ABN] I wish I could avoid that ... + +FIND_PACKAGE(SalomeParaView REQUIRED) ## -## From MED +## From MEDCoupling / MEDFile / or MEDModule (if CORBA plugin required): ## +SET(SALOME_PARAVIS_BUILD_INSITU OFF) IF(SALOME_PARAVIS_BUILD_PLUGINS) - SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR} CACHE PATH "Path to the Salome MED module") - IF(EXISTS ${MED_ROOT_DIR}) - LIST(APPEND CMAKE_MODULE_PATH "${MED_ROOT_DIR}/adm_local/cmake_files") - FIND_PACKAGE(SalomeMED REQUIRED) - ELSE() - MESSAGE(FATAL_ERROR "We absolutely need the Salome MED module to build plugins, please define MED_ROOT_DIR") - ENDIF() - IF(SALOME_MED_STANDALONE OR SALOME_MED_MICROMED) - MESSAGE(FATAL_ERROR "We absolutely need a Salome MED with KERNEL and with MED file dependancy, - please set SALOME_MED_STANDALONE=OFF and SALOME_MED_MICROMED=OFF in MED module - or SALOME_PARAVIS_BUILD_PLUGINS=OFF in PARAVIS module") - ENDIF() - FIND_PACKAGE(SalomeMEDFile) - SALOME_LOG_OPTIONAL_PACKAGE(MEDFile SALOME_PARAVIS_BUILD_PLUGINS) -ENDIF() - + # If CORBA plugins required, take in MED module + IF(SALOME_PARAVIS_BUILD_CORBA_PLUGINS) + SET(FIELDS_ROOT_DIR $ENV{FIELDS_ROOT_DIR} CACHE PATH "Path to the SALOME FIELDS module") + IF(EXISTS ${FIELDS_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${FIELDS_ROOT_DIR}/adm_local/cmake_files") + FIND_PACKAGE(SalomeFIELDS) + SALOME_LOG_OPTIONAL_PACKAGE(SalomeFIELDS SALOME_PARAVIS_BUILD_CORBA_PLUGINS) + IF(SALOME_USE_MPI) + SET(SALOME_PARAVIS_BUILD_INSITU ON) + ENDIF(SALOME_USE_MPI) + ENDIF() + ELSE(SALOME_PARAVIS_BUILD_CORBA_PLUGINS) + SET(MEDCOUPLING_ROOT_DIR $ENV{MEDCOUPLING_ROOT_DIR} CACHE PATH "Path to the MEDCoupling tool") + IF(EXISTS ${MEDCOUPLING_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${MEDCOUPLING_ROOT_DIR}/cmake_files") + ENDIF() + FIND_PACKAGE(SalomeMEDCoupling) # will load MEDFile + SALOME_LOG_OPTIONAL_PACKAGE(MEDCoupling SALOME_PARAVIS_BUILD_PLUGINS) + ENDIF() +ENDIF(SALOME_PARAVIS_BUILD_PLUGINS) ## ## From GEOM ## @@ -184,6 +191,7 @@ ENDIF() ## ## From SMESH ## + IF(SALOME_PARAVIS_BUILD_PLUGINS AND SALOME_PARAVIS_USE_SMESH_SOURCE) IF(NOT SALOME_PARAVIS_USE_GEOM_SOURCE) SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR} CACHE PATH "Path to the Salome GEOM") @@ -267,7 +275,6 @@ SALOME_ACCUMULATE_ENVIRONMENT(PV_PLUGIN_PATH NOCHECK ${CMAKE_INSTALL_PREFIX}/lib # Sources # ======== ADD_SUBDIRECTORY(src) -ADD_SUBDIRECTORY(adm_local) ADD_SUBDIRECTORY(resources) IF(SALOME_BUILD_DOC) @@ -278,6 +285,7 @@ IF(SALOME_BUILD_TESTS AND NOT SALOME_LIGHT_ONLY) ENDIF() ADD_SUBDIRECTORY(bin) ADD_SUBDIRECTORY(examples) +ADD_SUBDIRECTORY(idl) # Header configuration # ==================== @@ -305,8 +313,9 @@ ENDIF() # Ensure the variables are always defined for the configure: SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}") SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}") -SET(MED_ROOT_DIR "${MED_ROOT_DIR}") +SET(FIELDS_ROOT_DIR "${FIELDS_ROOT_DIR}") SET(MEDFILE_ROOT_DIR "${MEDFILE_ROOT_DIR}") +SET(MEDCOUPLING_ROOT_DIR "${MEDCOUPLING_ROOT_DIR}") SET(GEOM_ROOT_DIR "${GEOM_ROOT_DIR}") SET(SMESH_ROOT_DIR "${SMESH_ROOT_DIR}") @@ -319,7 +328,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX - KERNEL_ROOT_DIR GUI_ROOT_DIR MED_ROOT_DIR MEDFILE_ROOT_DIR GEOM_ROOT_DIR SMESH_ROOT_DIR) + KERNEL_ROOT_DIR GUI_ROOT_DIR FIELDS_ROOT_DIR MEDFILE_ROOT_DIR MEDCOUPLING_ROOT_DIR GEOM_ROOT_DIR SMESH_ROOT_DIR) # - in the install tree (VSR 16/08/2013: TEMPORARILY COMMENT THIS - TO REMOVE?): # Get the relative path of the include directory so @@ -329,7 +338,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(${PROJECT_NAME}Config.cmake.in # ${PROJECT_BINARY_DIR}/to_install/${PROJECT_NAME}Config.cmake # INSTALL_DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" # PATH_VARS CONF_INCLUDE_DIRS SALOME_INSTALL_CMAKE_LOCAL CMAKE_INSTALL_PREFIX -# KERNEL_ROOT_DIR GUI_ROOT_DIR MED_ROOT_DIR MEDFILE_ROOT_DIR) +# KERNEL_ROOT_DIR GUI_ROOT_DIR FIELDS_ROOT_DIR MEDFILE_ROOT_DIR) WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake VERSION ${${PROJECT_NAME_UC}_VERSION} @@ -346,3 +355,8 @@ IF(NOT SALOME_LIGHT_ONLY) INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" FILE ${PROJECT_NAME}Targets.cmake) ENDIF() + +# Application tests +INSTALL(FILES CTestTestfileInstall.cmake + DESTINATION ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test + RENAME CTestTestfile.cmake)