Salome HOME
0da16bbe27e85299185a1ef8edfbefd431ade0ff
[modules/gui.git] / src / SalomeApp / CMakeLists.txt
1 # Copyright (C) 2012-2023  CEA, EDF, 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, or (at your option) any later version.
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 ADD_SUBDIRECTORY(pluginsdemo)
21 IF(SALOME_BUILD_TESTS)
22    ADD_SUBDIRECTORY(Test)
23 ENDIF()
24
25 INCLUDE(UseQtExt)
26
27 # --- options ---
28
29 # additional include directories
30 INCLUDE_DIRECTORIES(
31   ${OpenCASCADE_INCLUDE_DIR}
32   ${QT_INCLUDES}
33   ${QWT_INCLUDE_DIR}
34   ${Boost_INCLUDE_DIRS}
35   ${PTHREAD_INCLUDE_DIR}
36   ${OMNIORB_INCLUDE_DIR}
37   ${PROJECT_BINARY_DIR}/idl
38   ${PROJECT_SOURCE_DIR}/src/CAM
39   ${PROJECT_SOURCE_DIR}/src/CASCatch
40   ${PROJECT_SOURCE_DIR}/src/Event
41   ${PROJECT_SOURCE_DIR}/src/LightApp
42   ${PROJECT_SOURCE_DIR}/src/OBJECT
43   ${PROJECT_SOURCE_DIR}/src/ObjBrowser
44   ${PROJECT_SOURCE_DIR}/src/Prs
45   ${PROJECT_SOURCE_DIR}/src/Qtx
46   ${PROJECT_SOURCE_DIR}/src/STD
47   ${PROJECT_SOURCE_DIR}/src/SUIT
48   ${PROJECT_SOURCE_DIR}/src/SVTK
49   ${PROJECT_SOURCE_DIR}/src/TOOLSGUI
50   ${PROJECT_SOURCE_DIR}/src/VTKViewer
51 )
52
53 IF(SALOME_USE_PYCONSOLE)
54   INCLUDE_DIRECTORIES(
55     ${PYTHON_INCLUDE_DIRS}
56     ${PROJECT_SOURCE_DIR}/tools/PyConsole/src
57     ${PROJECT_SOURCE_DIR}/tools/PyInterp/src
58   )
59 ENDIF()
60
61 # additional preprocessor / compiler flags
62 ADD_DEFINITIONS(
63   ${QT_DEFINITIONS}
64   ${OMNIORB_DEFINITIONS}
65   ${QWT_DEFINITIONS}
66   ${OpenCASCADE_DEFINITIONS}
67   ${BOOST_DEFINITIONS}
68 )
69
70 IF(SALOME_USE_PYCONSOLE)
71   ADD_DEFINITIONS(${PYTHON_DEFINITIONS})
72 ENDIF()
73
74 # libraries to link to
75 SET(_link_LIBRARIES
76   ${OpenCASCADE_FoundationClasses_LIBRARIES}
77   ${QT_LIBRARIES}
78   ${PYTHON_LIBRARIES}
79   ${KERNEL_ArgvKeeper} ${KERNEL_OpUtil} ${KERNEL_SALOMELocalTrace} ${KERNEL_SalomeDSClient} ${KERNEL_TOOLSDS}
80   CASCatch suit std CAM ObjBrowser SalomePrs Event
81   LogWindow LightApp SalomePrs ToolsGUI
82 )
83
84 IF(SALOME_USE_VTKVIEWER)
85   LIST(APPEND _link_LIBRARIES VTKViewer SVTK)
86 ENDIF()
87
88 IF(SALOME_USE_PYCONSOLE)
89   LIST(APPEND _link_LIBRARIES PyInterp PyConsole)
90 ENDIF()
91
92 IF(SALOME_USE_GLVIEWER)
93   LIST(APPEND _link_LIBRARIES GLViewer)
94 ENDIF()
95
96 IF(SALOME_USE_PLOT2DVIEWER)
97   LIST(APPEND _link_LIBRARIES Plot2d)
98   IF(SALOME_USE_SALOMEOBJECT)
99     LIST(APPEND _link_LIBRARIES SPlot2d)
100   ENDIF(SALOME_USE_SALOMEOBJECT)
101 ENDIF(SALOME_USE_PLOT2DVIEWER)
102
103 IF(SALOME_USE_OCCVIEWER)
104   LIST(APPEND _link_LIBRARIES OCCViewer)
105   IF(SALOME_USE_SALOMEOBJECT)
106     LIST(APPEND _link_LIBRARIES SOCC)
107   ENDIF(SALOME_USE_SALOMEOBJECT)
108 ENDIF()
109
110 IF(SALOME_USE_PV3DVIEWER)
111   LIST(APPEND _link_LIBRARIES PV3DViewer)
112   IF(SALOME_USE_SALOMEOBJECT)
113     LIST(APPEND _link_LIBRARIES SPV3D)
114   ENDIF(SALOME_USE_SALOMEOBJECT)
115 ENDIF()
116
117 IF(SALOME_USE_PVVIEWER)
118   LIST(APPEND _link_LIBRARIES PVViewer)
119 ENDIF()
120
121 IF(SALOME_USE_SALOMEOBJECT)
122   LIST(APPEND _link_LIBRARIES SalomeObject)
123 ENDIF()
124
125 IF(NOT SALOME_LIGHT_ONLY)
126   LIST(APPEND _link_LIBRARIES SalomeIDLGUI)
127   LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeContainer})
128   LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeLifeCycleCORBA})
129 ENDIF()
130
131 # --- headers ---
132
133 # header files / to be processed by moc
134 SET(_moc_HEADERS
135   SalomeApp_Application_SL.h
136   SalomeApp_Application.h
137   SalomeApp_CheckFileDlg.h
138   SalomeApp_DataModel.h
139   SalomeApp_DoubleSpinBox.h
140   SalomeApp_ExitDlg.h
141   SalomeApp_IntSpinBox.h
142   SalomeApp_ListView.h
143   SalomeApp_LoadStudiesDlg.h
144   SalomeApp_Module.h
145   SalomeApp_Study.h
146   SalomeApp_StudyPropertiesDlg.h
147 )
148
149 IF(SALOME_USE_PYCONSOLE)
150   LIST(APPEND _moc_HEADERS SalomeApp_NoteBook.h)
151 ENDIF()
152
153 # header files / no moc processing
154 SET(_other_HEADERS
155   SalomeApp.h
156   SalomeApp_DataObject.h
157   SalomeApp_Engine_i.h
158   SalomeApp_ExceptionHandler.h
159   SalomeApp_Filter.h
160   SalomeApp_ImportOperation.h
161   SalomeApp_Tools.h
162   SalomeApp_TypeFilter.h
163   SalomeApp_VisualState.h
164 )
165
166 IF(SALOME_USE_PYCONSOLE)
167   LIST(APPEND _other_HEADERS SalomeApp_PyInterp.h)
168 ENDIF()
169
170 # header files / to install
171 SET(SalomeApp_HEADERS ${_moc_HEADERS} ${_other_HEADERS})
172
173 # --- resources ---
174
175 # resource files / to be processed by lrelease
176 SET(_ts_RESOURCES
177   resources/SalomeApp_images.ts
178   resources/SalomeApp_msg_en.ts
179   resources/SalomeApp_msg_fr.ts
180   resources/SalomeApp_msg_ja.ts
181 )
182
183 # resource files / static
184 SET(_other_RESOURCES
185   resources/SalomeApp.xml
186 )
187
188 # --- sources ---
189
190 # sources / moc wrappings
191 QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
192
193 # sources / static
194 SET(_other_SOURCES
195   SalomeApp_Application_SL.cxx
196   SalomeApp_Application.cxx
197   SalomeApp_CheckFileDlg.cxx
198   SalomeApp_DataModel.cxx
199   SalomeApp_DataObject.cxx
200   SalomeApp_DoubleSpinBox.cxx
201   SalomeApp_Engine_i.cxx
202   SalomeApp_ExceptionHandler.cxx
203   SalomeApp_ExitDlg.cxx
204   SalomeApp_Filter.cxx
205   SalomeApp_ImportOperation.cxx
206   SalomeApp_IntSpinBox.cxx
207   SalomeApp_ListView.cxx
208   SalomeApp_LoadStudiesDlg.cxx
209   SalomeApp_Module.cxx
210   SalomeApp_Study.cxx
211   SalomeApp_StudyPropertiesDlg.cxx
212   SalomeApp_Tools.cxx
213   SalomeApp_TypeFilter.cxx
214   SalomeApp_VisualState.cxx
215 )
216
217 IF(SALOME_USE_PYCONSOLE)
218   LIST(APPEND _other_SOURCES SalomeApp_PyInterp.cxx SalomeApp_NoteBook.cxx)
219 ENDIF()
220
221 # sources / to compile
222 SET(SalomeApp_SOURCES ${_other_SOURCES} ${_moc_SOURCES})
223
224 # --- scripts ---
225
226 # scripts / bin
227 SET(_bin_SCRIPTS
228   addvars2notebook.py
229 )
230
231 # scripts / python
232 SET(_py_SCRIPTS
233   salome_pluginsmanager.py
234 )
235
236 # --- rules ---
237
238 ADD_LIBRARY(SalomeAppImpl ${SalomeApp_SOURCES})
239 TARGET_LINK_LIBRARIES(SalomeAppImpl ${_link_LIBRARIES})
240
241 ADD_LIBRARY(SalomeApp SalomeApp_Application_Entry.cxx)
242 TARGET_LINK_LIBRARIES(SalomeApp SalomeAppImpl)
243
244 ADD_LIBRARY(SalomeAppSL SalomeApp_Application_SL_Entry.cxx)
245 TARGET_LINK_LIBRARIES(SalomeAppSL SalomeAppImpl)
246
247 INSTALL(TARGETS SalomeAppImpl SalomeApp SalomeAppSL EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
248
249 INSTALL(FILES ${SalomeApp_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
250 QT_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}")
251
252 INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
253 install(FILES ${_other_RESOURCES} RENAME SalomeAppSL.xml DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
254
255 SALOME_INSTALL_SCRIPTS("${_py_SCRIPTS}"  ${SALOME_INSTALL_PYTHON})
256 SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_PYTHON})