Salome HOME
Task #3237: Allow usage of accented characters in ObjectBrowser
[modules/shaper.git] / src / ModelAPI / CMakeLists.txt
1 # Copyright (C) 2014-2019  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 FIND_PACKAGE(SWIG REQUIRED)
21 INCLUDE(${SWIG_USE_FILE})
22 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
23 INCLUDE(UnitTest)
24
25 SET(PROJECT_HEADERS
26     ModelAPI.h
27     ModelAPI_Attribute.h
28     ModelAPI_AttributeBoolean.h
29     ModelAPI_AttributeIntArray.h
30     ModelAPI_AttributeDocRef.h
31     ModelAPI_AttributeDouble.h
32     ModelAPI_AttributeDoubleArray.h
33     ModelAPI_AttributeInteger.h
34     ModelAPI_AttributeRefAttr.h
35     ModelAPI_AttributeReference.h
36     ModelAPI_AttributeRefAttrList.h
37     ModelAPI_AttributeRefList.h
38     ModelAPI_AttributeSelection.h
39     ModelAPI_AttributeSelectionList.h
40     ModelAPI_AttributeString.h
41     ModelAPI_AttributeStringArray.h
42     ModelAPI_AttributeTables.h
43     ModelAPI_AttributeValidator.h
44     ModelAPI_BodyBuilder.h
45     ModelAPI_CompositeFeature.h
46     ModelAPI_Data.h
47     ModelAPI_Document.h
48     ModelAPI_Entity.h
49     ModelAPI_EventReentrantMessage.h
50     ModelAPI_Events.h
51     ModelAPI_Expression.h
52     ModelAPI_Feature.h
53     ModelAPI_FeatureValidator.h
54     ModelAPI_Filter.h
55     ModelAPI_FiltersArgs.h
56     ModelAPI_FiltersFactory.h
57     ModelAPI_FiltersFeature.h
58     ModelAPI_Folder.h
59     ModelAPI_IReentrant.h
60     ModelAPI_Object.h
61     ModelAPI_Plugin.h
62     ModelAPI_Result.h
63     ModelAPI_ResultBody.h
64     ModelAPI_ResultConstruction.h
65     ModelAPI_ResultField.h
66     ModelAPI_ResultGroup.h
67     ModelAPI_ResultParameter.h
68     ModelAPI_ResultPart.h
69     ModelAPI_Session.h
70     ModelAPI_Tools.h
71     ModelAPI_Validator.h
72 )
73
74 SET(PROJECT_SOURCES
75     ModelAPI_Attribute.cpp
76     ModelAPI_AttributeBoolean.cpp
77     ModelAPI_AttributeIntArray.cpp
78     ModelAPI_AttributeDocRef.cpp
79     ModelAPI_AttributeDouble.cpp
80     ModelAPI_AttributeDoubleArray.cpp
81     ModelAPI_AttributeInteger.cpp
82     ModelAPI_AttributeRefAttr.cpp
83     ModelAPI_AttributeReference.cpp
84     ModelAPI_AttributeRefAttrList.cpp
85     ModelAPI_AttributeRefList.cpp
86     ModelAPI_AttributeSelection.cpp
87     ModelAPI_AttributeSelectionList.cpp
88     ModelAPI_AttributeString.cpp
89     ModelAPI_AttributeStringArray.cpp
90     ModelAPI_AttributeTables.cpp
91     ModelAPI_AttributeValidator.cpp
92     ModelAPI_BodyBuilder.cpp
93     ModelAPI_CompositeFeature.cpp
94     ModelAPI_Data.cpp
95     ModelAPI_Document.cpp
96     ModelAPI_EventReentrantMessage.cpp
97     ModelAPI_Events.cpp
98     ModelAPI_Expression.cpp
99     ModelAPI_Feature.cpp
100     ModelAPI_FeatureValidator.cpp
101     ModelAPI_Filter.cpp
102     ModelAPI_Folder.cpp
103     ModelAPI_IReentrant.cpp
104     ModelAPI_Object.cpp
105     ModelAPI_Plugin.cpp
106     ModelAPI_Result.cpp
107     ModelAPI_ResultBody.cpp
108     ModelAPI_ResultConstruction.cpp
109     ModelAPI_ResultField.cpp
110     ModelAPI_ResultGroup.cpp
111     ModelAPI_ResultPart.cpp
112     ModelAPI_ResultParameter.cpp
113     ModelAPI_Session.cpp
114     ModelAPI_Tools.cpp
115 )
116
117 SET(PROJECT_LIBRARIES
118     Config
119     GeomAPI
120     Locale
121 )
122 SET(CMAKE_SWIG_FLAGS -threads -w325,321,362,383,302,403,451,473)
123 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
124
125 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
126 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
127 TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
128
129 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config
130                     ${PROJECT_SOURCE_DIR}/src/Events
131                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
132                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
133                     ${PROJECT_SOURCE_DIR}/src/Locale
134 )
135
136
137 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
138 # "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
139 # SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
140 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
141 #SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
142
143 SET(SWIG_SCRIPTS
144   ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
145 )
146
147 SET(SWIG_LINK_LIBRARIES
148   ModelAPI
149   GeomAPI
150   ${PYTHON_LIBRARIES}
151 )
152
153 IF(${CMAKE_VERSION} VERSION_GREATER "3.8.0")
154   SWIG_ADD_LIBRARY(ModelAPI LANGUAGE python SOURCES ModelAPI.i ${PROJECT_HEADERS})
155 ELSE()
156   SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
157 ENDIF()
158 SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
159
160 IF(WIN32)
161   SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
162 ENDIF(WIN32)
163
164 INSTALL(TARGETS _ModelAPI DESTINATION ${SHAPER_INSTALL_SWIG})
165 INSTALL(TARGETS ModelAPI DESTINATION ${SHAPER_INSTALL_BIN})
166 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
167
168 ADD_UNIT_TESTS(TestConstants.py
169                TestUndoRedo.py
170                TestDocument.py
171                Test1064.py
172                TestResults.py
173                TestIntArray.py
174                Test1512.py
175                Test1562.py
176                TestDoubleArray.py
177                Test1757.py
178                Test1998.py
179                Test1995.py
180                Test2170.py
181                TestExternalConstruction.py
182                Test2228.py
183                Test2241.py
184                Test2252.py
185                Test2276.py
186                Test2389.py
187                Test2391.py
188                TestCustomName_BooleanCut.py
189                TestCustomName_CommonCompSolid.py
190                TestCustomName_CutCompSolid.py
191                TestCustomName_CutGroup.py
192                TestCustomName_DefaultName.py
193                TestCustomName_ExtrudeFace.py
194                TestCustomName_ExtrusionCut.py
195                TestCustomName_ExtrusionCutFace.py
196                TestCustomName_MultiTranslation.py
197                TestCustomName_Partition.py
198                TestCustomName_Placement.py
199                TestCustomName_Recover.py
200                TestCustomName_Rename.py
201                TestCustomName_RotateGroup.py
202                TestCustomName_Translation.py
203                TestFolder_Create.py
204                TestFolder_Update.py
205                TestFolder_Remove.py
206                TestFolder_Stability.py
207                TestFolder_CustomName.py
208                TestFolder_Empty.py
209                TestFolder_Sketch.py
210                Test2358_1.py
211                Test2358_2.py
212                Test2396.py
213                Test2401.py
214                Test2413.py
215                Test2496.py
216                Test2510.py
217                TestFeatureSelection_1.py
218                TestFeatureSelection_2.py
219                Test2607.py
220                TestBlockRecalculation.py
221                TestSelectionScope.py
222                TestSelectorShell.py
223                TestWeakNaming2125.py
224                TestWeakNaming2222.py
225                TestWeakNaming2245.py
226                TestWeakNaming2247.py
227                TestWeakNaming2248.py
228                TestWeakNaming2261.py
229                TestWeakNaming2291.py
230                TestWeakNaming2335.py
231                TestWeakNaming2375.py
232                TestWeakNaming2437.py
233                TestWeakNaming2445.py
234                TestWeakNaming2446.py
235                TestWeakNaming2452.py
236                TestWeakNamingSortOrder.py
237                Test2685.py
238                TestGeomNamingPlacement.py
239                TestGeomNamingRevolution.py
240                TestGeomNamingEdgeByFilter.py
241                TestGeomNamingSketchPlane.py
242                TestGeomNamingBoxWithFillet.py
243                TestContainerSelector.py
244                TestSaveOpen1.py
245                TestSaveOpen2.py
246                TestSelectionInitialization.py
247                TestSelectionCircleCenter.py
248                TestSelectionInPart.py
249                Test2828.py
250                TestSelectionRestore.py
251                Test2491.py
252                Test2493.py
253                Test2627.py
254                Test2859.py
255                Test2873.py
256                Test2901.py
257                Test2903.py
258                Test3020.py
259                Test3116.py
260 )