Salome HOME
Merge from V6_main (04/10/2012)
[modules/gui.git] / src / LightApp / CMakeLists.txt
1 # Copyright (C) 2012  CEA/DEN, EDF R&D, OPEN CASCADE
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 INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/UseQT4EXT.cmake)
20
21 INCLUDE_DIRECTORIES(
22   ${CAS_INCLUDE_DIRS}
23   ${QT_INCLUDE_DIRS}
24   ${HDF5_INCLUDE_DIRS}
25   ${PYTHON_INCLUDE_DIRS}
26   ${PTHREAD_INCLUDE_DIRS}
27   ${QWT_INCLUDE_DIRS}
28   ${KERNEL_ROOT_DIR}/include/salome
29   ${CMAKE_BINARY_DIR}
30   ${CMAKE_CURRENT_SOURCE_DIR}/../SUIT
31   ${CMAKE_CURRENT_SOURCE_DIR}/../STD
32   ${CMAKE_CURRENT_SOURCE_DIR}/../CAM
33   ${CMAKE_CURRENT_SOURCE_DIR}/../ObjBrowser
34   ${CMAKE_CURRENT_SOURCE_DIR}/../LogWindow
35   ${CMAKE_CURRENT_SOURCE_DIR}/../Prs
36   ${CMAKE_CURRENT_SOURCE_DIR}/../Qtx
37   ${CMAKE_CURRENT_SOURCE_DIR}/../Event
38   ${CMAKE_CURRENT_SOURCE_DIR}/../Style
39   ${CMAKE_CURRENT_SOURCE_DIR}/../CASCatch
40 )
41
42 SET(COMMON_FLAGS "${PYTHON_DEFINITIONS} ${HDF5_DEFINITIONS} ${CAS_DEFINITIONS} ${QT_DEFINITIONS} ${PLATFORM_DEFINITIONS}")
43 IF(NOT WINDOWS)
44   SET(COMMON_FLAGS "${COMMON_FLAGS} -Wno-deprecated")
45 ENDIF(NOT WINDOWS)
46
47 SET(COMMON_LIBS 
48   ${QT_LIBS}
49   suit
50   std
51   CAM
52   LogWindow
53   ${CAS_KERNEL}
54   SalomePrs
55   ObjBrowser
56   SalomeStyle
57   Event
58   ${HDF5_LIBS}
59   ${KERNEL_LDFLAGS}
60   ${SalomeHDFPersist}
61   ${SALOMELocalTrace}
62 )
63
64 SET(GUI_HEADERS   
65   LightApp_AboutDlg.h
66   LightApp_Application.h
67   LightApp_DataModel.h
68   LightApp_Dialog.h
69   LightApp_OBSelector.h
70   LightApp_Operation.h
71   LightApp_Module.h
72   LightApp_ModuleAction.h
73   LightApp_ModuleDlg.h
74   LightApp_NameDlg.h
75   LightApp_SelectionMgr.h
76   LightApp_ShowHideOp.h
77   LightApp_Study.h
78   LightApp_SwitchOp.h
79   LightApp_Preferences.h
80   LightApp_PreferencesDlg.h
81   LightApp_WgViewModel.h
82 )
83
84 SET(RCCS LightApp.qrc)
85
86 SET(LightApp_SOURCES
87   LightApp_AboutDlg.cxx
88   LightApp_Application.cxx
89   LightApp_DataModel.cxx
90   LightApp_DataObject.cxx
91   LightApp_DataOwner.cxx
92   LightApp_DataSubOwner.cxx
93   LightApp_Dialog.cxx
94   LightApp_Displayer.cxx
95   LightApp_Driver.cxx
96   LightApp_EventFilter.cxx
97   LightApp_HDFDriver.cxx
98   LightApp_Module.cxx
99   LightApp_ModuleAction.cxx
100   LightApp_ModuleDlg.cxx
101   LightApp_NameDlg.cxx
102   LightApp_OBSelector.cxx
103   LightApp_Operation.cxx
104   LightApp_Selection.cxx
105   LightApp_SelectionMgr.cxx
106   LightApp_ShowHideOp.cxx
107   LightApp_Study.cxx
108   LightApp_SwitchOp.cxx
109   LightApp_Preferences.cxx
110   LightApp_PreferencesDlg.cxx
111   LightApp_WgViewModel.cxx
112   LightApp_FullScreenHelper.cxx
113 )
114
115 SET(GUITS_SOURCES
116   resources/LightApp_images.ts
117   resources/LightApp_msg_en.ts
118   resources/LightApp_msg_fr.ts
119 )
120
121 SET(COMMON_HEADERS_H 
122   LightApp.h
123   LightApp_AboutDlg.h
124   LightApp_Application.h
125   LightApp_DataModel.h
126   LightApp_DataObject.h
127   LightApp_DataOwner.h
128   LightApp_DataSubOwner.h
129   LightApp_Dialog.h
130   LightApp_Displayer.h
131   LightApp_Driver.h
132   LightApp_EventFilter.h
133   LightApp_HDFDriver.h
134   LightApp_Module.h
135   LightApp_ModuleAction.h
136   LightApp_ModuleDlg.h
137   LightApp_NameDlg.h
138   LightApp_OBSelector.h
139   LightApp_Operation.h
140   LightApp_Selection.h
141   LightApp_SelectionMgr.h
142   LightApp_ShowHideOp.h
143   LightApp_Study.h
144   LightApp_SwitchOp.h
145   LightApp_Preferences.h
146   LightApp_PreferencesDlg.h
147   LightApp_UpdateFlags.h
148   LightApp_WgViewModel.h
149   LightApp_FullScreenHelper.h
150 )
151
152 IF(ENABLE_PYCONSOLE)
153   INCLUDE_DIRECTORIES(
154   ${PYTHON_INCLUDE_DIRS}
155   ${CMAKE_CURRENT_SOURCE_DIR}/../PyConsole
156   ${CMAKE_CURRENT_SOURCE_DIR}/../PyInterp
157   ${CMAKE_CURRENT_SOURCE_DIR}/../SUITApp
158   )
159   SET(COMMON_FLAGS "${COMMON_FLAGS} ${PYTHON_DEFINITIONS}")
160   SET(COMMON_HEADERS_H ${COMMON_HEADERS_H} LightApp_PyInterp.h)
161   SET(LightApp_SOURCES ${LightApp_SOURCES} LightApp_PyInterp.cxx)
162   SET(COMMON_LIBS ${COMMON_LIBS} PyInterp PyConsole SUITApp)
163 ELSE(ENABLE_PYCONSOLE)
164   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_PYCONSOLE")
165 ENDIF(ENABLE_PYCONSOLE)
166
167 IF(ENABLE_VTKVIEWER)
168   INCLUDE_DIRECTORIES(
169   ${VTK_INCLUDE_DIRS}
170   ${CMAKE_CURRENT_SOURCE_DIR}/../VTKViewer
171   )
172   SET(COMMON_LIBS ${COMMON_LIBS} ${VTK_LIBS} VTKViewer)
173   IF(ENABLE_SALOMEOBJECT)
174     SET(COMMON_HEADERS_H ${COMMON_HEADERS_H} LightApp_VTKSelector.h)
175     SET(LightApp_SOURCES ${LightApp_SOURCES} LightApp_VTKSelector.cxx)
176     SET(GUI_HEADERS ${GUI_HEADERS} LightApp_VTKSelector.h)
177     SET(COMMON_LIBS ${COMMON_LIBS} SVTK)
178   ENDIF(ENABLE_SALOMEOBJECT)
179 ELSE(ENABLE_VTKVIEWER)
180   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_VTKVIEWER")
181 ENDIF(ENABLE_VTKVIEWER)
182
183 IF(ENABLE_OCCVIEWER)
184   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../OCCViewer)
185   SET(COMMON_HEADERS_H ${COMMON_HEADERS_H} LightApp_OCCSelector.h)
186   SET(LightApp_SOURCES ${LightApp_SOURCES} LightApp_OCCSelector.cxx)
187   SET(COMMON_LIBS ${COMMON_LIBS} OCCViewer)
188   SET(GUI_HEADERS ${GUI_HEADERS} LightApp_OCCSelector.h)
189 ELSE(ENABLE_OCCVIEWER)
190   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_OCCVIEWER")
191 ENDIF(ENABLE_OCCVIEWER)
192
193 IF(ENABLE_GLVIEWER)
194   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../GLViewer)
195   SET(COMMON_HEADERS_H ${COMMON_HEADERS_H} LightApp_GLSelector.h)
196   SET(LightApp_SOURCES ${LightApp_SOURCES} LightApp_GLSelector.cxx)
197   SET(GUI_HEADERS ${GUI_HEADERS} LightApp_GLSelector.h)
198   SET(COMMON_LIBS ${COMMON_LIBS} GLViewer)
199 ELSE(ENABLE_GLVIEWER)
200   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_GLVIEWER")
201 ENDIF(ENABLE_GLVIEWER)
202
203 IF(ENABLE_PLOT2DVIEWER)
204   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../Plot2d)
205   SET(COMMON_FLAGS "${COMMON_FLAGS} ${QWT_DEFINITIONS}")
206   SET(COMMON_HEADERS_H ${COMMON_HEADERS_H} LightApp_Plot2dSelector.h)
207   SET(LightApp_SOURCES ${LightApp_SOURCES} LightApp_Plot2dSelector.cxx)
208   SET(GUI_HEADERS ${GUI_HEADERS} LightApp_Plot2dSelector.h)
209   SET(COMMON_LIBS ${COMMON_LIBS} Plot2d)
210 ELSE(ENABLE_PLOT2DVIEWER)
211   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_PLOT2DVIEWER")
212 ENDIF(ENABLE_PLOT2DVIEWER)
213
214 IF(ENABLE_SUPERVGRAPHVIEWER)
215   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SUPERVGraph)
216   SET(COMMON_LIBS ${COMMON_LIBS} SUPERVGraph)
217 ELSE(ENABLE_SUPERVGRAPHVIEWER)
218   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_SUPERVGRAPHVIEWER")
219 ENDIF(ENABLE_SUPERVGRAPHVIEWER)
220
221 IF(ENABLE_QXGRAPHVIEWER)
222   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../QxScene)
223   SET(COMMON_LIBS ${COMMON_LIBS} QxScene)
224 ELSE(ENABLE_QXGRAPHVIEWER)
225   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_QXGRAPHVIEWER")
226 ENDIF(ENABLE_QXGRAPHVIEWER)
227
228 IF(ENABLE_SALOMEOBJECT)
229   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../OBJECT)
230   SET(COMMON_LIBS ${COMMON_LIBS} SalomeObject)
231   IF(ENABLE_PLOT2DVIEWER)
232     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SPlot2d)
233     SET(COMMON_LIBS ${COMMON_LIBS} SPlot2d)
234   ENDIF(ENABLE_PLOT2DVIEWER)
235  
236   IF(ENABLE_OCCVIEWER)
237     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SOCC)
238     SET(COMMON_LIBS ${COMMON_LIBS} SOCC)
239   ENDIF(ENABLE_OCCVIEWER)
240
241   IF(ENABLE_VTKVIEWER)
242     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SVTK)
243   ENDIF(ENABLE_VTKVIEWER)
244 ELSE(ENABLE_SALOMEOBJECT)
245   SET(COMMON_FLAGS "${COMMON_FLAGS} -DDISABLE_SALOMEOBJECT")
246 ENDIF(ENABLE_SALOMEOBJECT)
247     
248 QT4_WRAP_CPP(GUI_HEADERS_MOC ${GUI_HEADERS})
249 QT4_ADD_RESOURCES(RCC_SRCS ${RCCS})
250 ADD_LIBRARY(LightApp SHARED ${LightApp_SOURCES} ${GUI_HEADERS_MOC} ${RCC_SRCS})
251 SET_TARGET_PROPERTIES(LightApp PROPERTIES COMPILE_FLAGS "${COMMON_FLAGS}")
252 TARGET_LINK_LIBRARIES(LightApp ${COMMON_LIBS})
253 INSTALL(TARGETS LightApp DESTINATION ${GUI_salomelib_LIBS})
254
255 INSTALL(FILES ${COMMON_HEADERS_H} DESTINATION ${GUI_salomeinclude_HEADERS})
256 QT4_INSTALL_TS_RESOURCES("${GUITS_SOURCES}" "${GUI_salomeres_DATA}")
257
258 FILE(GLOB GUIPNG_DATA "${CMAKE_CURRENT_SOURCE_DIR}/resources/*.png")
259 SET(GUI_DATA ${GUIPNG_DATA} ${CMAKE_CURRENT_SOURCE_DIR}/resources/LightApp.ini ${CMAKE_CURRENT_SOURCE_DIR}/resources/LightApp.xml)
260 INSTALL(FILES ${GUI_DATA} DESTINATION ${GUI_salomeres_DATA})