Salome HOME
Start potring to the VTK OpenGL2 backend.
[modules/gui.git] / CMakeLists.txt
index ceb25ef0a6b5b00045013f8259e0f29eb9aa0623..d15f636ef9ac49864fc5ad313a3464140d17fa6b 100755 (executable)
@@ -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,6 +23,9 @@ 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
 # ===========
@@ -62,7 +65,7 @@ LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/adm_local/cmake_files")
 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 +100,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)
@@ -153,9 +157,19 @@ 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
@@ -190,10 +204,15 @@ 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)
@@ -311,11 +330,17 @@ 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
 )
 
+# CAF package (not compilable while TDocStd_Application::Formats is removed)
+IF(CAS_VERSION_STR VERSION_LESS "7.0.1")
+  LIST(APPEND _${PROJECT_NAME}_exposed_targets 
+       caf)
+ENDIF()
+
 IF(SALOME_USE_OCCVIEWER OR SALOME_USE_VTKVIEWER OR SALOME_USE_GLVIEWER)
   LIST(APPEND _${PROJECT_NAME}_exposed_targets 
        OpenGLUtils)
@@ -389,7 +414,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()