Salome HOME
CMake: new CMake procedure for GUI.
[modules/gui.git] / src / LightApp / CMakeLists.txt
1 # Copyright (C) 2012-2013  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(UseQt4Ext)
20
21 INCLUDE_DIRECTORIES(
22   ${CAS_INCLUDE_DIRS}
23   ${QT_INCLUDES}
24   ${HDF5_INCLUDE_DIRS}
25   ${PYTHON_INCLUDE_DIRS}
26   ${PTHREAD_INCLUDE_DIRS}
27   ${QWT_INCLUDE_DIR}
28   ${KERNEL_INCLUDE_DIRS}
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 ADD_DEFINITIONS(${PYTHON_DEFINITIONS} ${HDF5_DEFINITIONS} ${CAS_DEFINITIONS} ${QT_DEFINITIONS})
43
44 IF(NOT WINDOWS)
45   ADD_DEFINITIONS("-Wno-deprecated")
46 ENDIF(NOT WINDOWS)
47
48 SET(COMMON_LIBS 
49   ${QT_LIBRARIES}
50   suit
51   std
52   CAM
53   LogWindow
54   ${CAS_KERNEL}
55   SalomePrs
56   ObjBrowser
57   SalomeStyle
58   Event
59   ${HDF5_LIBRARIES}
60   ${KERNEL_LDFLAGS}
61   ${KERNEL_SalomeHDFPersist}
62   ${KERNEL_SALOMELocalTrace}
63 )
64
65 SET(GUI_HEADERS   
66   LightApp_AboutDlg.h
67   LightApp_Application.h
68   LightApp_DataModel.h
69   LightApp_Dialog.h
70   LightApp_OBSelector.h
71   LightApp_Operation.h
72   LightApp_Module.h
73   LightApp_ModuleAction.h
74   LightApp_ModuleDlg.h
75   LightApp_NameDlg.h
76   LightApp_SelectionMgr.h
77   LightApp_ShowHideOp.h
78   LightApp_Study.h
79   LightApp_SwitchOp.h
80   LightApp_Preferences.h
81   LightApp_PreferencesDlg.h
82   LightApp_WgViewModel.h
83 )
84
85 SET(RCCS LightApp.qrc)
86
87 SET(LightApp_SOURCES
88   LightApp_AboutDlg.cxx
89   LightApp_Application.cxx
90   LightApp_DataModel.cxx
91   LightApp_DataObject.cxx
92   LightApp_DataOwner.cxx
93   LightApp_DataSubOwner.cxx
94   LightApp_Dialog.cxx
95   LightApp_Displayer.cxx
96   LightApp_Driver.cxx
97   LightApp_EventFilter.cxx
98   LightApp_HDFDriver.cxx
99   LightApp_Module.cxx
100   LightApp_ModuleAction.cxx
101   LightApp_ModuleDlg.cxx
102   LightApp_NameDlg.cxx
103   LightApp_OBSelector.cxx
104   LightApp_Operation.cxx
105   LightApp_Selection.cxx
106   LightApp_SelectionMgr.cxx
107   LightApp_ShowHideOp.cxx
108   LightApp_Study.cxx
109   LightApp_SwitchOp.cxx
110   LightApp_Preferences.cxx
111   LightApp_PreferencesDlg.cxx
112   LightApp_WgViewModel.cxx
113   LightApp_FullScreenHelper.cxx
114 )
115
116 SET(GUITS_SOURCES
117   resources/LightApp_images.ts
118   resources/LightApp_msg_en.ts
119   resources/LightApp_msg_fr.ts
120 )
121
122 SET(COMMON_HEADERS_H 
123   LightApp.h
124   LightApp_AboutDlg.h
125   LightApp_Application.h
126   LightApp_DataModel.h
127   LightApp_DataObject.h
128   LightApp_DataOwner.h
129   LightApp_DataSubOwner.h
130   LightApp_Dialog.h
131   LightApp_Displayer.h
132   LightApp_Driver.h
133   LightApp_EventFilter.h
134   LightApp_HDFDriver.h
135   LightApp_Module.h
136   LightApp_ModuleAction.h
137   LightApp_ModuleDlg.h
138   LightApp_NameDlg.h
139   LightApp_OBSelector.h
140   LightApp_Operation.h
141   LightApp_Selection.h
142   LightApp_SelectionMgr.h
143   LightApp_ShowHideOp.h
144   LightApp_Study.h
145   LightApp_SwitchOp.h
146   LightApp_Preferences.h
147   LightApp_PreferencesDlg.h
148   LightApp_UpdateFlags.h
149   LightApp_WgViewModel.h
150   LightApp_FullScreenHelper.h
151 )
152
153 IF(SALOME_USE_PYCONSOLE)
154   INCLUDE_DIRECTORIES(
155   ${PYTHON_INCLUDE_DIRS}
156   ${CMAKE_CURRENT_SOURCE_DIR}/../PyConsole
157   ${CMAKE_CURRENT_SOURCE_DIR}/../PyInterp
158   ${CMAKE_CURRENT_SOURCE_DIR}/../SUITApp
159   )
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(SALOME_USE_PYCONSOLE)
164   ADD_DEFINITIONS("-DDISABLE_PYCONSOLE")
165 ENDIF(SALOME_USE_PYCONSOLE)
166
167 IF(SALOME_USE_VTKVIEWER)
168   INCLUDE_DIRECTORIES(
169   ${VTK_INCLUDE_DIRS}
170   ${CMAKE_CURRENT_SOURCE_DIR}/../VTKViewer
171   )
172   SET(COMMON_LIBS ${COMMON_LIBS} ${VTK_LIBRARIES} VTKViewer)
173   IF(SALOME_USE_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(SALOME_USE_SALOMEOBJECT)
179 ELSE(SALOME_USE_VTKVIEWER)
180   ADD_DEFINITIONS("-DDISABLE_VTKVIEWER")
181 ENDIF(SALOME_USE_VTKVIEWER)
182
183 IF(SALOME_USE_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(SALOME_USE_OCCVIEWER)
190   ADD_DEFINITIONS("-DDISABLE_OCCVIEWER")
191 ENDIF(SALOME_USE_OCCVIEWER)
192
193 IF(SALOME_USE_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(SALOME_USE_GLVIEWER)
200   ADD_DEFINITIONS("-DDISABLE_GLVIEWER")
201 ENDIF(SALOME_USE_GLVIEWER)
202
203 IF(SALOME_USE_PLOT2DVIEWER)
204   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../Plot2d)
205   ADD_DEFINITIONS(${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(SALOME_USE_PLOT2DVIEWER)
211   ADD_DEFINITIONS("-DDISABLE_PLOT2DVIEWER")
212 ENDIF(SALOME_USE_PLOT2DVIEWER)
213
214 IF(SALOME_USE_SUPERVGRAPHVIEWER)
215   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SUPERVGraph)
216   SET(COMMON_LIBS ${COMMON_LIBS} SUPERVGraph)
217 ELSE(SALOME_USE_SUPERVGRAPHVIEWER)
218   ADD_DEFINITIONS("-DDISABLE_SUPERVGRAPHVIEWER")
219 ENDIF(SALOME_USE_SUPERVGRAPHVIEWER)
220
221 IF(SALOME_USE_QXGRAPHVIEWER)
222   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../QxScene)
223   SET(COMMON_LIBS ${COMMON_LIBS} QxScene)
224 ELSE(SALOME_USE_QXGRAPHVIEWER)
225   ADD_DEFINITIONS("-DDISABLE_QXGRAPHVIEWER")
226 ENDIF(SALOME_USE_QXGRAPHVIEWER)
227
228 IF(SALOME_USE_SALOMEOBJECT)
229   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../OBJECT)
230   SET(COMMON_LIBS ${COMMON_LIBS} SalomeObject)
231   IF(SALOME_USE_PLOT2DVIEWER)
232     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SPlot2d)
233     SET(COMMON_LIBS ${COMMON_LIBS} SPlot2d)
234   ENDIF(SALOME_USE_PLOT2DVIEWER)
235  
236   IF(SALOME_USE_OCCVIEWER)
237     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SOCC)
238     SET(COMMON_LIBS ${COMMON_LIBS} SOCC)
239   ENDIF(SALOME_USE_OCCVIEWER)
240
241   IF(SALOME_USE_VTKVIEWER)
242     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../SVTK)
243   ENDIF(SALOME_USE_VTKVIEWER)
244 ELSE(SALOME_USE_SALOMEOBJECT)
245   ADD_DEFINITIONS("-DDISABLE_SALOMEOBJECT")
246 ENDIF(SALOME_USE_SALOMEOBJECT)
247     
248 QT4_WRAP_CPP(GUI_HEADERS_MOC ${GUI_HEADERS})
249 QT4_ADD_RESOURCES(RCC_SRCS ${RCCS})
250 ADD_LIBRARY(LightApp ${LightApp_SOURCES} ${GUI_HEADERS_MOC} ${RCC_SRCS})
251 TARGET_LINK_LIBRARIES(LightApp ${COMMON_LIBS})
252 INSTALL(TARGETS LightApp EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
253
254 INSTALL(FILES ${COMMON_HEADERS_H} DESTINATION ${SALOME_INSTALL_HEADERS})
255 QT4_INSTALL_TS_RESOURCES("${GUITS_SOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}")
256
257 FILE(GLOB GUIPNG_DATA "${CMAKE_CURRENT_SOURCE_DIR}/resources/*.png")
258 SET(GUI_DATA ${GUIPNG_DATA} ${CMAKE_CURRENT_SOURCE_DIR}/resources/LightApp.ini ${CMAKE_CURRENT_SOURCE_DIR}/resources/LightApp.xml)
259 INSTALL(FILES ${GUI_DATA} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})