Salome HOME
Use /tmp for temporary files needed by salome tests.
[modules/yacs.git] / src / pmml / pmml_swig / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index 8219b8e..cbff66f
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2014  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
 
 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
@@ -34,6 +33,7 @@ SET (PMML_SWIG_DPYS_FILES
 
 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}
@@ -44,10 +44,18 @@ INCLUDE_DIRECTORIES(
 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)
@@ -59,7 +67,7 @@ INSTALL(TARGETS ${SWIG_MODULE_PMML_REAL_NAME} DESTINATION ${SALOME_INSTALL_PYTHO
 
 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})
@@ -67,3 +75,18 @@ 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)