Salome HOME
Separate classes related to Filters in Model/ModelAPI
[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_Folder.cpp
102     ModelAPI_IReentrant.cpp
103     ModelAPI_Object.cpp
104     ModelAPI_Plugin.cpp
105     ModelAPI_Result.cpp
106     ModelAPI_ResultBody.cpp
107     ModelAPI_ResultConstruction.cpp
108     ModelAPI_ResultField.cpp
109     ModelAPI_ResultGroup.cpp
110     ModelAPI_ResultPart.cpp
111     ModelAPI_ResultParameter.cpp
112     ModelAPI_Session.cpp
113     ModelAPI_Tools.cpp
114 )
115
116 SET(PROJECT_LIBRARIES
117     Config
118     GeomAPI
119 )
120 SET(CMAKE_SWIG_FLAGS -threads -w325,321,362,383,302,403,473)
121 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
122
123 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
124 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
125 TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
126
127 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config
128                     ${PROJECT_SOURCE_DIR}/src/Events
129                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
130                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
131 )
132
133
134 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
135 # "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
136 # SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
137 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
138 #SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
139
140 SET(SWIG_SCRIPTS
141   ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
142 )
143
144 SET(SWIG_LINK_LIBRARIES
145   ModelAPI
146   GeomAPI
147   ${PYTHON_LIBRARIES}
148 )
149
150 IF(${CMAKE_VERSION} VERSION_GREATER "3.8.0")
151   SWIG_ADD_LIBRARY(ModelAPI LANGUAGE python SOURCES ModelAPI.i ${PROJECT_HEADERS})
152 ELSE()
153   SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
154 ENDIF()
155 SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
156
157 IF(WIN32)
158   SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
159 ENDIF(WIN32)
160
161 INSTALL(TARGETS _ModelAPI DESTINATION ${SHAPER_INSTALL_SWIG})
162 INSTALL(TARGETS ModelAPI DESTINATION ${SHAPER_INSTALL_BIN})
163 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
164
165 ADD_UNIT_TESTS(TestConstants.py
166                TestUndoRedo.py
167                TestDocument.py
168                Test1064.py
169                TestResults.py
170                TestIntArray.py
171                Test1512.py
172                Test1562.py
173                TestDoubleArray.py
174                Test1757.py
175                Test1998.py
176                Test1995.py
177                Test2170.py
178                TestExternalConstruction.py
179                Test2228.py
180                Test2241.py
181                Test2252.py
182                Test2276.py
183                Test2389.py
184                Test2391.py
185                TestCustomName_BooleanCut.py
186                TestCustomName_CommonCompSolid.py
187                TestCustomName_CutCompSolid.py
188                TestCustomName_CutGroup.py
189                TestCustomName_DefaultName.py
190                TestCustomName_ExtrudeFace.py
191                TestCustomName_ExtrusionCut.py
192                TestCustomName_ExtrusionCutFace.py
193                TestCustomName_MultiTranslation.py
194                TestCustomName_Partition.py
195                TestCustomName_Placement.py
196                TestCustomName_Recover.py
197                TestCustomName_Rename.py
198                TestCustomName_RotateGroup.py
199                TestCustomName_Translation.py
200                TestFolder_Create.py
201                TestFolder_Update.py
202                TestFolder_Remove.py
203                TestFolder_Stability.py
204                TestFolder_CustomName.py
205                TestFolder_Empty.py
206                TestFolder_Sketch.py
207                Test2358_1.py
208                Test2358_2.py
209                Test2396.py
210                Test2401.py
211                Test2413.py
212                Test2496.py
213                Test2510.py
214                TestFeatureSelection_1.py
215                TestFeatureSelection_2.py
216                Test2607.py
217                TestBlockRecalculation.py
218                TestSelectionScope.py
219                TestSelectorShell.py
220                TestWeakNaming2125.py
221                TestWeakNaming2222.py
222                TestWeakNaming2245.py
223                TestWeakNaming2247.py
224                TestWeakNaming2248.py
225                TestWeakNaming2261.py
226                TestWeakNaming2291.py
227                TestWeakNaming2335.py
228                TestWeakNaming2375.py
229                TestWeakNaming2437.py
230                TestWeakNaming2445.py
231                TestWeakNaming2446.py
232                TestWeakNaming2452.py
233                TestWeakNamingSortOrder.py
234                Test2685.py
235                TestGeomNamingPlacement.py
236                TestGeomNamingRevolution.py
237                TestGeomNamingEdgeByFilter.py
238                TestGeomNamingSketchPlane.py
239                TestGeomNamingBoxWithFillet.py
240                TestContainerSelector.py
241                TestSaveOpen1.py
242                TestSaveOpen2.py
243                TestSelectionInitialization.py
244                Test2828.py
245                TestSelectionRestore.py
246                Test2491.py
247                Test2493.py
248                Test2627.py
249                Test2859.py
250                Test2873.py
251                Test2901.py
252                Test2903.py
253 )