]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModelHighAPI/CMakeLists.txt
Salome HOME
Cleare Macros for easy atribute initialization in C++HighAPI interfaces
[modules/shaper.git] / src / ModelHighAPI / CMakeLists.txt
1 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 INCLUDE(Common)
4
5 SET(PROJECT_HEADERS
6   ModelHighAPI.h
7   ModelHighAPI_Double.h
8   ModelHighAPI_Interface.h
9   ModelHighAPI_Macro.h
10 )
11
12 SET(PROJECT_SOURCES
13   ModelHighAPI_Double.cpp
14   ModelHighAPI_Interface.cpp
15 )
16
17 SET(PROJECT_LIBRARIES
18   Config
19   Events
20   ModelAPI
21 )
22
23 ADD_DEFINITIONS(-DMODELHIGHAPI_EXPORTS)
24 ADD_LIBRARY(ModelHighAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
25 #TODO(spo): is it necessary?
26 SET_TARGET_PROPERTIES(ModelHighAPI PROPERTIES LINKER_LANGUAGE CXX)
27 TARGET_LINK_LIBRARIES(ModelHighAPI ${PROJECT_LIBRARIES})
28
29 # SWIG wrapper
30
31 INCLUDE(PythonAPI)
32
33 SET_SOURCE_FILES_PROPERTIES(ModelHighAPI.i PROPERTIES CPLUSPLUS ON)
34 SET_SOURCE_FILES_PROPERTIES(ModelHighAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
35
36 SET(SWIG_LINK_LIBRARIES
37   ModelHighAPI
38   ${PYTHON_LIBRARIES}
39 )
40
41 INCLUDE_DIRECTORIES(
42   ${PROJECT_SOURCE_DIR}/src/Events
43   ${PROJECT_SOURCE_DIR}/src/ModelAPI
44 )
45
46 set(SWIG_MODULE_ModelHighAPI_EXTRA_DEPS
47   doxyhelp.i
48   ${PROJECT_HEADERS}
49 )
50
51 SWIG_ADD_MODULE(ModelHighAPI python ModelHighAPI.i ${PROJECT_HEADERS})
52 SWIG_LINK_LIBRARIES(ModelHighAPI ${SWIG_LINK_LIBRARIES})
53
54 IF(WIN32)
55   SET_TARGET_PROPERTIES(_ModelHighAPI PROPERTIES DEBUG_OUTPUT_NAME _ModelHighAPI_d)
56 ENDIF(WIN32)
57
58 INSTALL(TARGETS _ModelHighAPI DESTINATION ${SHAPER_INSTALL_SWIG})
59 INSTALL(TARGETS ModelHighAPI DESTINATION ${SHAPER_INSTALL_BIN})
60 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ModelHighAPI.py DESTINATION ${SHAPER_INSTALL_SWIG})
61
62 # Tests
63
64 INCLUDE(UnitTest)
65
66 ADD_UNIT_TESTS(
67   TestDouble.py
68 )
69
70 ADD_SUBDIRECTORY (Test)