Salome HOME
0985db34bfca740fd7182a8473c3b8eed7fc44a0
[modules/shaper.git] / src / ModelAPI / CMakeLists.txt
1 ## Copyright (C) 2014-2017  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
18 ## email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
19 ##
20
21 FIND_PACKAGE(SWIG REQUIRED)
22 INCLUDE(${SWIG_USE_FILE})
23 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
24 INCLUDE(UnitTest)
25
26 SET(PROJECT_HEADERS
27     ModelAPI.h
28     ModelAPI_Attribute.h
29     ModelAPI_AttributeBoolean.h
30     ModelAPI_AttributeIntArray.h
31     ModelAPI_AttributeDocRef.h
32     ModelAPI_AttributeDouble.h
33     ModelAPI_AttributeDoubleArray.h
34     ModelAPI_AttributeInteger.h
35     ModelAPI_AttributeRefAttr.h
36     ModelAPI_AttributeReference.h
37     ModelAPI_AttributeRefAttrList.h
38     ModelAPI_AttributeRefList.h
39     ModelAPI_AttributeSelection.h
40     ModelAPI_AttributeSelectionList.h
41     ModelAPI_AttributeString.h
42     ModelAPI_AttributeStringArray.h
43     ModelAPI_AttributeTables.h
44     ModelAPI_AttributeValidator.h
45     ModelAPI_BodyBuilder.h
46     ModelAPI_CompositeFeature.h
47     ModelAPI_Data.h
48     ModelAPI_Document.h
49     ModelAPI_EventReentrantMessage.h
50     ModelAPI_Events.h
51     ModelAPI_Expression.h
52     ModelAPI_Feature.h
53     ModelAPI_FeatureValidator.h
54     ModelAPI_IReentrant.h
55     ModelAPI_Object.h
56     ModelAPI_Plugin.h
57     ModelAPI_Result.h
58     ModelAPI_ResultBody.h
59     ModelAPI_ResultCompSolid.h
60     ModelAPI_ResultConstruction.h
61     ModelAPI_ResultField.h
62     ModelAPI_ResultGroup.h
63     ModelAPI_ResultParameter.h
64     ModelAPI_ResultPart.h
65     ModelAPI_Session.h
66     ModelAPI_Tools.h
67     ModelAPI_Validator.h
68     ModelAPI_Entity.h
69 )
70
71 SET(PROJECT_SOURCES
72     ModelAPI_Attribute.cpp
73     ModelAPI_AttributeBoolean.cpp
74     ModelAPI_AttributeIntArray.cpp
75     ModelAPI_AttributeDocRef.cpp
76     ModelAPI_AttributeDouble.cpp
77     ModelAPI_AttributeDoubleArray.cpp
78     ModelAPI_AttributeInteger.cpp
79     ModelAPI_AttributeRefAttr.cpp
80     ModelAPI_AttributeReference.cpp
81     ModelAPI_AttributeRefAttrList.cpp
82     ModelAPI_AttributeRefList.cpp
83     ModelAPI_AttributeSelection.cpp
84     ModelAPI_AttributeSelectionList.cpp
85     ModelAPI_AttributeString.cpp
86     ModelAPI_AttributeStringArray.cpp
87     ModelAPI_AttributeTables.cpp
88     ModelAPI_BodyBuilder.cpp
89     ModelAPI_CompositeFeature.cpp
90     ModelAPI_Data.cpp
91     ModelAPI_Document.cpp
92     ModelAPI_EventReentrantMessage.cpp
93     ModelAPI_Events.cpp
94     ModelAPI_Expression.cpp
95     ModelAPI_Feature.cpp
96     ModelAPI_FeatureValidator.cpp
97     ModelAPI_IReentrant.cpp
98     ModelAPI_Object.cpp
99     ModelAPI_Plugin.cpp
100     ModelAPI_Result.cpp
101     ModelAPI_ResultBody.cpp
102     ModelAPI_ResultCompSolid.cpp
103     ModelAPI_ResultConstruction.cpp
104     ModelAPI_ResultField.cpp
105     ModelAPI_ResultGroup.cpp
106     ModelAPI_ResultPart.cpp
107     ModelAPI_ResultParameter.cpp
108     ModelAPI_Session.cpp
109     ModelAPI_Tools.cpp
110     ModelAPI_AttributeValidator.cpp
111 )
112
113 SET(PROJECT_LIBRARIES
114     Config
115     GeomAPI
116 )
117 SET(CMAKE_SWIG_FLAGS -threads -Wall)
118 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
119
120 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
121 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
122 TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
123
124 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config
125                     ${PROJECT_SOURCE_DIR}/src/Events
126                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
127                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
128 )
129
130
131 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
132 # "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
133 # SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
134 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
135 #SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
136
137 SET(SWIG_SCRIPTS
138   ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
139 )
140
141 SET(SWIG_LINK_LIBRARIES
142   ModelAPI
143   GeomAPI
144   ${PYTHON_LIBRARIES}
145 )
146
147 SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
148 SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
149
150 IF(WIN32)
151   SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
152 ENDIF(WIN32)
153
154 INSTALL(TARGETS _ModelAPI DESTINATION ${SHAPER_INSTALL_SWIG})
155 INSTALL(TARGETS ModelAPI DESTINATION ${SHAPER_INSTALL_BIN})
156 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
157
158 ADD_UNIT_TESTS(TestConstants.py
159                TestUndoRedo.py
160                TestDocument.py
161                Test1064.py
162                TestResults.py
163                TestIntArray.py
164                Test1512.py
165                TestDoubleArray.py
166                Test1757.py
167                Test1998.py
168                Test1995.py
169                Test2170.py
170                TestExternalConstruction.py
171 )