%module KernelBasis
+%pythonbegin %{
+ # new mechanism introduced in Python 3.8+ about DLL resolution
+ import os
+ def __add_dll_directory__(path):
+ paths = [ p.replace("\\\\", "\\").replace("/", "\\") for p in sys.path]
+ if not path in paths and os.path.exists(path):
+ os.add_dll_directory(path)
+ else:
+ print("DEBUG: directory is already present in {}".format(path))
+ return
+
+ import platform
+ if platform.system() == "Windows":
+ import sys
+ if sys.version_info > (3,8) :
+ try:
+ import os
+ _dll_exposed = os.getenv("KERNEL_DLLs_Exposed", "")
+ if _dll_exposed == "" :
+ print("INFO: Exposing DLL directories")
+ __add_dll_directory__(os.path.join(os.getenv("KERNEL_ROOT_DIR"), "lib", "salome"))
+ __add_dll_directory__(os.path.join(os.getenv("GUI_ROOT_DIR"), "lib", "salome"))
+ __add_dll_directory__(os.path.join(os.getenv("GUI_ROOT_DIR"), "lib", "salome"))
+ __add_dll_directory__(os.path.join(os.getenv("PTHREAD_ROOT_DIR"), "lib" ))
+ __add_dll_directory__(os.path.join(os.getenv("PRODUCT_ROOT_DIR"), "W64", "lib" ))
+ __add_dll_directory__(os.path.join(os.getenv("PRODUCT_ROOT_DIR"), "W64", "bin" ))
+ __add_dll_directory__(os.getenv("OMNIORB_BIN_DIR"))
+ os.environ["KERNEL_DLLs_Exposed"] = "1"
+ except Exception:
+ print("FATAL: Exception raise while trying to expose DLLs")
+%}
+
%{
#include "KernelBasis.hxx"
#include "HeatMarcel.hxx"
def ReadFloatsInFile( fileName ):
ret = ReadFloatsInFileSwig( fileName )
return ret
-%}
\ No newline at end of file
+%}