split project into static and dynamic modules
This commit is contained in:
parent
55dca44b4a
commit
b6b9054d0d
28 changed files with 188 additions and 161 deletions
38
raylib/dynamic/__init__.py
Normal file
38
raylib/dynamic/__init__.py
Normal file
|
@ -0,0 +1,38 @@
|
|||
"""
|
||||
This is an attempt at a CFFI dynamic (ABI) binding. It was failing in the exactly same place the ctypes binding fails, accessing
|
||||
materials of a model. But now it __seems__ to work
|
||||
"""
|
||||
|
||||
import platform
|
||||
|
||||
# Probably unnecessary, just covering all bases in case people add or remove dlls
|
||||
MAC_NAMES = ['libraylib.2.5.0.dylib', 'libraylib.2.dylib', 'libraylib.dylib']
|
||||
LINUX_NAMES = ['libraylib.so.2.5.0','libraylib.so.2', 'libraylib.so']
|
||||
WINDOWS_NAMES = ['libraylib.dll', 'raylib.dll']
|
||||
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
NAMES_TO_TRY = MAC_NAMES
|
||||
elif platform.system() == "Linux":
|
||||
NAMES_TO_TRY = LINUX_NAMES
|
||||
elif platform.system() == "Windows":
|
||||
NAMES_TO_TRY = WINDOWS_NAMES
|
||||
else:
|
||||
NAMES_TO_TRY = MAC_NAMES + LINUX_NAMES + WINDOWS_NAMES
|
||||
|
||||
import pathlib
|
||||
MODULE = pathlib.Path(__file__).parent.parent
|
||||
|
||||
from cffi import FFI
|
||||
ffi = FFI()
|
||||
ffi.cdef(open(MODULE / "raylib_modified.h").read().replace('RLAPI ', ''))
|
||||
|
||||
for name in NAMES_TO_TRY:
|
||||
file = str(MODULE)+"/dynamic/"+name
|
||||
try:
|
||||
raylib = ffi.dlopen(file)
|
||||
print("LOADED DYNAMICALLY SHARED LIB "+file)
|
||||
break
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
Reference in a new issue