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