Salome HOME
updated copyright message
[modules/shaper.git] / src / GeomDataAPI / CMakeLists.txt
1 # Copyright (C) 2014-2023  CEA, EDF
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     GeomDataAPI.h
27     GeomDataAPI_Point.h
28     GeomDataAPI_Dir.h
29     GeomDataAPI_Point2D.h
30     GeomDataAPI_Point2DArray.h
31 )
32
33 SET(PROJECT_SOURCES
34     GeomDataAPI_Point.cpp
35     GeomDataAPI_Dir.cpp
36     GeomDataAPI_Point2D.cpp
37     GeomDataAPI_Point2DArray.cpp
38 )
39
40 SET(PROJECT_LIBRARIES
41     ModelAPI
42 )
43
44 INCLUDE_DIRECTORIES(
45   ../GeomAPI        # only for SWIG
46   ../Events         # only for SWIG
47   ../ModelAPI
48 )
49
50 ADD_DEFINITIONS(-DGEOMDATAAPI_EXPORTS)
51 ADD_LIBRARY(GeomDataAPI SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS})
52 SET_TARGET_PROPERTIES(GeomDataAPI PROPERTIES LINKER_LANGUAGE CXX)
53 TARGET_LINK_LIBRARIES(GeomDataAPI ${PROJECT_LIBRARIES})
54
55 SET(CMAKE_SWIG_FLAGS -w325,321,362,383,302,403)
56
57 SET_SOURCE_FILES_PROPERTIES(GeomDataAPI.i PROPERTIES CPLUSPLUS ON)
58 SET_SOURCE_FILES_PROPERTIES(GeomDataAPI.i PROPERTIES SWIG_DEFINITIONS "-shadow")
59
60 SET(SWIG_SCRIPTS
61   ${CMAKE_CURRENT_BINARY_DIR}/GeomDataAPI.py
62 )
63
64 SET(SWIG_LINK_LIBRARIES
65   GeomDataAPI
66   ${PYTHON_LIBRARIES}
67 )
68
69 IF(${CMAKE_VERSION} VERSION_GREATER "3.8.0")
70   SWIG_ADD_LIBRARY(GeomDataAPI LANGUAGE python SOURCES GeomDataAPI.i ${PROJECT_HEADERS})
71 ELSE()
72   SWIG_ADD_MODULE(GeomDataAPI python GeomDataAPI.i ${PROJECT_HEADERS})
73 ENDIF()
74 SWIG_LINK_LIBRARIES(GeomDataAPI ${SWIG_LINK_LIBRARIES})
75
76 IF(WIN32)
77   SET_TARGET_PROPERTIES(_GeomDataAPI PROPERTIES DEBUG_OUTPUT_NAME _GeomDataAPI_d)
78 ENDIF(WIN32)
79
80 INSTALL(TARGETS GeomDataAPI DESTINATION ${SHAPER_INSTALL_BIN})
81 INSTALL(TARGETS _GeomDataAPI DESTINATION ${SHAPER_INSTALL_SWIG})
82 INSTALL(FILES ${SWIG_SCRIPTS} DESTINATION ${SHAPER_INSTALL_SWIG})
83
84 include(tests.set)
85
86 ADD_UNIT_TESTS(${TEST_NAMES})
87
88 if(${HAVE_SALOME})
89   enable_testing()
90   set(TEST_INSTALL_DIRECTORY "${SALOME_SHAPER_INSTALL_TESTS}/GeomDataAPI")
91   
92   install(FILES CTestTestfileInstall.cmake
93   DESTINATION ${TEST_INSTALL_DIRECTORY}
94   RENAME CTestTestfile.cmake)
95   install(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY})
96   
97   set(TMP_TESTS_NAMES)
98   foreach(tfile ${TEST_NAMES})
99     list(APPEND TMP_TESTS_NAMES "Test/${tfile}")
100   endforeach(tfile ${TEST_NAMES})
101   
102   install(FILES ${TMP_TESTS_NAMES} DESTINATION ${TEST_INSTALL_DIRECTORY})
103 endif(${HAVE_SALOME})