Salome HOME
bos #26449: SHAPER: save imported images
[modules/shaper.git] / src / ModelAPI / CMakeLists.txt
1 # Copyright (C) 2014-2021  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_AttributeImage.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_Entity.h
50     ModelAPI_EventReentrantMessage.h
51     ModelAPI_Events.h
52     ModelAPI_Expression.h
53     ModelAPI_Feature.h
54     ModelAPI_FeatureValidator.h
55     ModelAPI_Filter.h
56     ModelAPI_FiltersArgs.h
57     ModelAPI_FiltersFactory.h
58     ModelAPI_FiltersFeature.h
59     ModelAPI_Folder.h
60     ModelAPI_IReentrant.h
61     ModelAPI_Object.h
62     ModelAPI_Plugin.h
63     ModelAPI_Result.h
64     ModelAPI_ResultBody.h
65     ModelAPI_ResultConstruction.h
66     ModelAPI_ResultField.h
67     ModelAPI_ResultGroup.h
68     ModelAPI_ResultParameter.h
69     ModelAPI_ResultPart.h
70     ModelAPI_Session.h
71     ModelAPI_Tools.h
72     ModelAPI_Validator.h
73 )
74
75 SET(PROJECT_SOURCES
76     ModelAPI_Attribute.cpp
77     ModelAPI_AttributeBoolean.cpp
78     ModelAPI_AttributeImage.cpp
79     ModelAPI_AttributeIntArray.cpp
80     ModelAPI_AttributeDocRef.cpp
81     ModelAPI_AttributeDouble.cpp
82     ModelAPI_AttributeDoubleArray.cpp
83     ModelAPI_AttributeInteger.cpp
84     ModelAPI_AttributeRefAttr.cpp
85     ModelAPI_AttributeReference.cpp
86     ModelAPI_AttributeRefAttrList.cpp
87     ModelAPI_AttributeRefList.cpp
88     ModelAPI_AttributeSelection.cpp
89     ModelAPI_AttributeSelectionList.cpp
90     ModelAPI_AttributeString.cpp
91     ModelAPI_AttributeStringArray.cpp
92     ModelAPI_AttributeTables.cpp
93     ModelAPI_AttributeValidator.cpp
94     ModelAPI_BodyBuilder.cpp
95     ModelAPI_CompositeFeature.cpp
96     ModelAPI_Data.cpp
97     ModelAPI_Document.cpp
98     ModelAPI_EventReentrantMessage.cpp
99     ModelAPI_Events.cpp
100     ModelAPI_Expression.cpp
101     ModelAPI_Feature.cpp
102     ModelAPI_FeatureValidator.cpp
103     ModelAPI_Filter.cpp
104     ModelAPI_Folder.cpp
105     ModelAPI_IReentrant.cpp
106     ModelAPI_Object.cpp
107     ModelAPI_Plugin.cpp
108     ModelAPI_Result.cpp
109     ModelAPI_ResultBody.cpp
110     ModelAPI_ResultConstruction.cpp
111     ModelAPI_ResultField.cpp
112     ModelAPI_ResultGroup.cpp
113     ModelAPI_ResultPart.cpp
114     ModelAPI_ResultParameter.cpp
115     ModelAPI_Session.cpp
116     ModelAPI_Tools.cpp
117 )
118
119 SET(PROJECT_LIBRARIES
120     Config
121     GeomAPI
122     Locale
123 )
124 SET(CMAKE_SWIG_FLAGS -threads -w325,321,362,383,302,403,451,473)
125 ADD_DEFINITIONS(-DMODELAPI_EXPORTS)
126
127 IF(TKTInspector)
128     ADD_DEFINITIONS(-DTINSPECTOR)
129 ENDIF()
130
131 ADD_LIBRARY(ModelAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
132 SET_TARGET_PROPERTIES(ModelAPI PROPERTIES LINKER_LANGUAGE CXX)
133 TARGET_LINK_LIBRARIES(ModelAPI ${PROJECT_LIBRARIES})
134
135 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Config
136                     ${PROJECT_SOURCE_DIR}/src/Events
137                     ${PROJECT_SOURCE_DIR}/src/GeomAPI
138                     ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
139                     ${PROJECT_SOURCE_DIR}/src/Locale
140                     ${OpenCASCADE_INCLUDE_DIR}
141 )
142
143
144 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES CPLUSPLUS ON)
145 # "-includeall" is not needed: it starts to follow the standard inludes (like "string") without success
146 # SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_FLAGS)
147 SET_SOURCE_FILES_PROPERTIES(ModelAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
148 #SET_SOURCE_FILES_PROPERTIES(ModelAPIPYTHON_wrap.cxx PROPERTIES COMPILE_FLAGS "-D_WIN32")
149
150 SET(SWIG_SCRIPTS
151   ${CMAKE_CURRENT_BINARY_DIR}/ModelAPI.py
152 )
153
154 SET(SWIG_LINK_LIBRARIES
155   ModelAPI
156   GeomAPI
157   ${PYTHON_LIBRARIES}
158 )
159
160 IF(${CMAKE_VERSION} VERSION_GREATER "3.8.0")
161   SWIG_ADD_LIBRARY(ModelAPI LANGUAGE python SOURCES ModelAPI.i ${PROJECT_HEADERS})
162 ELSE()
163   SWIG_ADD_MODULE(ModelAPI python ModelAPI.i ${PROJECT_HEADERS})
164 ENDIF()
165 SWIG_LINK_LIBRARIES(ModelAPI ${SWIG_LINK_LIBRARIES})
166
167 IF(WIN32)
168   SET_TARGET_PROPERTIES(_ModelAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelAPI_d)
169 ENDIF(WIN32)
170
171 INSTALL(TARGETS _ModelAPI DESTINATION ${SHAPER_INSTALL_SWIG})
172 INSTALL(TARGETS ModelAPI DESTINATION ${SHAPER_INSTALL_BIN})
173 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
174
175 include(tests.set)
176
177 ADD_UNIT_TESTS(${TEST_NAMES})
178
179 if(${HAVE_SALOME})
180   enable_testing()
181   set(TEST_INSTALL_DIRECTORY "${SALOME_SHAPER_INSTALL_TESTS}/ModelAPI")
182   
183   install(FILES CTestTestfileInstall.cmake
184   DESTINATION ${TEST_INSTALL_DIRECTORY}
185   RENAME CTestTestfile.cmake)
186   install(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY})
187   
188   set(TMP_TESTS_NAMES)
189   foreach(tfile ${TEST_NAMES})
190     list(APPEND TMP_TESTS_NAMES "Test/${tfile}")
191   endforeach(tfile ${TEST_NAMES})
192   
193   install(FILES ${TMP_TESTS_NAMES} DESTINATION ${TEST_INSTALL_DIRECTORY})
194 endif(${HAVE_SALOME})