30
30
c_char_ptr_t = ct .c_char_p
31
31
c_size_t = ct .c_size_t
32
32
33
+
34
+ AF_VER_MAJOR = '3'
35
+ FORGE_VER_MAJOR = '0'
36
+
33
37
# Work around for unexpected architectures
34
38
if 'c_dim_t_forced' in globals ():
35
39
global c_dim_t_forced
@@ -409,6 +413,8 @@ class STORAGE(_Enum):
409
413
CSC = _Enum_Type (2 )
410
414
COO = _Enum_Type (3 )
411
415
416
+ _VER_MAJOR_PLACEHOLDER = "__VER_MAJOR__"
417
+
412
418
def _setup ():
413
419
import platform
414
420
import os
@@ -446,7 +452,7 @@ def _setup():
446
452
ct .windll .kernel32 .SetErrorMode (0x0001 | 0x0002 )
447
453
448
454
if AF_SEARCH_PATH is None :
449
- AF_SEARCH_PATH = "C:/Program Files/ArrayFire/v3 /"
455
+ AF_SEARCH_PATH = "C:/Program Files/ArrayFire/v" + AF_VER_MAJOR + " /"
450
456
451
457
if CUDA_PATH is not None :
452
458
CUDA_FOUND = os .path .isdir (CUDA_PATH + '/bin' ) and os .path .isdir (CUDA_PATH + '/nvvm/bin/' )
@@ -455,7 +461,7 @@ def _setup():
455
461
456
462
## OSX specific setup
457
463
pre = 'lib'
458
- post = '.3 .dylib'
464
+ post = '.' + _VER_MAJOR_PLACEHOLDER + ' .dylib'
459
465
460
466
if AF_SEARCH_PATH is None :
461
467
AF_SEARCH_PATH = '/usr/local/'
@@ -467,10 +473,10 @@ def _setup():
467
473
468
474
elif platform_name == 'Linux' :
469
475
pre = 'lib'
470
- post = '.so.3'
476
+ post = '.so.' + _VER_MAJOR_PLACEHOLDER
471
477
472
478
if AF_SEARCH_PATH is None :
473
- AF_SEARCH_PATH = '/opt/arrayfire-3 /'
479
+ AF_SEARCH_PATH = '/opt/arrayfire-' + AF_VER_MAJOR + ' /'
474
480
475
481
if CUDA_PATH is None :
476
482
CUDA_PATH = '/usr/local/cuda/'
@@ -489,8 +495,9 @@ def _setup():
489
495
490
496
class _clibrary (object ):
491
497
492
- def __libname (self , name , head = 'af' ):
493
- libname = self .__pre + head + name + self .__post
498
+ def __libname (self , name , head = 'af' , ver_major = AF_VER_MAJOR ):
499
+ post = self .__post .replace (_VER_MAJOR_PLACEHOLDER , ver_major )
500
+ libname = self .__pre + head + name + post
494
501
libname_full = self .AF_PATH + '/lib/' + libname
495
502
return (libname , libname_full )
496
503
@@ -530,7 +537,7 @@ def __init__(self):
530
537
'opencl' : 4 }
531
538
532
539
# Try to pre-load forge library if it exists
533
- libnames = self .__libname ('forge' , '' )
540
+ libnames = self .__libname ('forge' , head = '' , ver_major = FORGE_VER_MAJOR )
534
541
for libname in libnames :
535
542
try :
536
543
ct .cdll .LoadLibrary (libname )
0 commit comments