-# 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
MESSAGE(STATUS "Creation of ${output}")
CONFIGURE_FILE(${input} ${output})
-ADD_DEFINITIONS(-DVTK_EXCLUDE_STRSTREAM_HEADERS)
-
FOREACH(dir ${SUBDIRS})
ADD_SUBDIRECTORY(${dir})
ENDFOREACH(dir ${SUBDIRS})
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)