Salome HOME
updated copyright message
[modules/gui.git] / tools / CurvePlot / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index 41cd1dc..53909a8
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2014  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  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
@@ -21,20 +21,17 @@ INCLUDE(CMakeDependentOption)
 
 PROJECT(SalomeCURVEPLOT C CXX)
 
-# Ensure a proper linker behavior:
-CMAKE_POLICY(SET CMP0003 NEW)
-
 # 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 6)
+SET(${PROJECT_NAME_UC}_MAJOR_VERSION 9)
+SET(${PROJECT_NAME_UC}_MINOR_VERSION 2)
 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)
 
 # User options
 # ============
@@ -47,7 +44,7 @@ OPTION(SALOME_BUILD_TESTS "Generate SALOME CURVEPLOT tests" ON)
 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)
+  INCLUDE(SalomeMacros NO_POLICY_SCOPE)
 ELSE()
   MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
 ENDIF()
@@ -57,7 +54,6 @@ IF(NOT SALOME_CURVEPLOT_STANDALONE)
     # ==============
     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")
       FIND_PACKAGE(SalomeKERNEL REQUIRED)
       KERNEL_WITH_CORBA() # check whether KERNEL builded with CORBA
       ADD_DEFINITIONS(${KERNEL_DEFINITIONS} -DSALOME_KERNEL)
@@ -66,31 +62,31 @@ IF(NOT SALOME_CURVEPLOT_STANDALONE)
       MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR or turn option SALOME_CURVEPLOT_STANDALONE to ON!")
     ENDIF( EXISTS ${KERNEL_ROOT_DIR} )
     
-    # Find SALOME GUI (needed for the C++ part - PyUtils)
     # ==============
     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")
-      FIND_PACKAGE(SalomeGUI)
-    ELSE(EXISTS ${GUI_ROOT_DIR})
-      MESSAGE(FATAL_ERROR "We absolutely need a Salome GUI, please define GUI_ROOT_DIR or turn option SALOME_CURVEPLOT_STANDALONE to ON!")
-    ENDIF(EXISTS ${GUI_ROOT_DIR})
+    # Are we compiled being into GUI/tools directory or have we been extracted somewhere else?
+    IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../../src/Session/SALOME_Session.hxx")  # we are in GUI
+      # Re-define GUI_INCLUDE_DIRS 
+      SET(GUI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../PyInterp/src)
+    ELSE()      
+      IF(EXISTS ${GUI_ROOT_DIR})
+        FIND_PACKAGE(SalomeGUI)
+      ELSE()
+        MESSAGE(FATAL_ERROR "We absolutely need a Salome GUI, please define GUI_ROOT_DIR or turn option SALOME_CURVEPLOT_STANDALONE to ON!")
+      ENDIF()
+    ENDIF()
     
-    # Platform setup
-    # ==============
-    INCLUDE(SalomeSetupPlatform)   # From KERNEL
 ENDIF(NOT SALOME_CURVEPLOT_STANDALONE)
 
+# Platform setup
+# ==============
+INCLUDE(SalomeSetupPlatform)
+
 # 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")
 
-IF(SALOME_CURVEPLOT_STANDALONE)
-    INCLUDE(SalomeMacros)
-ENDIF()
-
-
 # Prerequisites
 # =============
 # Find "big" prerequisites first - they reference themselves many others
@@ -106,20 +102,11 @@ FIND_PACKAGE(SalomePythonInterp    REQUIRED)
 FIND_PACKAGE(SalomePythonLibs    REQUIRED)
 FIND_PACKAGE(SalomeNumPySciPy    REQUIRED)
 
-# Qt4
-FIND_PACKAGE(SalomeQt4 REQUIRED COMPONENTS QtCore QtGui)
-INCLUDE(${QT_USE_FILE})
+# Qt
+FIND_PACKAGE(SalomeQt5 REQUIRED)
+FIND_PACKAGE(SalomePyQt5 REQUIRED)
 
 # Optional products:
-
-IF(SALOME_BUILD_DOC)
-#  FIND_PACKAGE(SalomeDoxygen)
-#  FIND_PACKAGE(SalomeSphinx)
-#  SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC)
-#  SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC)
-#  ADD_DEFINITIONS(-DDOXYGEN_IS_OK)
-ENDIF()
-
 IF(SALOME_BUILD_TESTS)
   ENABLE_TESTING()
 ENDIF()
@@ -155,12 +142,15 @@ ENDIF()
 # Specific to CURVEPLOT:
 SET(SALOME_CURVEPLOT_INSTALL_RES_DATA "${SALOME_INSTALL_RES}/curveplot" CACHE PATH 
     "Install path: SALOME CURVEPLOT specific data")
-# Package installation path (lib/python2.7/...) 
+# Package installation path (lib/python<x.y>/...)
 SET(SALOME_CURVEPLOT_INSTALL_PYTHON ${SALOME_INSTALL_PYTHON}/curveplot CACHE INTERNAL  
     "Install path: SALOME CURVEPLOT Python packages" FORCE)
 SET(SALOME_CURVEPLOT_INSTALL_SCRIPT_PYTHON ${SALOME_INSTALL_SCRIPT_PYTHON} CACHE INTERNAL  
     "Install path: SALOME CURVEPLOT Python main entry points" FORCE)
 
+SET(CRVPLOT_TEST_INSTALL ${CMAKE_BINARY_DIR}/local/curveplot)
+SET(PYQTSIDE_TEST_INSTALL ${CMAKE_BINARY_DIR}/local/pyqtside)
+
 # Sources 
 # ========
 ADD_SUBDIRECTORY(src)
@@ -192,25 +182,25 @@ EXPORT(TARGETS ${_${PROJECT_NAME}_exposed_targets}
 #      Ensure the variables are always defined for the configure:
 SET(KERNEL_ROOT_DIR "${KERNEL_ROOT_DIR}")
 SET(GUI_ROOT_DIR "${GUI_ROOT_DIR}")
-SET(QT4_ROOT_DIR "${QT4_ROOT_DIR}")
-SET(PYQT4_ROOT_DIR "${PYQT4_ROOT_DIR}")
+SET(QT5_ROOT_DIR "${QT5_ROOT_DIR}")
+SET(PYQT5_ROOT_DIR "${PYQT5_ROOT_DIR}")
 SET(PYTHON_ROOT_DIR "${PYTHON_ROOT_DIR}")
  
 SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}/include")
 
 # Build variables that will be expanded when configuring Salome<MODULE>Config.cmake:
-SALOME_CONFIGURE_PREPARE(PyQt4 Qt4 Python)
+SALOME_CONFIGURE_PREPARE(PyQt5 Qt5 Python)
 
 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 QT4_ROOT_DIR PYQT4_ROOT_DIR PYTHON_ROOT_DIR)
+       KERNEL_ROOT_DIR GUI_ROOT_DIR QT5_ROOT_DIR PYQT5_ROOT_DIR PYTHON_ROOT_DIR)
 
 WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
     VERSION ${${PROJECT_NAME_UC}_VERSION}
     COMPATIBILITY AnyNewerVersion)
-  
+
 # Install the CMake configuration files:
 INSTALL(FILES
   "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
@@ -222,4 +212,4 @@ IF(NOT SALOME_CURVEPLOT_STANDALONE)
     INSTALL(EXPORT ${PROJECT_NAME}TargetGroup DESTINATION "${SALOME_INSTALL_CMAKE_LOCAL}" 
         FILE ${PROJECT_NAME}Targets.cmake)
 ENDIF()
-  
+