Salome HOME
5377a3db323612b5eb307bfd81a5d901f4518586
[tools/medcoupling.git] / src / MEDLoader / Swig / CMakeLists.txt
1 # Copyright (C) 2012-2016  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 # Author : Anthony Geay (CEA/DEN)
20
21 FIND_PACKAGE(SWIG REQUIRED)
22 INCLUDE(${SWIG_USE_FILE})
23
24 ADD_DEFINITIONS(${PYTHON_DEFINITIONS} ${NUMPY_DEFINITIONS} ${SCIPY_DEFINITIONS})
25
26 SET_SOURCE_FILES_PROPERTIES(MEDLoader.i PROPERTIES CPLUSPLUS ON)
27 SET_SOURCE_FILES_PROPERTIES(MEDLoader.i PROPERTIES SWIG_DEFINITIONS "-shadow")
28 SET(SWIG_MODULE_MEDLoader_EXTRA_FLAGS "${NUMPY_DEFINITIONS};${SCIPY_DEFINITIONS}")
29
30 SET (MEDLoader_SWIG_DPYS_FILES
31     MEDLoaderCommon.i
32     MEDLoaderTypemaps.i)
33
34 INCLUDE_DIRECTORIES(
35   ${PYTHON_INCLUDE_DIRS}
36   ${NUMPY_INCLUDE_DIR}
37   ${MEDFILE_INCLUDE_DIRS}
38   ${HDF5_INCLUDE_DIRS}
39   ${CMAKE_CURRENT_SOURCE_DIR}
40   ${CMAKE_CURRENT_SOURCE_DIR}/..
41   ${CMAKE_CURRENT_SOURCE_DIR}/../../MEDCoupling_Swig
42   ${CMAKE_CURRENT_SOURCE_DIR}/../../MEDCoupling
43   ${CMAKE_CURRENT_SOURCE_DIR}/../../INTERP_KERNEL
44   ${CMAKE_CURRENT_SOURCE_DIR}/../../INTERP_KERNEL/Bases
45   ${CMAKE_CURRENT_SOURCE_DIR}/../../INTERP_KERNEL/Geometric2D
46   ${CMAKE_CURRENT_SOURCE_DIR}/../../INTERP_KERNEL/ExprEval
47   ${CMAKE_CURRENT_SOURCE_DIR}/../../INTERP_KERNEL/GaussPoints
48   ${PROJECT_BINARY_DIR}/doc
49 )
50
51 SET (SWIG_MODULE_MEDLoader_EXTRA_DEPS ${MEDLoader_SWIG_DPYS_FILES}
52     ${medloader_HEADERS_HXX}
53     ${medcoupling_HEADERS_HXX} ${medcoupling_HEADERS_TXX}
54     ${interpkernel_HEADERS_HXX} ${interpkernel_HEADERS_TXX})
55
56 # SWIG must run after the doc if we want to have the docstrings extracted from Doxygen
57 # into the Python module:
58 IF(MEDCOUPLING_BUILD_DOC)
59     LIST(APPEND SWIG_MODULE_MEDLoader_EXTRA_FLAGS -DWITH_DOCSTRINGS)
60     LIST(APPEND SWIG_MODULE_MEDLoader_EXTRA_DEPS
61         ${PROJECT_BINARY_DIR}/doc/MEDLoader_doc.i
62         swig_ready)
63 ENDIF()
64
65 SWIG_ADD_MODULE(MEDLoader python MEDLoader.i)
66 SWIG_LINK_LIBRARIES(MEDLoader ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} medloader medcoupling)
67 IF(WIN32)
68   SET_TARGET_PROPERTIES(_MEDLoader PROPERTIES DEBUG_OUTPUT_NAME _MEDLoader_d)
69 ENDIF(WIN32)
70
71 INSTALL(TARGETS _MEDLoader DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
72 INSTALL(FILES MEDLoader.i MEDLoaderTypemaps.i MEDLoaderCommon.i DESTINATION ${MEDCOUPLING_INSTALL_HEADERS})
73
74 SALOME_INSTALL_SCRIPTS(${CMAKE_CURRENT_BINARY_DIR}/MEDLoader.py ${MEDCOUPLING_INSTALL_PYTHON})
75
76 INSTALL(FILES MEDLoaderSplitter.py DESTINATION ${MEDCOUPLING_INSTALL_PYTHON})
77
78 INSTALL(FILES MEDLoaderDataForTest.py MEDLoaderTest1.py MEDLoaderTest2.py MEDLoaderTest3.py MEDLoaderTest123.py MEDLoaderTest4.py SauvLoaderTest.py MEDLoaderExamplesTest.py MEDLoaderCouplingTrainingSession.py CaseIO.py CaseReader.py CaseWriter.py VTKReader.py medutilities.py DESTINATION ${MEDCOUPLING_INSTALL_SCRIPT_SCRIPTS})
79
80 INSTALL(FILES med2sauv PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
81 INSTALL(FILES sauv2med PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
82 INSTALL(FILES case2med PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
83 INSTALL(FILES med2case PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
84 INSTALL(FILES ConvertMEDFileTo30.py PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ DESTINATION ${MEDCOUPLING_INSTALL_BINS} )
85
86 SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
87
88 ADD_TEST(MEDLoaderTest1_2_3 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/MEDLoaderTest123.py)
89 SET_TESTS_PROPERTIES(MEDLoaderTest1_2_3 PROPERTIES ENVIRONMENT "${tests_env}")
90
91 ADD_TEST(MEDLoaderTest4 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/MEDLoaderTest4.py)
92 SET_TESTS_PROPERTIES(MEDLoaderTest4 PROPERTIES ENVIRONMENT "${tests_env}")
93
94 ADD_TEST(MEDLoaderExamplesTest ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/MEDLoaderExamplesTest.py)
95 SET_TESTS_PROPERTIES(MEDLoaderExamplesTest PROPERTIES ENVIRONMENT "${tests_env}")
96 ADD_TEST(SauvLoaderTest ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/SauvLoaderTest.py)
97 SET_TESTS_PROPERTIES(SauvLoaderTest PROPERTIES ENVIRONMENT "${tests_env}")
98
99 IF(NUMPY_FOUND)
100   # Add Remapper to the Python path:
101   SALOME_ACCUMULATE_ENVIRONMENT(PYTHONPATH "${CMAKE_CURRENT_BINARY_DIR}/../../MEDCoupling_Swig")
102   SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
103   ADD_TEST(MEDLoaderCouplingTrainingSession ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/MEDLoaderCouplingTrainingSession.py)
104   SET_TESTS_PROPERTIES(MEDLoaderCouplingTrainingSession PROPERTIES ENVIRONMENT "${tests_env}")
105 ENDIF(NUMPY_FOUND)
106
107 # Application tests
108
109 SET(TEST_INSTALL_DIRECTORY ${MEDCOUPLING_INSTALL_TESTS}/MEDLoader_Swig)
110
111 SET(MEDLOADER_TEST_FILES
112     MEDLoaderDataForTest.py
113     MEDLoaderTest123.py
114     MEDLoaderTest1.py
115     MEDLoaderTest2.py
116     MEDLoaderTest3.py
117     MEDLoaderTest4.py
118     SauvLoaderTest.py
119     MEDLoaderExamplesTest.py
120     MEDLoaderCouplingTrainingSession.py
121     CaseIO.py
122     CaseReader.py
123     CaseWriter.py
124     VTKReader.py
125     MEDLoaderSplitter.py
126     medutilities.py
127 )
128
129 INSTALL(FILES ${MEDLOADER_TEST_FILES} DESTINATION ${TEST_INSTALL_DIRECTORY})
130
131 INSTALL(FILES CTestTestfileInstall.cmake
132         DESTINATION ${TEST_INSTALL_DIRECTORY}
133         RENAME CTestTestfile.cmake)