Salome HOME
Merge branch 'master' into cgt/devCEA
[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 )
116 SET(CMAKE_SWIG_FLAGS -threads -Wall)
117 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
118
119 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
120 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
121 TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
122
123 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config
124                     ${PROJECT_SOURCE_DIR}/src/Events
125                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
126                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
127 )
128
129
130 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
131 # "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
132 # SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
133 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
134 #SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
135
136 SET(SWIG_SCRIPTS
137   ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
138 )
139
140 SET(SWIG_LINK_LIBRARIES
141   ModelAPI
142   GeomAPI
143   ${PYTHON_LIBRARIES}
144 )
145
146 SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
147 SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
148
149 IF(WIN32)
150   SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
151 ENDIF(WIN32)
152
153 INSTALL(TARGETS _ModelAPI DESTINATION ${SHAPER_INSTALL_SWIG})
154 INSTALL(TARGETS ModelAPI DESTINATION ${SHAPER_INSTALL_BIN})
155 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
156
157 ADD_UNIT_TESTS(TestConstants.py
158                TestUndoRedo.py
159                TestDocument.py
160                Test1064.py
161                TestResults.py
162                TestIntArray.py
163                Test1512.py
164                TestDoubleArray.py
165                Test1757.py
166                Test1998.py
167                Test1995.py
168                Test2170.py
169                TestExternalConstruction.py
170                Test2228.py
171                Test2241.py
172                Test2252.py
173 )