Salome HOME
160e5eb832af0e6fbc54a38152d3978900f00009
[modules/shaper.git] / src / FiltersAPI / CMakeLists.txt
1 # Copyright (C) 2014-2023  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 INCLUDE(Common)
21
22 SET(PROJECT_HEADERS
23   FiltersAPI.h
24   FiltersAPI_Argument.h
25   FiltersAPI_Feature.h
26   FiltersAPI_Filter.h
27   FiltersAPI_Selection.h
28 )
29
30 SET(PROJECT_SOURCES
31   FiltersAPI_Argument.cpp
32   FiltersAPI_Feature.cpp
33   FiltersAPI_Filter.cpp
34   FiltersAPI_Selection.cpp
35 )
36
37 SET(PROJECT_LIBRARIES
38   ModelAPI
39   ModelHighAPI
40 )
41
42 INCLUDE_DIRECTORIES(
43   ${PROJECT_SOURCE_DIR}/src/Events
44   ${PROJECT_SOURCE_DIR}/src/GeomAPI
45   ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
46   ${PROJECT_SOURCE_DIR}/src/ModelAPI
47   ${PROJECT_SOURCE_DIR}/src/ModelHighAPI
48 )
49
50 # Plugin headers dependency
51 INCLUDE_DIRECTORIES(
52   ${PROJECT_SOURCE_DIR}/src/FiltersPlugin
53 )
54
55 ADD_DEFINITIONS(-DFILTERSAPI_EXPORTS)
56 ADD_LIBRARY(FiltersAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
57 TARGET_LINK_LIBRARIES(FiltersAPI ${PROJECT_LIBRARIES})
58
59 # SWIG wrapper
60
61 INCLUDE(PythonAPI)
62
63 SET_SOURCE_FILES_PROPERTIES(FiltersAPI.i PROPERTIES CPLUSPLUS ON)
64 SET_SOURCE_FILES_PROPERTIES(FiltersAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
65
66 SET(SWIG_LINK_LIBRARIES
67   FiltersAPI
68   ModelHighAPI
69   ModelAPI
70   ${PYTHON_LIBRARIES}
71 )
72 SET(CMAKE_SWIG_FLAGS -threads -w325,321,302,362,322,383,403)
73
74 SET(SWIG_MODULE_FiltersAPI_EXTRA_DEPS ${SWIG_MODULE_FiltersAPI_EXTRA_DEPS}
75   ${PROJECT_SOURCE_DIR}/src/ModelHighAPI/ModelHighAPI.i
76   doxyhelp.i
77   ${PROJECT_HEADERS}
78 )
79
80 IF(${CMAKE_VERSION} VERSION_GREATER "3.8.0")
81   SWIG_ADD_LIBRARY(FiltersAPI LANGUAGE python SOURCES FiltersAPI.i ${PROJECT_HEADERS})
82 ELSE()
83   SWIG_ADD_MODULE(FiltersAPI python FiltersAPI.i ${PROJECT_HEADERS})
84 ENDIF()
85 SWIG_LINK_LIBRARIES(FiltersAPI ${SWIG_LINK_LIBRARIES})
86
87 IF(WIN32)
88   SET_TARGET_PROPERTIES(_FiltersAPI PROPERTIES DEBUG_OUTPUT_NAME _FiltersAPI_d)
89 ENDIF(WIN32)
90
91 INSTALL(TARGETS _FiltersAPI DESTINATION ${SHAPER_INSTALL_SWIG})
92 INSTALL(TARGETS FiltersAPI DESTINATION ${SHAPER_INSTALL_BIN})
93 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/FiltersAPI.py DESTINATION ${SHAPER_INSTALL_SWIG})