]> SALOME platform Git repositories - modules/paravis.git/blob - src/PVGUI/CMakeLists.txt
Salome HOME
Merge from V6_main 28/02/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
48 INCLUDE(wrap.cmake)
49
50 INCLUDE(${ParaView_CMAKE_DIR}/vtkClientServer.cmake)
51 VTK_WRAP_ClientServer(vtkEDFCutterCS vtkEDFCutter_SRCS ${GUI_ROOT_DIR}/include/salome/vtkEDFCutter.h)
52
53 # Library sources
54 SET(dist_libPARAVIS_la_SOURCES
55   PVGUI_Module.h
56   PVGUI_Module.cxx
57   PVGUI_Module_actions.cxx
58   PVGUI_Module_widgets.cxx
59   PVGUI_ViewManager.h
60   PVGUI_ViewManager.cxx
61   PVGUI_ViewModel.h
62   PVGUI_ViewModel.cxx
63   PVGUI_ViewWindow.h
64   PVGUI_ViewWindow.cxx
65   PVGUI_OutputWindowAdapter.h
66   PVGUI_OutputWindowAdapter.cxx
67   PVGUI_Tools.h
68   PVGUI_Tools.cxx
69   PVGUI_ParaViewSettingsPane.h
70   PVGUI_ParaViewSettingsPane.cxx
71   PV_I.h
72   PARAVIS_Gen_i.hh
73   PV_Events.h
74   PV_Tools.h
75   PARAVIS_Gen_i.cc
76   PV_Tools.cxx
77   ${WRAP_IDL_I_HH}
78   ${WRAP_IDL_I_CC}
79   PARAVIS_CreateClass.cxx
80   ${vtkEDFCutter_SRCS}
81   )
82
83 # Check ParaView documentation file existence
84 # if it exists add it to the resources (compile into binary form)
85 # otherwise print warning message
86 SET(PV_DOC_FILE ${ParaView_INSTALL_PREFIX}/share/doc/paraview-${PARAVIEW_VERSION_MAJOR}.${PARAVIEW_VERSION_MINOR}/paraview.qch)
87 IF (EXISTS ${PV_DOC_FILE})
88   SET(RC_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/PVGUI.qrc.in)
89   SET(RC_GENERATED ${CMAKE_CURRENT_BINARY_DIR}/PVGUI.qrc)
90   MESSAGE(STATUS "Creation of ${RC_GENERATED}")
91   CONFIGURE_FILE(${RC_SOURCE} ${RC_GENERATED})
92   QT4_ADD_RESOURCES(RCS_SOURCES ${RC_GENERATED})
93   SET(dist_libPARAVIS_la_SOURCES ${dist_libPARAVIS_la_SOURCES} ${RCS_SOURCES})
94   ADD_DEFINITIONS(-DHAS_PV_DOC)
95 ELSE (EXISTS ${PV_DOC_FILE})
96   MESSAGE(WARNING "Help file for ParaView has not been found! ParaView documentation will not be available.")
97 ENDIF (EXISTS ${PV_DOC_FILE})
98
99 # MOC pre-processing
100 SET(MOC_FILES
101   PVGUI_Module_moc.cxx
102   PVGUI_ViewManager_moc.cxx
103   PVGUI_ViewModel_moc.cxx
104   PVGUI_ViewWindow_moc.cxx
105   PVGUI_ParaViewSettingsPane_moc.cxx
106   )
107
108 # additionnal compilation flags
109 # Note that ParaView uses HDF5
110 SET(libPARAVIS_la_CPPFLAGS
111   -ftemplate-depth-32
112   ${QT_INCLUDES}
113   ${QT_ASSISTANT_INCLUDES}
114   ${PYTHON_INCLUDES}
115   ${CAS_CPPFLAGS}
116   ${CAS_CXXFLAGS}
117   ${KERNEL_CXXFLAGS}
118   ${OMNIORB_DEFINITIONS}
119   ${BOOST_CPPFLAGS}
120   ${GUI_CXXFLAGS}
121   ${MED_CXXFLAGS}
122   ${VISU_CXXFLAGS}
123   ${VISU_PARAVIS_DEFINES}
124   )
125
126 # remove deprecation warnings from Paraview
127 IF(WINDOWS)
128 ELSE(WINDOWS)
129   SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
130 ENDIF(WINDOWS)
131
132 # resources files
133 SET(nodist_salomeres_DATA
134   PARAVIS_images.qm
135   PARAVIS_msg_en.qm
136   PARAVIS_msg_fr.qm
137   )
138
139 SET(srcs)
140 FOREACH(src ${dist_libPARAVIS_la_SOURCES})
141   SET(srcs ${srcs} ${src})
142 ENDFOREACH(src ${dist_libPARAVIS_la_SOURCES})
143
144 FOREACH(f ${MOC_FILES})
145   SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
146 ENDFOREACH(f ${MOC_FILES})
147
148 ADD_LIBRARY(PARAVIS SHARED ${srcs})
149
150 SET(flags)
151 FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS})
152   SET(flags "${flags} ${f}")
153 ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${libPARAVIS_la_CPPFLAGS})
154
155 SET_TARGET_PROPERTIES(PARAVIS PROPERTIES COMPILE_FLAGS "${flags}")
156 SET_TARGET_PROPERTIES(PARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
157
158 TARGET_LINK_LIBRARIES(PARAVIS 
159   ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS}
160   ${OMNIORB_LIBRARIES}
161   ${QT_LIBS}
162   ${CAS_KERNEL}
163   ${VTK_LIBS}
164   ${PYTHON_LIBS}
165   ${KERNEL_LDFLAGS} ${SalomeDS} ${SALOMELocalTrace} ${SalomeIDLKernel} ${SalomeNS} ${SalomeLifeCycleCORBA} ${SalomeContainer} ${TOOLSDS}
166   ${GUI_LDFLAGS} ${SalomeApp} ${LightApp} ${CAM} ${qtx} ${suit} ${Event} ${PyInterp} ${SalomeObject} ${vtkTools}
167   ${MED_LDFLAGS} ${SalomeIDLMED}
168   ${VISU_LDFLAGS}
169   ${VISU_PARAVIS_LIBS}
170   ${PARAVIEW_LIBS}
171   SalomeIDLPARAVIS
172 )
173 INSTALL(TARGETS PARAVIS DESTINATION lib/salome)
174
175 FOREACH(name ${bin_PROGRAMS})
176   ADD_EXECUTABLE(${name} 
177     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c 
178     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParsePreprocess.c
179     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseHierarchy.c
180     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c
181     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.c
182     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrap.c
183     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrapText.c
184     ${CMAKE_SOURCE_DIR}/idl/vtkWrapIDL.c)
185   ADD_DEPENDENCIES(${name} generate_txt)
186   
187   SET(flags)
188   FOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS})
189     SET(flags "${flags} ${f}")
190   ENDFOREACH(f ${PARAVIEW_INCLUDES} ${VTK_INCLUDES} ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${${name}_CPPFLAGS})
191   
192   SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
193   TARGET_LINK_LIBRARIES(${name} ${PLATFORM_LIBADD})
194   
195   SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name})
196   IF(WINDOWS)
197     IF(CMAKE_BUILD_TOOL STREQUAL nmake)
198       SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${name}.exe)
199     ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
200       SET(${name}_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${name}.exe)
201     ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
202   ENDIF(WINDOWS)
203   INSTALL(FILES ${${name}_EXEFILE} DESTINATION bin/salome PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
204 ENDFOREACH(name ${bin_PROGRAMS})
205
206 FOREACH(output ${MOC_FILES})
207   STRING(REGEX REPLACE _moc.cxx .h input ${output})
208   
209   SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
210   SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
211   ADD_CUSTOM_COMMAND(
212     OUTPUT ${output}
213     COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output}
214     MAIN_DEPENDENCY ${input}
215     )
216 ENDFOREACH(output ${MOC_FILES})
217             
218 FOREACH(f ${nodist_salomeres_DATA})
219   STRING(REGEX REPLACE .qm .ts input ${f})
220   SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input})
221   SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f})
222   EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output})
223   INSTALL(FILES ${output} DESTINATION share/salome/resources/paravis)
224 ENDFOREACH(f ${nodist_salomeres_DATA})