Salome HOME
Merge remote-tracking branch 'origin/SALOME-8.2.0_porting'
[modules/shaper.git] / src / XGUI / CMakeLists.txt
1 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 INCLUDE(UseQtExt)
4
5 # additional include directories
6 INCLUDE_DIRECTORIES(${QT_INCLUDES})
7
8 # additional preprocessor / compiler flags
9 ADD_DEFINITIONS(${QT_DEFINITIONS})
10
11 SET(PROJECT_HEADERS
12         XGUI.h
13         XGUI_ActionsMgr.h
14         XGUI_ColorDialog.h
15         XGUI_ContextMenuMgr.h
16         XGUI_CustomPrs.h
17         XGUI_DataModel.h
18         XGUI_DeflectionDialog.h
19         XGUI_Displayer.h
20         XGUI_ErrorDialog.h
21         XGUI_ErrorMgr.h
22         XGUI_HistoryMenu.h
23         XGUI_MenuGroup.h
24         XGUI_MenuMgr.h
25         XGUI_MenuWorkbench.h
26         XGUI_ModuleConnector.h
27         XGUI_ObjectsBrowser.h
28         XGUI_OperationMgr.h
29         XGUI_PropertyPanel.h
30         XGUI_QtEvents.h
31         XGUI_SalomeConnector.h
32         XGUI_Selection.h
33         XGUI_SelectionMgr.h
34         XGUI_Tools.h
35         XGUI_ViewerProxy.h
36         XGUI_Workshop.h
37         XGUI_WorkshopListener.h
38 )
39
40 # sources / moc wrappings
41 QT_WRAP_MOC(PROJECT_AUTOMOC ${PROJECT_HEADERS})
42
43 SET(PROJECT_SOURCES
44         XGUI_ActionsMgr.cpp
45         XGUI_ColorDialog.cpp
46         XGUI_ContextMenuMgr.cpp
47         XGUI_CustomPrs.cpp
48         XGUI_DataModel.cpp
49         XGUI_DeflectionDialog.cpp
50         XGUI_Displayer.cpp
51         XGUI_ErrorDialog.cpp
52         XGUI_ErrorMgr.cpp
53         XGUI_HistoryMenu.cpp
54         XGUI_MenuGroup.cpp
55         XGUI_MenuMgr.cpp
56         XGUI_MenuWorkbench.cpp
57         XGUI_ModuleConnector.cpp
58         XGUI_ObjectsBrowser.cpp
59         XGUI_OperationMgr.cpp
60         XGUI_PropertyPanel.cpp
61         XGUI_QtEvents.cpp
62         XGUI_SalomeConnector.cpp
63         XGUI_Selection.cpp
64         XGUI_SelectionMgr.cpp
65         XGUI_Tools.cpp
66         XGUI_ViewerProxy.cpp
67         XGUI_Workshop.cpp
68         XGUI_WorkshopListener.cpp
69 )
70
71 SET(PROJECT_RESOURCES
72     XGUI_pictures.qrc
73 )
74
75 SET(PREFERENCES_XML
76         SHAPER.xml
77 )
78
79 SET(TEXT_RESOURCES
80         XGUI_msg_fr.ts
81 )
82
83 SET(PROJECT_LIBRARIES
84     Events
85     Config
86         ModelAPI
87         ModuleBase
88         ${QT_LIBRARIES}
89         ${CAS_VIEWER}
90         ${CAS_KERNEL}
91         ${CAS_SHAPE}
92         ${PYTHON_LIBRARIES}
93         ${PyConsole}
94         ${PyInterp}
95         ${suit}
96         ${qtx}
97 )
98
99 IF(NOT ${HAVE_SALOME})
100     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} AppElements)
101 ENDIF(NOT ${HAVE_SALOME})
102
103
104 IF(WIN32)
105     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} opengl32)
106 ELSE()
107     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} GL)
108 ENDIF()
109
110 QT_ADD_RESOURCES(PROJECT_COMPILED_RESOURCES ${PROJECT_RESOURCES})
111 #QT5_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
112 # QT4_CREATE_TRANSLATION(QM_RESOURCES
113 #                                          ${PROJECT_SOURCES}
114 #                                          ${TEXT_RESOURCES}
115 #                                          OPTIONS -extensions cpp -no-recursive
116 #                                          )
117
118
119 SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES} ${QM_RESOURCES})
120 #SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES})
121 SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES} ${PREFERENCES_XML})
122
123 ADD_DEFINITIONS( -DXGUI_EXPORTS ${CAS_DEFINITIONS} )
124
125 SET(PROJECT_INCLUDES
126     ${PROJECT_SOURCE_DIR}/src/Events
127     ${PROJECT_SOURCE_DIR}/src/Config
128     ${PROJECT_SOURCE_DIR}/src/ModelAPI
129     ${PROJECT_SOURCE_DIR}/src/GeomAPI
130     ${PROJECT_SOURCE_DIR}/src/ModuleBase
131     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
132     ${CAS_INCLUDE_DIRS}
133     ${SUIT_INCLUDE})
134
135 IF(${HAVE_SALOME})
136   INCLUDE_DIRECTORIES(${SALOME_KERNEL_INCLUDE})
137 ENDIF(${HAVE_SALOME})
138
139 IF(VInspectorAPI)
140     message("VINSPECTOR is defined")
141     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${VInspectorAPI})
142     SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${VINSPECTOR_INCLUDE_DIR})
143
144     ADD_DEFINITIONS(-DVINSPECTOR)
145 ENDIF()
146
147 IF(NOT ${HAVE_SALOME})
148     SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${APPELEMENTS_INCLUDE_DIR})
149 ENDIF(NOT ${HAVE_SALOME})
150
151 IF(DFBrowserAPI)
152     message("DFBROWSER is defined")
153     SET(PROJECT_LIBRARIES ${PROJECT_LIBRARIES} ${DFBrowserAPI})
154     SET(PROJECT_INCLUDES ${PROJECT_INCLUDES} ${DFBROWSER_INCLUDE_DIR})
155
156     ADD_DEFINITIONS(-DDFBROWSER)
157 ENDIF()
158
159 INCLUDE_DIRECTORIES(${PROJECT_INCLUDES})
160
161 LINK_DIRECTORIES($ENV{PYTHON_LIB_DIR})
162
163 ADD_LIBRARY(XGUI SHARED
164         ${PROJECT_SOURCES}
165         ${PROJECT_HEADERS}
166         ${PROJECT_COMPILED_RESOURCES}
167         ${TEXT_RESOURCES}
168         ${QM_RESOURCES}
169         ${PREFERENCES_XML}
170         ${PROJECT_AUTOMOC}
171 )
172
173 ADD_DEPENDENCIES(XGUI ModelAPI)
174
175 # The Qt5Widgets_LIBRARIES variable also includes QtGui and QtCore
176 TARGET_LINK_LIBRARIES(XGUI ${PROJECT_LIBRARIES})
177
178 INSTALL(TARGETS XGUI DESTINATION ${SHAPER_INSTALL_BIN})
179 INSTALL(FILES ${QM_RESOURCES} DESTINATION ${SHAPER_INSTALL_QM_RESOURCES})
180 INSTALL(FILES ${PREFERENCES_XML} DESTINATION ${SHAPER_INSTALL_RESOURCES})
181 INSTALL(DIRECTORY icons/ DESTINATION ${SHAPER_INSTALL_RESOURCES})