]> SALOME platform Git repositories - modules/shaper.git/blob - src/FeaturesAPI/CMakeLists.txt
Salome HOME
acd90db778e018a336a45c6fcf0fe6aed32beed7
[modules/shaper.git] / src / FeaturesAPI / CMakeLists.txt
1 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 INCLUDE(Common)
4
5 SET(PROJECT_HEADERS
6   FeaturesAPI.h
7   FeaturesAPI_Boolean.h
8   FeaturesAPI_Extrusion.h
9   FeaturesAPI_ExtrusionBoolean.h
10   FeaturesAPI_Group.h
11   FeaturesAPI_Intersection.h
12   FeaturesAPI_Partition.h
13   FeaturesAPI_Pipe.h
14   FeaturesAPI_Placement.h
15   FeaturesAPI_Revolution.h
16   FeaturesAPI_RevolutionBoolean.h
17   FeaturesAPI_Rotation.h
18   FeaturesAPI_Translation.h
19 )
20
21 SET(PROJECT_SOURCES
22   FeaturesAPI_Boolean.cpp
23   FeaturesAPI_Extrusion.cpp
24   FeaturesAPI_ExtrusionBoolean.cpp
25   FeaturesAPI_Group.cpp
26   FeaturesAPI_Intersection.cpp
27   FeaturesAPI_Partition.cpp
28   FeaturesAPI_Pipe.cpp
29   FeaturesAPI_Placement.cpp
30   FeaturesAPI_Rotation.cpp
31   FeaturesAPI_Revolution.cpp
32   FeaturesAPI_RevolutionBoolean.cpp
33   FeaturesAPI_Translation.cpp
34 )
35
36 SET(PROJECT_LIBRARIES
37   ModelAPI
38   ModelHighAPI
39 )
40
41 INCLUDE_DIRECTORIES(
42   ${PROJECT_SOURCE_DIR}/src/Events
43   ${PROJECT_SOURCE_DIR}/src/ModelAPI
44   ${PROJECT_SOURCE_DIR}/src/ModelHighAPI
45 )
46
47 # Plugin headers dependency
48 INCLUDE_DIRECTORIES(
49   ${PROJECT_SOURCE_DIR}/src/GeomAPI
50   ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
51   ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
52   ${PROJECT_SOURCE_DIR}/src/FeaturesPlugin
53 )
54
55 #TODO(spo): is ${CAS_DEFINITIONS} necessary?
56 ADD_DEFINITIONS(-DFEATURESAPI_EXPORTS ${CAS_DEFINITIONS})
57 ADD_LIBRARY(FeaturesAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
58 TARGET_LINK_LIBRARIES(FeaturesAPI ${PROJECT_LIBRARIES})
59
60 # SWIG wrapper
61
62 INCLUDE(PythonAPI)
63
64 SET_SOURCE_FILES_PROPERTIES(FeaturesAPI.i PROPERTIES CPLUSPLUS ON)
65 SET_SOURCE_FILES_PROPERTIES(FeaturesAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
66
67 #TODO(spo): is ModelAPI necessary or it could be received by INTERFACE_ (may require modern CMake)?
68 SET(SWIG_LINK_LIBRARIES
69   FeaturesAPI
70   ModelHighAPI
71   ModelAPI
72   ${PYTHON_LIBRARIES}
73 )
74
75 SET(SWIG_MODULE_FeaturesAPI_EXTRA_DEPS ${SWIG_MODULE_FeaturesAPI_EXTRA_DEPS}
76   ${PROJECT_SOURCE_DIR}/src/ModelHighAPI/ModelHighAPI.i
77   doxyhelp.i
78   ${PROJECT_HEADERS}
79 )
80
81 SWIG_ADD_MODULE(FeaturesAPI python FeaturesAPI.i ${PROJECT_HEADERS})
82 SWIG_LINK_LIBRARIES(FeaturesAPI ${SWIG_LINK_LIBRARIES})
83
84 IF(WIN32)
85   SET_TARGET_PROPERTIES(_FeaturesAPI PROPERTIES DEBUG_OUTPUT_NAME _FeaturesAPI_d)
86 ENDIF(WIN32)
87
88 INSTALL(TARGETS _FeaturesAPI DESTINATION ${SHAPER_INSTALL_SWIG})
89 INSTALL(TARGETS FeaturesAPI DESTINATION ${SHAPER_INSTALL_BIN})
90 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/FeaturesAPI.py DESTINATION ${SHAPER_INSTALL_SWIG})
91
92 # Tests
93 INCLUDE(UnitTest)
94
95 ADD_UNIT_TESTS(
96 )
97
98 # ADD_SUBDIRECTORY (Test)