From 9b426fe5dd8235c1341ff5a5be6030a5c79ef55d Mon Sep 17 00:00:00 2001 From: Nabil Ghodbane Date: Thu, 8 Jul 2021 17:45:08 +0200 Subject: [PATCH] spns #18828 PMML as external product --- CMakeLists.txt | 13 +++++++++++++ src/CMakeLists.txt | 5 ++++- src/pmml/pmml_swig/PMMLBasicsTest.py | 6 +++++- src/yacsloader/pmml/CMakeLists.txt | 10 ++++++++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee41e9d8f..1123a5504 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,6 +96,7 @@ OPTION(SALOME_BUILD_TESTS "Build SALOME YACS tests" ON) OPTION(SALOME_YACS_USE_SWIG "Enable Python wrapper" ON) OPTION(SALOME_YACS_USE_DSC "Use DSC KERNEL extension" ON) +OPTION(SALOME_YACS_USE_EMBEDDED_PMML "Use YACS PMML implementation" ON) CMAKE_DEPENDENT_OPTION(SALOME_YACS_USE_PYEDITOR "Use built-in py editor" ON "SALOME_USE_PYVIEWER" OFF) @@ -167,6 +168,18 @@ ENDIF(SALOME_BUILD_GUI) ## ## YACS specifics ## +# External PMML +# ============= +IF(NOT SALOME_YACS_USE_EMBEDDED_PMML) + SET(PMML_ROOT_DIR $ENV{PMML_ROOT_DIR} CACHE PATH "Path to PMML") + IF(EXISTS ${PMML_ROOT_DIR}) + LIST(APPEND CMAKE_MODULE_PATH "${PMML_ROOT_DIR}/share") + INCLUDE(PMMLlibTargets) + ELSE() + MESSAGE(FATAL_ERROR "We absolutely need the PMML CMake configuration files, please define PMML_ROOT_DIR !") + ENDIF() +ENDIF(NOT SALOME_YACS_USE_EMBEDDED_PMML) + # Detection summary: SALOME_PACKAGE_REPORT_AND_CHECK() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9032ac800..4d70b9fbe 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -22,9 +22,12 @@ ## SET(SUBDIRS_COMMON bases engine wrappergen yacsorb salomeloader workloadmanager - pmml ) +IF(SALOME_YACS_USE_EMBEDDED_PMML) + LIST(APPEND SUBDIRS_COMMON pmml) +ENDIF(SALOME_YACS_USE_EMBEDDED_PMML) + ## # KERNEL ## diff --git a/src/pmml/pmml_swig/PMMLBasicsTest.py b/src/pmml/pmml_swig/PMMLBasicsTest.py index abd9f58e9..c82eeebf6 100644 --- a/src/pmml/pmml_swig/PMMLBasicsTest.py +++ b/src/pmml/pmml_swig/PMMLBasicsTest.py @@ -26,12 +26,16 @@ from PMML import PMMLlib, kANN, kLR import unittest import os import shutil +import platform class PMMLBasicsTest(unittest.TestCase): def setUp(self): self.resourcesDir = ".." + os.sep + "Test" + os.sep + "samples" + os.sep ; - self.tmpDir = os.sep + "tmp" + os.sep + os.environ['LOGNAME'] + os.sep ; + if platform.system() == "Windows" : + self.tmpDir = os.environ['TMP'] # %TMP% does exist on WINDOWS + else: + self.tmpDir = os.sep + "tmp" + os.sep + os.environ['LOGNAME'] + os.sep ; self.tmpDir += "PmmlUnitTest"; self.tmpDir += os.sep ; if ( not os.path.exists(self.tmpDir) ): diff --git a/src/yacsloader/pmml/CMakeLists.txt b/src/yacsloader/pmml/CMakeLists.txt index b5b40a0c2..8205a15fb 100644 --- a/src/yacsloader/pmml/CMakeLists.txt +++ b/src/yacsloader/pmml/CMakeLists.txt @@ -35,9 +35,15 @@ INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/../../bases/Test ${CMAKE_CURRENT_SOURCE_DIR}/../../engine ${CMAKE_CURRENT_SOURCE_DIR}/../../runtime - ${CMAKE_CURRENT_SOURCE_DIR}/../../pmml - ) +) + +IF(SALOME_YACS_USE_EMBEDDED_PMML) + LIST(APPEND YACS_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/../../pmml ) +ELSE(SALOME_YACS_USE_EMBEDDED_PMML) + LIST(APPEND YACS_INCLUDE_DIRECTORIES ${PMML_ROOT_DIR}/include) +ENDIF(SALOME_YACS_USE_EMBEDDED_PMML) +INCLUDE_DIRECTORIES( ${YACS_INCLUDE_DIRECTORIES}) SET(TestYACSPMML_SOURCES TestYACSPMML.cxx -- 2.39.2