X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPVGUI%2FCMakeLists.txt;h=fc2bcabaff3c98cfb77e27656990780e4ac79610;hb=ca7a0c7c3d6a74dc010cc399c85763bcae8a5343;hp=d729a8c8e5763b6bd8ba22cc49772c61bb34bff3;hpb=1eb23ff388682331691712a69cd96107c5a4fef6;p=modules%2Fparavis.git diff --git a/src/PVGUI/CMakeLists.txt b/src/PVGUI/CMakeLists.txt index d729a8c8..fc2bcaba 100644 --- a/src/PVGUI/CMakeLists.txt +++ b/src/PVGUI/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2010-2012 CEA/DEN, EDF R&D +# Copyright (C) 2010-2014 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,208 +17,198 @@ # 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(UseQt4Ext) -ADD_DEFINITIONS(-DHAVE_SALOME_CONFIG) -INCLUDE_DIRECTORIES(${OMNIORB_INCLUDE_DIR} ${KERNEL_ROOT_DIR}/include/salome ${CMAKE_CURRENT_SOURCE_DIR}/../ParaView ${CMAKE_BINARY_DIR}/idl ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +# --- options --- -IF(WITH_VISU) - SET(VISU_PARAVIS_LIBS - ${SalomeIDLVISU} +INCLUDE_DIRECTORIES(${OMNIORB_INCLUDE_DIR} + ${KERNEL_INCLUDE_DIRS} + ${GUI_INCLUDE_DIRS} + ${PROJECT_BINARY_DIR}/idl + ${PROJECT_BINARY_DIR} + ${CAS_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${QT_INCLUDES} + ${CMAKE_CURRENT_SOURCE_DIR} ) - - ADD_DEFINITIONS(-DWITH_VISU) -ENDIF(WITH_VISU) -#Executable -SET(bin_PROGRAMS - vtkWrapIDL_HH - vtkWrapIDL_CC - ) +# additional preprocessor / compiler flags +ADD_DEFINITIONS(${CAS_DEFINITIONS}) +ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) +ADD_DEFINITIONS(${OMNIORB_DEFINITIONS}) -SET(vtkWrapIDL_HH_CPPFLAGS - -DIDL_I_HH +# libraries to link to +SET(_PARAVIEW_APP_COMPO_LIB + pqApplicationComponents ) -SET(vtkWrapIDL_CC_CPPFLAGS - -DIDL_I_CC - ) +SET(_link_LIBRARIES + ${OMNIORB_LIBRARIES} + ${QT_LIBRARIES} + ${CAS_KERNEL} + ${PYTHON_LIBS} + ${KERNEL_LDFLAGS} ${KERNEL_SalomeDS} ${KERNEL_SALOMELocalTrace} ${KERNEL_SalomeIDLKernel} + ${KERNEL_SalomeNS} ${KERNEL_SalomeLifeCycleCORBA} ${KERNEL_SalomeContainer} ${KERNEL_TOOLSDS} + ${GUI_LDFLAGS} ${GUI_SalomeApp} ${GUI_LightApp} ${GUI_CAM} ${GUI_qtx} ${GUI_suit} ${GUI_Event} ${GUI_PyInterp} + ${GUI_SalomeObject} ${GUI_vtkTools} + ${MED_SalomeIDLMED} + ${_PARAVIEW_APP_COMPO_LIB} + SalomeIDLPARAVIS +) + +# --- headers --- + +# header files / to be processed by moc +SET(_moc_HEADERS + PVGUI_Module.h + PVGUI_ViewManager.h + PVGUI_ViewModel.h + PVGUI_ViewWindow.h + PVGUI_ParaViewSettingsPane.h +) -INCLUDE(wrap.cmake) +# header files / no moc processing +SET(_other_HEADERS + PVGUI_OutputWindowAdapter.h + PVGUI_Tools.h + #PVGUI_MatplotlibMathTextUtilities.h + PV_I.h + PARAVIS_Gen_i.hh + PV_Events.h + PV_Tools.h +) -INCLUDE(${ParaView_CMAKE_DIR}/vtkClientServer.cmake) +# header files / to install +SET(PVGUI_HEADERS ${_moc_HEADERS} ${_other_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 +QT4_ADD_RESOURCES(_rcc_SOURCES ${_rcc_RESOURCES}) + +# sources / moc wrappings +QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS}) + +# sources / EDF specific stuff +INCLUDE(vtkWrapClientServer) VTK_WRAP_ClientServer(vtkEDFCutterCS vtkEDFCutter_SRCS ${GUI_ROOT_DIR}/include/salome/vtkEDFCutter.h) -# Library sources -SET(dist_libPARAVIS_la_SOURCES - PVGUI_Module.h +# 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 - PV_I.h - PARAVIS_Gen_i.hh - PV_Events.h - PV_Tools.h + #PVGUI_MatplotlibMathTextUtilities.cxx PARAVIS_Gen_i.cc PV_Tools.cxx - ${WRAP_IDL_I_HH} - ${WRAP_IDL_I_CC} - PARAVIS_CreateClass.cxx - ${vtkEDFCutter_SRCS} ) -# 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 ${ParaView_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 - ) +IF(NOT SALOME_PARAVIS_MINIMAL_CORBA) + # Generate headers and sources corresponding to the IDL implementations: + INCLUDE(${PROJECT_SOURCE_DIR}/src/VTKWrapping/wrap.cmake) + + ## From 2.8.10, we should use: + ## SET(CMAKE_POSITION_INDEPENDENT_CODE ON) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") -# 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} + # Make the list of wrapped files visible from the top directory (will be used in idl): + SET(WRAP_IDL_I_HH "${WRAP_IDL_I_HH}" PARENT_SCOPE) + SET(WRAP_IDL_I_CC "${WRAP_IDL_I_CC}" PARENT_SCOPE) + + SET(_VTK_wrap_SOURCES + PARAVIS_CreateClass.cxx + ${WRAP_IDL_I_CC} + ) +ENDIF() + +# sources / to compile +SET(PVGUI_SOURCES + ${_other_SOURCES} + ${_moc_SOURCES} + ${_rcc_SOURCES} + ${vtkEDFCutter_SRCS} + ${_VTK_wrap_SOURCES} ) -# 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 --- + +IF(NOT SALOME_PARAVIS_MINIMAL_CORBA) + ADD_CUSTOM_COMMAND( + OUTPUT PARAVIS_CreateClass.cxx + COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/VTKWrapping/create_class.py ${CMAKE_BINARY_DIR} + DEPENDS ${CMAKE_BINARY_DIR}/wrapfiles.txt + ${PROJECT_BINARY_DIR}/idl/PARAVIS_Gen.hh + ${PROJECT_BINARY_DIR}/idl/PARAVIS_Gen_Types.hh + SalomeIDLPARAVIS + generate_implements ) -SET(srcs) -FOREACH(src ${dist_libPARAVIS_la_SOURCES}) - SET(srcs ${srcs} ${src}) -ENDFOREACH(src ${dist_libPARAVIS_la_SOURCES}) + # All wrapping tools have to be build before generating the above module - NEEDED? + ###ADD_DEPENDENCIES(SalomeIDLPARAVIS vtkWrapIDL_HH vtkWrapIDL_CC vtkWrapIDL) -FOREACH(f ${MOC_FILES}) - SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f}) -ENDFOREACH(f ${MOC_FILES}) + # Intermediate target used in PVGUI directory (we can not cross reference + # a generated source file across directories, hence this trick): + INCLUDE_DIRECTORIES( + ${PROJECT_BINARY_DIR}/idl + ${PROJECT_BINARY_DIR}/src/VTKWrapping + ) +ENDIF() -ADD_LIBRARY(PARAVIS SHARED ${srcs}) +ADD_LIBRARY(PARAVIS ${PVGUI_SOURCES}) +IF(NOT SALOME_PARAVIS_MINIMAL_CORBA) + # Make sure the generation of the VTK wrapping get executed first: + ADD_DEPENDENCIES(PARAVIS PARAVIS_CreateClass.cxx) +ENDIF() -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}) +IF(NOT SALOME_PARAVIS_MINIMAL_CORBA) + # Ensure .hh files corresponding to IDL have been generated first: + ADD_DEPENDENCIES(PARAVIS omniorb_module_SalomeIDLPARAVIS) +ENDIF() -SET_TARGET_PROPERTIES(PARAVIS PROPERTIES COMPILE_FLAGS "${flags}") -SET_TARGET_PROPERTIES(PARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO}) +TARGET_LINK_LIBRARIES(PARAVIS ${_link_LIBRARIES}) +INSTALL(TARGETS PARAVIS EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS}) -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/vtkParseMain.c - ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.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(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}) +QT4_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_PARAVIS_INSTALL_RES_DATA}") +INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_PARAVIS_INSTALL_RES_DATA})