]> SALOME platform Git repositories - modules/paravis.git/blob - src/PVGUI/CMakeLists.txt
Salome HOME
Merge from BR_PORTING_VTK6 01/03/2013
[modules/paravis.git] / src / PVGUI / CMakeLists.txt
1 # Copyright (C) 2010-2012  CEA/DEN, EDF R&D
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 SET(VERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MAINTENANCE})
21 SET(SOVERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR})
22
23 ADD_DEFINITIONS(-DHAVE_SALOME_CONFIG)
24 INCLUDE_DIRECTORIES(${OMNIORB_INCLUDE_DIRS} ${KERNEL_ROOT_DIR}/include/salome ${CMAKE_CURRENT_SOURCE_DIR}/../ParaView ${CMAKE_BINARY_DIR}/idl ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
25
26 IF(WITH_VISU)
27   SET(VISU_PARAVIS_LIBS
28     ${SalomeIDLVISU}
29     )
30   
31   ADD_DEFINITIONS(-DWITH_VISU)
32 ENDIF(WITH_VISU)
33
34 #Executable
35 SET(bin_PROGRAMS
36   vtkWrapIDL_HH
37   vtkWrapIDL_CC
38   )
39
40 SET(vtkWrapIDL_HH_CPPFLAGS
41   -DIDL_I_HH
42   )
43
44 SET(vtkWrapIDL_CC_CPPFLAGS
45   -DIDL_I_CC
46   )
47 #VTN TODO:
48 #IF(VTK_LEGACY_REMOVE)
49 #  ADD_DEFINITIONS(-DVTK_PARSE_LEGACY_REMOVE)
50 #ENDIF()
51
52 INCLUDE(wrap.cmake)
53
54 INCLUDE(${ParaView_CMAKE_DIR}/vtkWrapClientServer.cmake)
55 VTK_WRAP_ClientServer(vtkEDFCutterCS vtkEDFCutter_SRCS ${GUI_ROOT_DIR}/include/salome/vtkEDFCutter.h)
56
57 # Library sources
58 SET(dist_libPARAVIS_la_SOURCES
59   PVGUI_Module.h
60   PVGUI_Module.cxx
61   PVGUI_Module_actions.cxx
62   PVGUI_Module_widgets.cxx
63   PVGUI_ViewManager.h
64   PVGUI_ViewManager.cxx
65   PVGUI_ViewModel.h
66   PVGUI_ViewModel.cxx
67   PVGUI_ViewWindow.h
68   PVGUI_ViewWindow.cxx
69   PVGUI_OutputWindowAdapter.h
70   PVGUI_OutputWindowAdapter.cxx
71   PVGUI_Tools.h
72   PVGUI_Tools.cxx
73   PVGUI_ParaViewSettingsPane.h
74   PVGUI_ParaViewSettingsPane.cxx
75   PVGUI_MatplotlibMathTextUtilities.h
76   PVGUI_MatplotlibMathTextUtilities.cxx
77   PV_I.h
78   PARAVIS_Gen_i.hh
79   PV_Events.h
80   PV_Tools.h
81   PARAVIS_Gen_i.cc
82   PV_Tools.cxx
83   ${WRAP_IDL_I_HH}
84   ${WRAP_IDL_I_CC}
85   PARAVIS_CreateClass.cxx
86   ${vtkEDFCutter_SRCS}
87   )
88
89 # Check ParaView documentation file existence
90 # if it exists add it to the resources (compile into binary form)
91 # otherwise print warning message
92 SET(PV_DOC_FILE ${ParaView_INSTALL_PREFIX}/share/doc/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}/paraview.qch)
93 IF (EXISTS ${PV_DOC_FILE})
94   SET(RC_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/PVGUI.qrc.in)
95   SET(RC_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/PVGUI.qrc)
96   MESSAGE(STATUS "Creation of ${RC_GENERATED}")
97   CONFIGURE_FILE(${RC_SOURCE} ${RC_GENERATED})
98   QT4_ADD_RESOURCES(RCS_SOURCES ${RC_GENERATED})
99   SET(dist_libPARAVIS_la_SOURCES ${dist_libPARAVIS_la_SOURCES} ${RCS_SOURCES})
100   ADD_DEFINITIONS(-DHAS_PV_DOC)
101 ELSE (EXISTS ${PV_DOC_FILE})
102   MESSAGE(WARNING "Help file for ParaView has not been found! ParaView documentation will not be available.")
103 ENDIF (EXISTS ${PV_DOC_FILE})
104
105 # MOC pre-processing
106 SET(MOC_FILES
107   PVGUI_Module_moc.cxx
108   PVGUI_ViewManager_moc.cxx
109   PVGUI_ViewModel_moc.cxx
110   PVGUI_ViewWindow_moc.cxx
111   PVGUI_ParaViewSettingsPane_moc.cxx
112   )
113
114 # additionnal compilation flags
115 # Note that ParaView uses HDF5
116 SET(libPARAVIS_la_CPPFLAGS
117   -ftemplate-depth-32
118   ${QT_INCLUDES}
119   ${QT_ASSISTANT_INCLUDES}
120   ${PYTHON_INCLUDES}
121   ${CAS_CPPFLAGS}
122   ${CAS_CXXFLAGS}
123   ${KERNEL_CXXFLAGS}
124   ${OMNIORB_DEFINITIONS}
125   ${BOOST_CPPFLAGS}
126   ${GUI_CXXFLAGS}
127   ${MED_CXXFLAGS}
128   ${VISU_CXXFLAGS}
129   ${VISU_PARAVIS_DEFINES}
130   )
131
132 # remove deprecation warnings from Paraview
133 IF(WINDOWS)
134 ELSE(WINDOWS)
135   SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
136 ENDIF(WINDOWS)
137
138 # resources files
139 SET(nodist_salomeres_DATA
140   PARAVIS_images.qm
141   PARAVIS_msg_en.qm
142   PARAVIS_msg_fr.qm
143   )
144
145 SET(srcs)
146 FOREACH(src ${dist_libPARAVIS_la_SOURCES})
147   SET(srcs ${srcs} ${src})
148 ENDFOREACH(src ${dist_libPARAVIS_la_SOURCES})
149
150 FOREACH(f ${MOC_FILES})
151   SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
152 ENDFOREACH(f ${MOC_FILES})
153
154 ADD_LIBRARY(PARAVIS SHARED ${srcs})
155
156 SET(flags)
157 FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS})
158   SET(flags "${flags} ${f}")
159 ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS})
160
161 SET_TARGET_PROPERTIES(PARAVIS PROPERTIES COMPILE_FLAGS "${flags}")
162 SET_TARGET_PROPERTIES(PARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
163
164 #FIND_PACKAGE(VTK 6.0 COMPONENTS vtkPVClientServerCoreCore vtkPVServerImplementationCore NO_MODULE)
165 #SET(VTK_LIBS vtkPVClientServerCoreCore vtkPVServerImplementationCore)
166 SET(VTK_LIBS)
167 FIND_PACKAGE(ParaView COMPONENTS pqApplicationComponents NO_MODULE)
168 SET(PARAVIEW_LIBS pqApplicationComponents)
169
170 TARGET_LINK_LIBRARIES(PARAVIS 
171   ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS}
172   ${OMNIORB_LIBRARIES}
173   ${QT_LIBS}
174   ${CAS_KERNEL}
175   ${VTK_LIBS}
176   ${PYTHON_LIBS}
177   ${KERNEL_LDFLAGS} ${SalomeDS} ${SALOMELocalTrace} ${SalomeIDLKernel} ${SalomeNS} ${SalomeLifeCycleCORBA} ${SalomeContainer} ${TOOLSDS}
178   ${GUI_LDFLAGS} ${SalomeApp} ${LightApp} ${CAM} ${qtx} ${suit} ${Event} ${PyInterp} ${SalomeObject} ${vtkTools}
179   ${MED_LDFLAGS} ${SalomeIDLMED}
180   ${VISU_LDFLAGS}
181   ${VISU_PARAVIS_LIBS}
182   ${PARAVIEW_LIBS}
183   SalomeIDLPARAVIS
184 )
185 INSTALL(TARGETS PARAVIS DESTINATION lib/salome)
186
187 FOREACH(name ${bin_PROGRAMS})
188   ADD_EXECUTABLE(${name} 
189     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c 
190     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParsePreprocess.c
191     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseHierarchy.c
192     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.c
193     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c
194     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseData.c
195     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseString.c
196     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrap.c
197 #    ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrapText.c
198     ${CMAKE_SOURCE_DIR}/idl/vtkWrapIDL.c)
199   ADD_DEPENDENCIES(${name} generate_txt)
200   
201   set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c PROPERTY COMPILE_DEFINITIONS
202     VTK_PARSE_VERSION="${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}")
203
204   SET(flags)
205   FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS})
206     SET(flags "${flags} ${f}")
207   ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS})
208   
209   SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
210   TARGET_LINK_LIBRARIES(${name} ${PLATFORM_LIBADD})
211   
212   SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name})
213   IF(WINDOWS)
214     IF(CMAKE_BUILD_TOOL STREQUAL nmake)
215       SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name}.exe)
216     ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
217       SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${name}.exe)
218     ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
219   ENDIF(WINDOWS)
220   INSTALL(FILES ${${name}_EXEFILE} DESTINATION bin/salome PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
221 ENDFOREACH(name ${bin_PROGRAMS})
222
223 FOREACH(output ${MOC_FILES})
224   STRING(REGEX REPLACE _moc.cxx .h input ${output})
225   
226   SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
227   SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
228   ADD_CUSTOM_COMMAND(
229     OUTPUT ${output}
230     COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output}
231     MAIN_DEPENDENCY ${input}
232     )
233 ENDFOREACH(output ${MOC_FILES})
234             
235 FOREACH(f ${nodist_salomeres_DATA})
236   STRING(REGEX REPLACE .qm .ts input ${f})
237   SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input})
238   SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f})
239   EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output})
240   INSTALL(FILES ${output} DESTINATION share/salome/resources/paravis)
241 ENDFOREACH(f ${nodist_salomeres_DATA})