Salome HOME
spns #18828 PMML as external product
authorNabil Ghodbane <nabil.ghodbane@cea.fr>
Thu, 8 Jul 2021 15:45:08 +0000 (17:45 +0200)
committerrnv <rnv@opencascade.com>
Mon, 27 Sep 2021 15:50:56 +0000 (18:50 +0300)
CMakeLists.txt
src/CMakeLists.txt
src/pmml/pmml_swig/PMMLBasicsTest.py
src/yacsloader/pmml/CMakeLists.txt

index ee41e9d8f8e0b91692f409c745cc285cdda7c71c..1123a55041de501df7cd52c6a81e7300d498ea77 100644 (file)
@@ -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()
index 9032ac800d43ca507a3ca348eabaaa79ab2c82e2..4d70b9fbefdccd2ec7d1d8c03e39d486360fb8e5 100644 (file)
 ##
 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
 ##
index abd9f58e9dc874e6d13c839a8a8854b200ab486f..c82eeebf6176a280c142a63c213c669a6ee92b93 100644 (file)
@@ -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) ):
index b5b40a0c26e981bb6817f3223bb2043a7d91d36c..8205a15fb355e20a7e2adc576e96b3194182e1ae 100644 (file)
@@ -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