90 def __init__(self, opts, appType="Gaudi::Application
"):
91 global _GaudiKernelLib
92 if _GaudiKernelLib
is None:
96 if sys.platform ==
"darwin":
98 _libpaths = os.environ.get(
"DYLD_LIBRARY_PATH")
100 print(
"WARNING: DYLD_LIBRARY_PATH is empty!")
101 for _path
in _libpaths.split(
":"):
102 _lib = os.path.join(_path,
"libGaudiKernel.dylib")
103 if os.path.isfile(_lib):
104 gkl = _GaudiKernelLib = ctypes.CDLL(
106 mode=ctypes.RTLD_GLOBAL,
109 gkl = _GaudiKernelLib = ctypes.CDLL(
111 mode=ctypes.RTLD_GLOBAL,
113 gkl._py_Gaudi__Application__create.restype = ctypes.c_void_p
114 gkl._py_Gaudi__Application__run.argtypes = [ctypes.c_void_p]
115 gkl._py_Gaudi__Application__run.restype = ctypes.c_int
116 gkl._py_Gaudi__Application__delete.argtypes = [ctypes.c_void_p]
118 c_opts = (c_opt_t * len(opts))()
119 for idx, item
in enumerate(opts.items()):
120 c_opts[idx].key = item[0].encode(
"ascii")
121 c_opts[idx].value = item[1].encode(
"ascii")
123 self.
_impl = _GaudiKernelLib._py_Gaudi__Application__create(
124 appType.encode(
"ascii"), c_opts, ctypes.c_ulong(len(c_opts))