X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=9a6313fb76cdb5427326e456555362135b5f4a2d;hb=64205612db5db55a3ec1c65bee46c3e010dd5d1e;hp=816db6fed0cb4b4470139c115e8a712209f5b0bb;hpb=1739d7cf27a6bb98f91aa32f3adeec8b909a0c55;p=modules%2Fgui.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 816db6fed..9a6313fb7 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2015 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2016 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -23,25 +23,37 @@ PROJECT(SalomeGUI C CXX) # 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 8) +SET(${PROJECT_NAME_UC}_MINOR_VERSION 3) 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}) @@ -51,18 +63,16 @@ ENDIF(EXISTS ${KERNEL_ROOT_DIR}) # Platform setup # ============== -INCLUDE(SalomeSetupPlatform) # From KERNEL +INCLUDE(SalomeSetupPlatform) # From CONFIGURATION # 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") # User options # ============ OPTION(SALOME_BUILD_DOC "Generate SALOME GUI documentation" ON) OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON) OPTION(SALOME_GUI_USE_OBSERVERS "Use study observers in GUI (advanced)" ON) -OPTION(SALOME_BUILD_WITH_QT5 "Build SALOME with Qt 5" OFF) +OPTION(SALOME_BUILD_WITH_QT5 "Build SALOME with Qt 5" ON) # Advanced options: CMAKE_DEPENDENT_OPTION(SALOME_LIGHT_ONLY "Build SALOME Light only (no CORBA)" OFF @@ -97,7 +107,8 @@ MARK_AS_ADVANCED(SALOME_USE_SINGLE_DESKTOP) ## # Various -FIND_PACKAGE(SalomePython REQUIRED) +FIND_PACKAGE(SalomePythonInterp REQUIRED) +FIND_PACKAGE(SalomePythonLibs REQUIRED) FIND_PACKAGE(SalomePThread REQUIRED) FIND_PACKAGE(SalomeSWIG REQUIRED) FIND_PACKAGE(SalomeBoost REQUIRED) @@ -152,8 +163,20 @@ ENDIF() IF(NOT SALOME_BUILD_WITH_QT5) FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui QtXml QtWebKit QtOpenGL QtNetwork) ADD_DEFINITIONS("-DUSE_SALOME_STYLE") + SET(QT_SALOME_VERSION 4) + SET(SALOME_GUI_ENABLE_QTXWEBBROWSER TRUE) ELSE() FIND_PACKAGE(SalomeQt5 REQUIRED) + SET(QT_SALOME_VERSION 5) + SET(SALOME_GUI_ENABLE_QTXWEBBROWSER TRUE) + IF(NOT "${QT_VERSION}" VERSION_LESS "5.6.0") + # Check that WebEngine component was found + IF(NOT Qt5WebEngine_FOUND) + SET(SALOME_GUI_ENABLE_QTXWEBBROWSER FALSE) + ADD_DEFINITIONS("-DDISABLE_QTXWEBBROWSER") + MESSAGE("Qt5WebEngine is not found, SALOME internal help browser will be unavailable !") + ENDIF() + ENDIF() ENDIF() # PyQt @@ -163,54 +186,72 @@ ELSE() FIND_PACKAGE(SalomePyQt5 REQUIRED) ENDIF() -# Optional prerequisites for GUI +# Optional packages for GUI and their pre-requisites + +# - GL viewer: no prereqs IF(NOT SALOME_USE_GLVIEWER) ADD_DEFINITIONS("-DDISABLE_GLVIEWER") ENDIF() + +# - OCC viewer: no prereqs IF(NOT SALOME_USE_OCCVIEWER) ADD_DEFINITIONS("-DDISABLE_OCCVIEWER") ENDIF() + +# - PV viewer: ParaView +IF (SALOME_USE_PVVIEWER) + FIND_PACKAGE(SalomeParaView) + SALOME_LOG_OPTIONAL_PACKAGE(ParaView SALOME_USE_PVVIEWER) +ELSE() + ADD_DEFINITIONS("-DDISABLE_PVVIEWER") +ENDIF() + +# - VTK viewer: VTK IF(SALOME_USE_VTKVIEWER) # Required components are listed in the FindSalomeVTK.cmake file: FIND_PACKAGE(SalomeVTK) SALOME_LOG_OPTIONAL_PACKAGE(VTK SALOME_USE_VTKVIEWER) + IF(${VTK_RENDERING_BACKEND} STREQUAL "OpenGL2") + ADD_DEFINITIONS("-DVTK_OPENGL2") + SET(SALOME_GUI_USE_OPENGL2 TRUE) + ENDIF() ELSE() ADD_DEFINITIONS("-DDISABLE_VTKVIEWER") ENDIF() + + +# - Plot2d viewer: Qwt IF(SALOME_USE_PLOT2DVIEWER) FIND_PACKAGE(SalomeQwt) SALOME_LOG_OPTIONAL_PACKAGE(Qwt SALOME_USE_PLOT2DVIEWER) ELSE() ADD_DEFINITIONS("-DDISABLE_PLOT2DVIEWER") ENDIF() -IF (SALOME_USE_PVVIEWER) - FIND_PACKAGE(SalomeParaView) - SALOME_LOG_OPTIONAL_PACKAGE(ParaView SALOME_USE_PVVIEWER) - IF(SALOME_BUILD_WITH_QT5) - # RNV: Temporary solution: because ParaView CMake procedure - # defines Qt5_DIR variable, which is used in the SALOME_CONFIGURE_PREPARE - # macro, and as a result leads to the broken SALOMEConfig.cmake file. - # TODO: investigate this !!! - UNSET(Qt5_DIR CACHE) - ENDIF() -ELSE() - ADD_DEFINITIONS("-DDISABLE_PVVIEWER") -ENDIF() + +# - Graphics viewer: no prereqs IF (NOT SALOME_USE_GRAPHICSVIEW) ADD_DEFINITIONS("-DDISABLE_GRAPHICSVIEW") ENDIF() + +# - Python editor: no prereqs IF (NOT SALOME_USE_PYVIEWER) ADD_DEFINITIONS("-DDISABLE_PYVIEWER") ENDIF() + +# - Python console: no prereqs IF(SALOME_USE_PYCONSOLE) # Build with obsolete Python module's methods ADD_DEFINITIONS(-DCALL_OLD_METHODS) ELSE() ADD_DEFINITIONS("-DDISABLE_PYCONSOLE") ENDIF() + +# - Qx viewer: no prereqs IF(NOT SALOME_USE_QXGRAPHVIEWER) ADD_DEFINITIONS("-DDISABLE_QXGRAPHVIEWER") ENDIF() + +# - SALOME object: no prereqs IF(NOT SALOME_USE_SALOMEOBJECT) ADD_DEFINITIONS("-DDISABLE_SALOMEOBJECT") ENDIF() @@ -296,7 +337,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 - caf CAM CASCatch DDS Event LightApp LogWindow ObjBrowser + CAM CASCatch DDS Event LightApp LogWindow ObjBrowser QDS qtx SalomePrs SalomeStyle std SUITApp suit ViewerTools ViewerData ImageComposer ) @@ -374,7 +415,7 @@ ENDIF() # Python-based packages specific targets: IF(SALOME_USE_PYCONSOLE) LIST(APPEND _${PROJECT_NAME}_exposed_targets - PyInterp PyConsole SalomePyQtGUILight) + PyInterp PyConsole SalomePyQtGUILight) IF(SALOME_USE_PLOT2DVIEWER) LIST(APPEND _${PROJECT_NAME}_exposed_targets SalomePyQt) ENDIF() @@ -399,7 +440,7 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets} # Create the configuration files: # - in the build tree: -# Ensure the variables are always defined for the configure: +# Ensure the variables are always defined for the configure: SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}") SET(SIP_ROOT_DIR "${SIP_ROOT_DIR}") IF(NOT SALOME_BUILD_WITH_QT5)