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