Salome HOME
Implementation of the "0021709: [CEA 583] Toolbar preferences" issue.
[modules/paravis.git] / CMakeLists.txt
index 0379ad43425ea7b79001295fc51c1010d999ba54..906d2579361b0070188df74c1083c59862b69217 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2012  CEA/DEN, EDF R&D
+# Copyright (C) 2010-2013  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
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-PROJECT(PARAVIS)
+PROJECT(PARAVIS C CXX)
 
 IF(WINDOWS)
   STRING( REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags ${CMAKE_SHARED_LINKER_FLAGS_DEBUG} )
   SET( CMAKE_SHARED_LINKER_FLAGS_DEBUG "${replacementFlags}" )
 ENDIF(WINDOWS)
 
-CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7 FATAL_ERROR)
 IF(COMMAND cmake_policy)
   cmake_policy(SET CMP0003 NEW)
 ENDIF(COMMAND cmake_policy)            
 
 SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR} CACHE PATH "KERNEL_ROOT_DIR")
+SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "GUI_ROOT_DIR")
 SET(MODULE PARAVIS)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindPLATFORM.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindPYTHON.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindOMNIORB.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindPTHREADS.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindHDF5.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindBOOST.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindLIBXML2.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindSWIG.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindDOXYGEN.cmake)
-INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/FindKERNEL.cmake)
-
-INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindPARAVIEW.cmake)
-IF(EXISTS ${PARAVIEW_VTK_DIR}/VTKConfig.cmake)
-  SET(VTK_DIR ${PARAVIEW_VTK_DIR})
-ENDIF(EXISTS ${PARAVIEW_VTK_DIR}/VTKConfig.cmake)
 
-SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR} CACHE PATH "GUI_ROOT_DIR")
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindCAS.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindQT4.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindOPENGL.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindVTK.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindQWT.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindSIPPYQT.cmake)
-INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/deprecated/FindGUI.cmake)
-
-SET(VERSION_MAJOR       7)
-SET(VERSION_MINOR       0)
+SET(CMAKE_MODULE_PATH 
+    "${KERNEL_ROOT_DIR}/salome_adm/cmake_files" 
+    "${GUI_ROOT_DIR}/adm_local/cmake_files"
+    "${PROJECT_SOURCE_DIR}/adm_local/cmake_files")
+
+INCLUDE(SalomeMacros)
+INCLUDE(SalomeSetupPlatform)
+
+FIND_PACKAGE(SalomeKERNEL REQUIRED)
+
+# From KERNEL:
+FIND_PACKAGE(SalomePython REQUIRED)
+FIND_PACKAGE(SalomeOmniORB REQUIRED)
+FIND_PACKAGE(SalomeOmniORBPy REQUIRED)
+SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_COMPILER}) 
+FIND_PACKAGE(SalomePThread REQUIRED)
+FIND_PACKAGE(SalomeHDF5 REQUIRED)
+FIND_PACKAGE(SalomeBoost REQUIRED)
+FIND_PACKAGE(SalomeLibXml2 REQUIRED)
+FIND_PACKAGE(SalomeSWIG REQUIRED)
+FIND_PACKAGE(SalomeCppUnit REQUIRED)
+FIND_PACKAGE(SalomeDoxygen REQUIRED)
+
+# 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)
+
+# Specific to ParaVis:
+FIND_PACKAGE(SalomeParaView)
+
+# GUI 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)
+
+# From GUI: part 2
+FIND_PACKAGE(SalomeCAS REQUIRED)
+FIND_PACKAGE(SalomeOpenGL REQUIRED)
+FIND_PACKAGE(SalomeVTK REQUIRED)
+FIND_PACKAGE(SalomeQwt REQUIRED)
+FIND_PACKAGE(SalomeSIP REQUIRED)
+FIND_PACKAGE(SalomePyQt4 REQUIRED)
+
+SET(VERSION_MAJOR 7)
+SET(VERSION_MINOR 2)
 SET(VERSION_MAINTENANCE 0)
 SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MAINTENANCE}")
 SET(XVERSION 0x0${VERSION_MAJOR}0${VERSION_MINOR}0${VERSION_MAINTENANCE})
-SET(VERSION_DEV 1)
+SET(VERSION_DEV 0)
 
 SET(BUILD_PLUGINS 1)
 
-SET(VISU_ROOT_DIR $ENV{VISU_ROOT_DIR} CACHE PATH "VISU_ROOT_DIR")
-IF(EXISTS ${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
-  INCLUDE(${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
-  SET(WITH_VISU 1)
-ENDIF(EXISTS ${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
-
-SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR} CACHE PATH "MED_ROOT_DIR")
-INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
-
-EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/getwrapclasses.py ${PARAVIEW_INCLUDE_DIRS})
+#SET(VISU_ROOT_DIR $ENV{VISU_ROOT_DIR} CACHE PATH "VISU_ROOT_DIR")
+#IF(EXISTS ${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
+  #INCLUDE(${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
+  #SET(WITH_VISU 1)
+#ENDIF(EXISTS ${VISU_ROOT_DIR}/adm_local/cmake_files/FindVISU.cmake)
+
+SET(MED_ROOT_DIR "$ENV{MED_ROOT_DIR}" CACHE PATH "Path to the MED Salome module")
+LIST(APPEND CMAKE_MODULE_PATH "${MED_ROOT_DIR}/adm_local/cmake_files")
+FIND_PACKAGE(SalomeMED REQUIRED)
+FIND_PACKAGE(SalomeMEDFile REQUIRED)
+
+# TODO: the below requires ParaView in the PYTHONPATH ... not so nice:
+MESSAGE(STATUS "Generating list of wrapped VTK classes ...")
+LIST(GET PARAVIEW_INCLUDE_DIRS 0 PARAVIEW_INCLUDE_DIR0)
+EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/getwrapclasses.py ${PARAVIEW_INCLUDE_DIR0}
+    RESULT_VARIABLE _res)
+IF(NOT _res EQUAL 0)
+  MESSAGE(FATAL_ERROR "Unable to run the Python script retrieving the list of VTK classes.")
+ENDIF()
 
 SET(SUBDIRS
   idl
@@ -98,8 +132,6 @@ SET(output ${CMAKE_CURRENT_BINARY_DIR}/PARAVIS_version.h)
 MESSAGE(STATUS "Creation of ${output}")
 CONFIGURE_FILE(${input} ${output})
 
-ADD_DEFINITIONS(-DVTK_EXCLUDE_STRSTREAM_HEADERS)
-
 FOREACH(dir ${SUBDIRS})
   ADD_SUBDIRECTORY(${dir})
 ENDFOREACH(dir ${SUBDIRS})
@@ -115,11 +147,10 @@ ENDIF(CMAKE_BUILD_TYPE)
 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/PARAVIS_version.h DESTINATION include/salome)
 
 # Configure Testing
-SET(PARAVIS_TEST_OUTPUT_DIR /tmp/pic CACHE PATH "Directory for saving test pictures.")
 OPTION(BUILD_TESTING "Build ParaVis Testing" ON)
 IF(BUILD_TESTING)
    SET(PARAVIS_TEST_DIR ${ParaVis_BINARY_DIR}/Test/Temporary)
-   MAKE_DIRECTORY(${PARAVIS_TEST_DIR})
+   MAKE_DIRECTORY(${PARAVIS_TEST_DIR})  # TODO: replace with FILE(MAKE_DIRECTORY ...)
    ENABLE_TESTING()
    INCLUDE (CTest)
    ADD_SUBDIRECTORY(test)