-# Copyright (C) 2012-2013 CEA/DEN, EDF R&D
+# Copyright (C) 2012-2019 CEA/DEN, EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
INCLUDE(${SWIG_USE_FILE})
-ADD_DEFINITIONS(${PYTHON_DEFINITIONS})
+ADD_DEFINITIONS(${PYTHON_DEFINITIONS} ${NUMPY_DEFINITIONS})
SET_SOURCE_FILES_PROPERTIES(PMMLsalome.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(PMMLsalome.i PROPERTIES SWIG_DEFINITIONS "-shadow")
-IF(NUMPY_FOUND)
- SET(SWIG_MODULE_PMML_EXTRA_FLAGS -DWITH_NUMPY)
-ENDIF(NUMPY_FOUND)
+
+SET(SWIG_MODULE_PMML_EXTRA_FLAGS "${NUMPY_DEFINITIONS}")
SET (PMML_SWIG_DPYS_FILES
PMMLsalome.i
INCLUDE_DIRECTORIES(
${PYTHON_INCLUDE_DIRS}
+ ${NUMPY_INCLUDE_DIR}
${PTHREAD_INCLUDE_DIR} # pthread dependancy due to python2.7 library
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
SET (SWIG_MODULE_PMML_EXTRA_DEPS ${PMML_SWIG_DPYS_FILES}
${pmml_HEADERS_HXX} ${pmml_HEADERS_TXX})
-SWIG_ADD_MODULE(PMML python PMMLsalome.i)
-SWIG_LINK_LIBRARIES(PMML ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} pmmlLib)
+# Enusre proper dependencies mechanism for CMake since SWIG generates files
+# whose names are built from the SWIG *module* name, and not .i file name:
+SET_SOURCE_FILES_PROPERTIES(PMMLsalome.i PROPERTIES SWIG_MODULE_NAME PMML)
+IF(${CMAKE_VERSION} VERSION_LESS "3.8.0")
+ SWIG_ADD_MODULE(PMML python PMMLsalome.i)
+ELSE()
+ SWIG_ADD_LIBRARY(PMML LANGUAGE python SOURCES PMMLsalome.i)
+ENDIF()
+SWIG_LINK_LIBRARIES(PMML ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} pmmlLib)
+SWIG_CHECK_GENERATION(PMML)
# _ABR_ Ensure dependency mechanism on all SWIG files and headers
IF(WIN32)
SET(PYFILES_TO_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/PMML.py)
-INSTALL_AND_COMPILE_PYTHON_FILE("${PYFILES_TO_INSTALL}" ${SALOME_INSTALL_SCRIPT_PYTHON})
+SALOME_INSTALL_SCRIPTS("${PYFILES_TO_INSTALL}" ${SALOME_INSTALL_SCRIPT_PYTHON} EXTRA_DPYS "${SWIG_MODULE_PMML_REAL_NAME}")
INSTALL(FILES PMML.i PMMLsalome.i DESTINATION ${SALOME_INSTALL_HEADERS})
INSTALL(FILES PMMLBasicsTest.py DESTINATION ${SALOME_INSTALL_SCRIPT_PYTHON})
+SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
ADD_TEST(PMMLBasicsTest ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/PMMLBasicsTest.py)
+SET_TESTS_PROPERTIES(PMMLBasicsTest PROPERTIES ENVIRONMENT "${tests_env}")
+
+#
+
+IF(SALOME_BUILD_TESTS)
+ SET(LOCAL_TEST_DIR ${SALOME_YACS_INSTALL_TEST}/pmml/pmml_swig)
+ INSTALL(FILES CTestTestfileInstall.cmake
+ DESTINATION ${LOCAL_TEST_DIR}
+ RENAME CTestTestfile.cmake)
+ SET(LOCAL_TEST_FILES
+ PMMLBasicsTest.py
+ )
+ INSTALL(FILES ${LOCAL_TEST_FILES}
+ DESTINATION ${LOCAL_TEST_DIR})
+ENDIF(SALOME_BUILD_TESTS)