Salome HOME
updated copyright message
[modules/shaper.git] / src / SHAPERGUI / CMakeLists.txt
1 # Copyright (C) 2014-2023  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 INCLUDE(UseQtExt)
21
22 # additional include directories
23 INCLUDE_DIRECTORIES(${QT_INCLUDES})
24
25 # additional preprocessor / compiler flags
26 ADD_DEFINITIONS(${QT_DEFINITIONS})
27
28 SET(UPDATE_TRANSLATION OFF)
29
30 SET(PROJECT_HEADERS
31     SHAPER_SHAPERGUI.h
32     SHAPERGUI.h
33     SHAPERGUI_DataModel.h
34     SHAPERGUI_OCCSelector.h
35     SHAPERGUI_SalomeViewer.h
36     SHAPERGUI_NestedButton.h
37     SHAPERGUI_ToolbarsMgr.h
38 )
39
40 SET(PROJECT_MOC_HEADERS
41     SHAPERGUI.h
42     SHAPERGUI_DataModel.h
43     SHAPERGUI_NestedButton.h
44     SHAPERGUI_SalomeViewer.h
45     SHAPERGUI_ToolbarsMgr.h
46 )
47
48 # sources / moc wrappings
49 QT_WRAP_MOC(PROJECT_AUTOMOC ${PROJECT_MOC_HEADERS})
50
51 SET(PROJECT_SOURCES
52     SHAPERGUI.cpp
53     SHAPERGUI_DataModel.cpp
54     SHAPERGUI_OCCSelector.cpp
55     SHAPERGUI_SalomeViewer.cpp
56     SHAPERGUI_NestedButton.cpp
57     SHAPERGUI_ToolbarsMgr.cpp
58 )
59
60 SET(PROJECT_RESOURCES
61     ${CMAKE_CURRENT_BINARY_DIR}/LightApp.xml
62     resources/SalomeApp.xml
63     resources/shaper.png
64 )
65
66 SET(TEXT_RESOURCES
67     SHAPERGUI_msg_fr.ts
68 )
69
70 IF (${UPDATE_TRANSLATION})
71     SET(PROJECT_FILES ${PROJECT_SOURCES} ${PROJECT_HEADERS} )
72     QT5_CREATE_TRANSLATION(QM_RESOURCES
73                            ${PROJECT_FILES}
74                            ${TEXT_RESOURCES}
75                            OPTIONS -extensions cpp -no-recursive -locations none
76                           )
77 ELSE(${UPDATE_TRANSLATION})
78     IF(${MAKE_TRANSLATION})
79         QT5_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
80     ENDIF(${MAKE_TRANSLATION})
81 ENDIF(${UPDATE_TRANSLATION})
82
83
84 SET(PROJECT_LIBRARIES
85     Events
86     Config
87     XGUI
88     ModuleBase
89     ${QT_LIBRARIES}
90     ${suit}
91     ${std}
92     ${LightApp}
93     ${CAM}
94     ${OCCViewer}
95     ${qtx}
96     ${SalomeObject}
97 )
98
99 ADD_DEFINITIONS( -DSHAPERGUI_EXPORTS ${OpenCASCADE_DEFINITIONS} )
100
101 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/XGUI
102                     ${PROJECT_SOURCE_DIR}/src/Events
103                     ${PROJECT_SOURCE_DIR}/src/ModuleBase
104                     ${PROJECT_SOURCE_DIR}/src/ModelAPI
105                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
106                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
107                     ${PROJECT_SOURCE_DIR}/src/Config
108                     ${PROJECT_SOURCE_DIR}/src/ExchangePlugin
109                     ${SUIT_INCLUDE}
110                     ${OpenCASCADE_INCLUDE_DIR}
111 )
112
113 ADD_LIBRARY(SHAPER SHARED
114     ${PROJECT_SOURCES}
115     ${PROJECT_HEADERS}
116     ${PROJECT_AUTOMOC}
117     ${QM_RESOURCES}
118 )
119
120 ADD_DEPENDENCIES(SHAPER XGUI)
121
122 # The Qt5Widgets_LIBRARIES variable also includes QtGui and QtCore
123 TARGET_LINK_LIBRARIES(SHAPER ${PROJECT_LIBRARIES})
124
125 #
126 add_executable(shapergui_app shapergui_app.cpp)
127 target_link_libraries(shapergui_app ${QT_LIBRARIES})
128
129 # configuration
130 CONFIGURE_FILE(
131   "${CMAKE_CURRENT_SOURCE_DIR}/resources/LightApp.xml.in"
132   "${CMAKE_CURRENT_BINARY_DIR}/LightApp.xml"
133   )
134
135 install(TARGETS shapergui_app DESTINATION ${SHAPER_INSTALL_EXE})
136 INSTALL(TARGETS SHAPER DESTINATION ${SHAPER_INSTALL_BIN})
137 INSTALL(FILES ${PROJECT_RESOURCES} DESTINATION ${SHAPER_INSTALL_RESOURCES})
138 install(FILES resources/SalomeApp.xml RENAME SalomeAppSL.xml DESTINATION ${SHAPER_INSTALL_RESOURCES})
139 INSTALL(FILES ${QM_RESOURCES} DESTINATION ${SHAPER_INSTALL_QM_RESOURCES})