Skip to content

Commit fe84b18

Browse files
committed
*.pyd files are now implementation specific
1 parent 4e77747 commit fe84b18

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

build_libtcod.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
from cffi import FFI
88

99

10+
module_name = 'tdl._libtcod'
11+
if platform.python_implementation() == 'CPython':
12+
module_name += '_cp%i%i' % sys.version_info[:2]
13+
1014
def _get_library_crossplatform():
1115
bits, linkage = platform.architecture()
1216
if 'win32' in sys.platform:
@@ -22,8 +26,8 @@ def _get_library_crossplatform():
2226

2327
ffi = FFI()
2428
ffi.cdef(open('tdl/tdl_cdef.h', 'r').read())
25-
ffi.set_source('tdl._libtcod', open('tdl/tdl_source.c', 'r').read(),
26-
include_dirs=['tdl/include/', 'tdl/include/Release/'],
29+
ffi.set_source(module_name, open('tdl/tdl_source.c', 'r').read(),
30+
include_dirs=['tdl/include/', 'Release/tdl/'],
2731
library_dirs=[_get_library_crossplatform()],
2832
libraries=['libtcod-VS'])
2933

tdl/libtcod.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,18 @@ def _get_library_crossplatform():
2222
os.environ['PATH'] += ';' + os.path.join(__path__[0],
2323
_get_library_crossplatform())
2424

25-
from ._libtcod import ffi, lib
25+
try:
26+
import _libtcod
27+
except ImportError:
28+
# get implementation specific version of _libtcod.pyd
29+
import importlib
30+
module_name = '._libtcod'
31+
if platform.python_implementation() == 'CPython':
32+
module_name += '_cp%i%i' % sys.version_info[:2]
2633

27-
_ffi = ffi
28-
_lib = lib
34+
_libtcod = importlib.import_module(module_name, 'tdl')
35+
36+
_ffi = _libtcod.ffi
37+
_lib = _libtcod.lib
38+
39+
__all__ = ['_ffi', '_lib']

0 commit comments

Comments
 (0)