X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVGUI%2FCMakeLists.txt;h=7e74e068696019f3c81badd7187064c190eed03a;hb=aa1eabfa68abde019175886db5e066520d92169f;hp=9b314649bd631e6f78c5eea89d39177009a6c7fb;hpb=8f65343e97bb7fc2f241bef7a31e7fdb603cce43;p=modules%2Fparavis.git diff --git a/src/PVGUI/CMakeLists.txt b/src/PVGUI/CMakeLists.txt index 9b314649..7e74e068 100644 --- a/src/PVGUI/CMakeLists.txt +++ b/src/PVGUI/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2010-2013 CEA/DEN, EDF R&D +# Copyright (C) 2010-2016 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 # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,237 +17,123 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -SET(VERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MAINTENANCE}) -SET(SOVERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR}) +INCLUDE(UseQtExt) -ADD_DEFINITIONS(-DHAVE_SALOME_CONFIG ${CAS_DEFINITIONS}) +# --- options --- -INCLUDE_DIRECTORIES(${OMNIORB_INCLUDE_DIR} - ${KERNEL_ROOT_DIR}/include/salome - ${GUI_ROOT_DIR}/include/salome - ${CMAKE_CURRENT_SOURCE_DIR}/../ParaView - ${CMAKE_BINARY_DIR}/idl - ${CMAKE_BINARY_DIR} +INCLUDE_DIRECTORIES( + ${KERNEL_INCLUDE_DIRS} + ${GUI_INCLUDE_DIRS} + ${PROJECT_BINARY_DIR} + ${CAS_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${QT_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR} - ${CAS_INCLUDE_DIRS} ) - -INCLUDE(${QT_USE_FILE}) - -#IF(WITH_VISU) -# SET(VISU_PARAVIS_LIBS -# ${SalomeIDLVISU} -# ) -# -# ADD_DEFINITIONS(-DWITH_VISU) -#ENDIF(WITH_VISU) - -#Executable -SET(bin_PROGRAMS - vtkWrapIDL_HH - vtkWrapIDL_CC - ) + ${CMAKE_CURRENT_BINARY_DIR} + ) -SET(vtkWrapIDL_HH_CPPFLAGS - -DIDL_I_HH - ) +# additional preprocessor / compiler flags +ADD_DEFINITIONS(${CAS_DEFINITIONS}) +ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) -SET(vtkWrapIDL_CC_CPPFLAGS - -DIDL_I_CC +# libraries to link to +SET(_PARAVIEW_APP_COMPO_LIB + pqApplicationComponents ) -#VTN TODO: vtkParseData supports two types of structures for wrapping. -#We use old structures currently, but is is not influent for results of wrapping. -#It may be necessary to port vtkWrapIDL to new approach in future. -#IF(VTK_LEGACY_REMOVE) -# ADD_DEFINITIONS(-DVTK_PARSE_LEGACY_REMOVE) -#ENDIF() -INCLUDE(wrap.cmake) +SET(_link_LIBRARIES + ${QT_LIBRARIES} + ${PYTHON_LIBS} + ${KERNEL_LDFLAGS} + ${GUI_LDFLAGS} ${GUI_LightApp} ${GUI_CAM} ${GUI_qtx} ${GUI_suit} + ${GUI_SalomeObject} + ${_PARAVIEW_APP_COMPO_LIB} + ${GUI_PVViewer} +) + +# --- headers --- -INCLUDE(${ParaView_CMAKE_DIR}/vtkWrapClientServer.cmake) -VTK_WRAP_ClientServer(vtkEDFCutterCS vtkEDFCutter_SRCS ${GUI_ROOT_DIR}/include/salome/vtkEDFCutter.h) +SET(_ui_files + resources/pqCustomSettingsWidget.ui + ) + +QT_WRAP_UIC(_ui_FORMS_HEADERS ${_ui_files}) -# Library sources -SET(dist_libPARAVIS_la_SOURCES +# header files / to be processed by moc +SET(_moc_HEADERS PVGUI_Module.h + PVGUI_DataModel.h + PVGUI_ParaViewSettingsPane.h +) + +# header files / to install +SET(PVGUI_HEADERS ${_moc_HEADERS} ${_ui_FORMS_HEADERS}) + +# --- resources --- + +# resource files / to be processed by lrelease +SET(_ts_RESOURCES + resources/PARAVIS_images.ts + resources/PARAVIS_msg_en.ts + resources/PARAVIS_msg_fr.ts + resources/PARAVIS_msg_ja.ts +) + +# resource files / static +SET(_other_RESOURCES + # sampleservers.pvsc ??? +) + +IF(SALOME_BUILD_DOC) + # --- ParaView documentation is built as a resource --- + # Check ParaView documentation file existence + # if it exists add it to the resources (compile into binary form) + # otherwise print warning message + SET(PV_DOC_FILE ${VTK_INSTALL_PREFIX}/share/doc/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}/paraview.qch) + IF (EXISTS ${PV_DOC_FILE}) + SET(RC_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/PVGUI.qrc.in) + SET(RC_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/PVGUI.qrc) + MESSAGE(STATUS "Creation of ${RC_GENERATED}") + CONFIGURE_FILE(${RC_SOURCE} ${RC_GENERATED}) + SET(_rcc_RESOURCES ${RC_GENERATED}) + ADD_DEFINITIONS(-DHAS_PV_DOC) + ELSE () + MESSAGE(WARNING "Help file for ParaView has not been found! ParaView documentation will not be available.") + ENDIF () +ENDIF() + +# --- sources --- + +# sources / rcc wrappings +QT_ADD_RESOURCES(_rcc_SOURCES ${_rcc_RESOURCES}) + +# sources / moc wrappings +QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS}) + +# sources / static +SET(_other_SOURCES PVGUI_Module.cxx PVGUI_Module_actions.cxx PVGUI_Module_widgets.cxx - PVGUI_ViewManager.h - PVGUI_ViewManager.cxx - PVGUI_ViewModel.h - PVGUI_ViewModel.cxx - PVGUI_ViewWindow.h - PVGUI_ViewWindow.cxx - PVGUI_OutputWindowAdapter.h - PVGUI_OutputWindowAdapter.cxx - PVGUI_Tools.h - PVGUI_Tools.cxx - PVGUI_ParaViewSettingsPane.h PVGUI_ParaViewSettingsPane.cxx - PVGUI_MatplotlibMathTextUtilities.h - PVGUI_MatplotlibMathTextUtilities.cxx - PV_I.h - PARAVIS_Gen_i.hh - PV_Events.h - PV_Tools.h - PARAVIS_Gen_i.cc - PV_Tools.cxx - ${WRAP_IDL_I_HH} - ${WRAP_IDL_I_CC} - PARAVIS_CreateClass.cxx - ${vtkEDFCutter_SRCS} + PVGUI_DataModel.cxx ) -# Check ParaView documentation file existence -# if it exists add it to the resources (compile into binary form) -# otherwise print warning message -SET(PV_DOC_FILE ${VTK_INSTALL_PREFIX}/share/doc/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}/paraview.qch) -IF (EXISTS ${PV_DOC_FILE}) - SET(RC_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/PVGUI.qrc.in) - SET(RC_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/PVGUI.qrc) - MESSAGE(STATUS "Creation of ${RC_GENERATED}") - CONFIGURE_FILE(${RC_SOURCE} ${RC_GENERATED}) - QT4_ADD_RESOURCES(RCS_SOURCES ${RC_GENERATED}) - SET(dist_libPARAVIS_la_SOURCES ${dist_libPARAVIS_la_SOURCES} ${RCS_SOURCES}) - ADD_DEFINITIONS(-DHAS_PV_DOC) -ELSE (EXISTS ${PV_DOC_FILE}) - MESSAGE(WARNING "Help file for ParaView has not been found! ParaView documentation will not be available.") -ENDIF (EXISTS ${PV_DOC_FILE}) - -# MOC pre-processing -SET(MOC_FILES - PVGUI_Module_moc.cxx - PVGUI_ViewManager_moc.cxx - PVGUI_ViewModel_moc.cxx - PVGUI_ViewWindow_moc.cxx - PVGUI_ParaViewSettingsPane_moc.cxx +# sources / to compile +SET(PVGUI_SOURCES + ${_other_SOURCES} + ${_moc_SOURCES} + ${_rcc_SOURCES} + ${_VTK_wrap_SOURCES} + ${_ui_FORMS_HEADERS} ) -# additionnal compilation flags -# Note that ParaView uses HDF5 -SET(libPARAVIS_la_CPPFLAGS - -ftemplate-depth-32 - ${QT_INCLUDES} - ${QT_ASSISTANT_INCLUDES} - ${PYTHON_INCLUDES} - ${CAS_CPPFLAGS} - ${CAS_CXXFLAGS} - ${KERNEL_CXXFLAGS} - ${OMNIORB_DEFINITIONS} - ${BOOST_CPPFLAGS} - ${GUI_CXXFLAGS} - ${MED_CXXFLAGS} - ${VISU_CXXFLAGS} - ${VISU_PARAVIS_DEFINES} - ) - -# remove deprecation warnings from Paraview -IF(WINDOWS) -ELSE(WINDOWS) - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") -ENDIF(WINDOWS) - -# resources files -SET(nodist_salomeres_DATA - PARAVIS_images.qm - PARAVIS_msg_en.qm - PARAVIS_msg_fr.qm - ) +# --- rules --- +ADD_LIBRARY(PARAVIS ${PVGUI_SOURCES}) +TARGET_LINK_LIBRARIES(PARAVIS ${_link_LIBRARIES}) +INSTALL(TARGETS PARAVIS EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS}) -SET(srcs) -FOREACH(src ${dist_libPARAVIS_la_SOURCES}) - SET(srcs ${srcs} ${src}) -ENDFOREACH(src ${dist_libPARAVIS_la_SOURCES}) - -FOREACH(f ${MOC_FILES}) - SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f}) -ENDFOREACH(f ${MOC_FILES}) - -ADD_LIBRARY(PARAVIS SHARED ${srcs}) - -SET(flags) -FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS}) - SET(flags "${flags} ${f}") -ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS}) - -SET_TARGET_PROPERTIES(PARAVIS PROPERTIES COMPILE_FLAGS "${flags}") -SET_TARGET_PROPERTIES(PARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO}) - -#FIND_PACKAGE(VTK 6.0 COMPONENTS vtkPVClientServerCoreCore vtkPVServerImplementationCore NO_MODULE) -#SET(VTK_LIBS vtkPVClientServerCoreCore vtkPVServerImplementationCore) -SET(VTK_LIBS) -FIND_PACKAGE(ParaView COMPONENTS pqApplicationComponents NO_MODULE) -SET(PARAVIEW_LIBS pqApplicationComponents) - -TARGET_LINK_LIBRARIES(PARAVIS - ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} - ${OMNIORB_LIBRARIES} - ${QT_LIBS} - ${CAS_KERNEL} - ${VTK_LIBS} - ${PYTHON_LIBS} - ${KERNEL_LDFLAGS} ${SalomeDS} ${SALOMELocalTrace} ${SalomeIDLKernel} ${SalomeNS} ${SalomeLifeCycleCORBA} ${SalomeContainer} ${TOOLSDS} - ${GUI_LDFLAGS} ${SalomeApp} ${LightApp} ${CAM} ${qtx} ${suit} ${Event} ${PyInterp} ${SalomeObject} ${vtkTools} - ${MED_LDFLAGS} ${SalomeIDLMED} - ${VISU_LDFLAGS} - ${VISU_PARAVIS_LIBS} - ${PARAVIEW_LIBS} - SalomeIDLPARAVIS -) -INSTALL(TARGETS PARAVIS DESTINATION lib/salome) - -FOREACH(name ${bin_PROGRAMS}) - ADD_EXECUTABLE(${name} - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParsePreprocess.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseHierarchy.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseData.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseString.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrap.c -# ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrapText.c - ${CMAKE_SOURCE_DIR}/idl/vtkWrapIDL.c) - ADD_DEPENDENCIES(${name} generate_txt) - - set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c PROPERTY COMPILE_DEFINITIONS - VTK_PARSE_VERSION="${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}") - - SET(flags) - FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS}) - SET(flags "${flags} ${f}") - ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS}) - - SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}") - TARGET_LINK_LIBRARIES(${name} ${PLATFORM_LIBADD}) - - SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name}) - IF(WINDOWS) - IF(CMAKE_BUILD_TOOL STREQUAL nmake) - SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name}.exe) - ELSE(CMAKE_BUILD_TOOL STREQUAL nmake) - SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${name}.exe) - ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake) - ENDIF(WINDOWS) - INSTALL(FILES ${${name}_EXEFILE} DESTINATION bin/salome PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) -ENDFOREACH(name ${bin_PROGRAMS}) - -FOREACH(output ${MOC_FILES}) - STRING(REGEX REPLACE _moc.cxx .h input ${output}) - - SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input}) - SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output}) - ADD_CUSTOM_COMMAND( - OUTPUT ${output} - COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output} - MAIN_DEPENDENCY ${input} - ) -ENDFOREACH(output ${MOC_FILES}) - -FOREACH(f ${nodist_salomeres_DATA}) - STRING(REGEX REPLACE .qm .ts input ${f}) - SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input}) - SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f}) - EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output}) - INSTALL(FILES ${output} DESTINATION share/salome/resources/paravis) -ENDFOREACH(f ${nodist_salomeres_DATA}) +# --- header and resources installation --- +INSTALL(FILES ${PVGUI_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS}) +QT_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_PARAVIS_INSTALL_RES_DATA}") +INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_PARAVIS_INSTALL_RES_DATA})