Salome HOME
Update copyrights 2014.
[modules/hexablock.git] / src / HEXABLOCKGUI / CMakeLists.txt
1 # Copyright (C) 2012-2014  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, 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(MyDlgRef)
21
22 INCLUDE(UseQt4Ext)
23
24 # --- options ---
25 # additional include directories
26 INCLUDE_DIRECTORIES(
27   ${QT_INCLUDES}
28   ${PYTHON_INCLUDE_DIRS}
29   ${OMNIORB_INCLUDE_DIR}
30   ${LIBXML2_INCLUDE_DIR}
31   ${Boost_INCLUDE_DIRS}
32   ${CAS_INCLUDE_DIRS}
33   ${VTK_INCLUDE_DIRS}
34   ${KERNEL_INCLUDE_DIRS}
35   ${GUI_INCLUDE_DIRS}
36   ${GEOM_INCLUDE_DIRS}
37   ${PROJECT_BINARY_DIR}
38   ${PROJECT_BINARY_DIR}/idl
39   ${CMAKE_CURRENT_SOURCE_DIR}
40   ${CMAKE_CURRENT_BINARY_DIR}
41   ${CMAKE_CURRENT_SOURCE_DIR}/MyDlgRef
42   ${CMAKE_CURRENT_BINARY_DIR}/MyDlgRef
43   ${PROJECT_SOURCE_DIR}/src/HEXABLOCK
44 )
45
46 # additional preprocessor / compiler flags
47 ADD_DEFINITIONS(
48   ${BOOST_DEFINITIONS}
49   ${OMNIORB_DEFINITIONS}
50   ${CAS_DEFINITIONS}
51   ${KERNEL_DEFINITIONS}
52 )
53
54 IF(WIN32)
55  ADD_DEFINITIONS(-DNOGDI -DNOMINMAX)
56 ENDIF(WIN32)
57
58 # libraries to link to
59 SET(_link_LIBRARIES
60   ${CORBA_LIBS}
61   ${QT_LIBRARIES}
62   ${GEOM_SalomeIDLGEOM}
63   ${GEOM_GEOMBase}
64   ${GEOM_BasicGUI}
65   ${KERNEL_SalomeLifeCycleCORBA}
66   MyDlgRef
67   HEXABLOCKEngine
68 )
69
70 # --- headers ---
71
72 # header files / to be processed by moc
73 SET(_moc_HEADERS
74   HEXABLOCKGUI.hxx
75   HEXABLOCKGUI_VtkDocumentGraphicView.hxx
76   HEXABLOCKGUI_DocumentPanel.hxx
77   HEXABLOCKGUI_DocumentSelectionModel.hxx
78   HEXABLOCKGUI_DocumentModel.hxx
79   kmodelindexproxymapper.hxx
80   klinkitemselectionmodel.hxx
81   MyBasicGUI_PointDlg.hxx
82   MyGEOMBase_Skeleton.hxx
83 )
84
85 # header files / no moc processing
86 SET(HEXABLOCK_HEADERS
87   HEXABLOCKGUI_Export.hxx
88   HEXABLOCKGUI.hxx
89 )
90
91 # --- sources ---
92
93 # sources / moc wrappings
94 QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
95
96 # sources / static
97 SET(_other_SOURCES
98   Resource.hxx
99   Resource.cxx
100   HEXABLOCKGUI_Exception.hxx
101   HEXABLOCKGUI_Exception.cxx
102   HEXABLOCKGUI_Trace.hxx
103   HEXABLOCKGUI_Trace.cxx
104   HEXABLOCKGUI_Resource.hxx
105   HEXABLOCKGUI_Resource.cxx
106   HEXABLOCKGUI_VtkDocumentGraphicView.hxx
107   HEXABLOCKGUI_VtkDocumentGraphicView.cxx
108   HEXABLOCKGUI_OccGraphicView.hxx
109   HEXABLOCKGUI_OccGraphicView.cxx
110   HEXABLOCKGUI_OCCSelector.h
111   HEXABLOCKGUI_OCCSelector.cxx
112   HEXABLOCKGUI_GraphicViewsHandler.hxx
113   HEXABLOCKGUI_GraphicViewsHandler.cxx
114   HEXABLOCKGUI_DocumentModel.hxx
115   HEXABLOCKGUI_DocumentModel.cxx
116   HEXABLOCKGUI_DocumentSelectionModel.hxx
117   HEXABLOCKGUI_DocumentSelectionModel.cxx
118   HEXABLOCKGUI_DocumentItem.hxx
119   HEXABLOCKGUI_DocumentItem.cxx
120   HEXABLOCKGUI_DocumentPanel.hxx
121   HEXABLOCKGUI_DocumentPanel.cxx
122   HEXABLOCKGUI_SalomeTools.hxx
123   HEXABLOCKGUI_SalomeTools.cxx
124   HEXABLOCKGUI.hxx
125   HEXABLOCKGUI.cxx
126   kmodelindexproxymapper.hxx
127   kmodelindexproxymapper.cxx
128   klinkitemselectionmodel.hxx
129   klinkitemselectionmodel.cxx
130   MyGEOMBase_Skeleton.hxx
131   MyGEOMBase_Skeleton.cxx
132   MyBasicGUI_PointDlg.hxx
133   MyBasicGUI_PointDlg.cxx
134 )
135
136 # uic files / to be processed by pyuic
137 SET(_pyuic_files
138   Vertex_QTD.ui
139   Edge_QTD.ui
140   Quad_QTD.ui
141   Hexa_QTD.ui
142   Vector_QTD.ui
143   Cylinder_QTD.ui
144   Pipe_QTD.ui
145   MakeGrid_QTD.ui
146   MakeCylinder_QTD.ui
147   MakePipe_QTD.ui
148   MakeCylinders_QTD.ui
149   MakePipes_QTD.ui
150   RemoveHexa_QTD.ui
151   PrismQuad_QTD.ui
152   JoinQuad_QTD.ui
153   Merge_QTD.ui
154   Disconnect_QTD.ui
155   CutEdge_QTD.ui
156   Transformation_QTD.ui
157   Symmetry_QTD.ui
158   Group_QTD.ui
159   Law_QTD.ui
160   Propagation_QTD.ui
161   QuadAssoc_QTD.ui
162   EdgeAssoc_QTD.ui
163   QuadRevolution_QTD.ui
164   MakeRind_QTD.ui
165   ReplaceHexa_QTD.ui
166   MakeHemiSphere_QTD.ui
167   ModelInfo_QTD.ui
168   AddShapeDialog_QTD.ui
169   ComputeMesh_QTD.ui
170 )
171
172 # scripts / pyuic wrappings
173 QT4_WRAP_UI(_uic_HEADERS ${_pyuic_files})
174
175 # sources / to compile
176 SET(HEXABLOCK_SOURCES ${_other_SOURCES} ${_moc_SOURCES} ${_uic_HEADERS})
177
178 # --- resources ---
179
180 # resource files / to be processed by lrelease
181 SET(_ts_RESOURCES
182   resources/HEXABLOCK_msg_en.ts
183   resources/HEXABLOCK_msg_fr.ts
184   resources/HEXABLOCK_icons.ts
185
186
187 SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/resources/SalomeApp.xml.in ${CMAKE_CURRENT_BINARY_DIR}/resources/SalomeApp.xml INSTALL ${SALOME_HEXABLOCK_INSTALL_RES_DATA})
188 SALOME_CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/resources/HEXABLOCKCatalog.xml.in ${CMAKE_CURRENT_BINARY_DIR}/resources/HEXABLOCKCatalog.xml INSTALL ${SALOME_HEXABLOCK_INSTALL_RES_DATA})
189
190 # resource files / static
191 SET(_other_RESOURCES
192   resources/LightApp.xml
193   resources/ModuleHexablock.png
194   resources/ModuleHexablock15x15.png
195   resources/new_document.png
196   resources/load_document.png
197   resources/save_document.png
198   resources/add_vertex.png
199   resources/add_edge.png
200   resources/add_quad.png
201   resources/add_hexa.png
202   resources/add_vector.png
203   resources/add_cylinder.png
204   resources/add_pipe.png
205   resources/make_grid.png
206   resources/make_cylinder.png
207   resources/make_pipe.png
208   resources/make_cylinders.png
209   resources/make_pipes.png
210   resources/remove_hexa.png
211   resources/prism_quad.png
212   resources/join_quad.png
213   resources/merge.png
214   resources/disconnect.png
215   resources/cut_edge.png
216   resources/make_transformation.png
217   resources/make_symmetry.png
218   resources/perform_transformation.png
219   resources/perform_symmetry.png
220   resources/assoc_vertex.png
221   resources/assoc_edge.png
222   resources/assoc_quad.png
223   resources/add_geom.png
224   resources/model_info.png
225   resources/add_group.png
226   resources/remove_group.png
227   resources/add_law.png
228   resources/remove_law.png
229   resources/set_propagation.png
230   resources/compute_mesh.png
231   resources/point2.png
232   resources/pointonedge.png
233   resources/select1.png
234   resources/point3.png
235   resources/point_line_intersection.png 
236   resources/pointonface.png
237   resources/line.png
238   resources/build_wire.png
239   resources/quad_revolution.png
240   resources/replace_hexa.png
241   resources/make_hemisphere.png
242 )
243
244 # --- rules ---
245
246 ADD_LIBRARY(HEXABLOCK ${HEXABLOCK_SOURCES})
247 TARGET_LINK_LIBRARIES(HEXABLOCK ${_link_LIBRARIES} )
248 INSTALL(TARGETS HEXABLOCK EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
249
250 INSTALL(FILES ${HEXABLOCK_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
251
252 QT4_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_HEXABLOCK_INSTALL_RES_DATA}")
253
254 INSTALL(FILES ${_other_RESOURCES}
255         DESTINATION ${SALOME_HEXABLOCK_INSTALL_RES_DATA})