intelligent library search
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@155 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
a79e9cf252
commit
0d5bb1c427
|
@ -7,6 +7,7 @@ Some fancy helper functions.
|
|||
import os
|
||||
import ctypes
|
||||
import structs
|
||||
import operator
|
||||
from errors import AssimpError
|
||||
from ctypes import POINTER
|
||||
|
||||
|
@ -29,6 +30,8 @@ def search_library():
|
|||
#this path
|
||||
folder = os.path.dirname(__file__)
|
||||
|
||||
candidates = []
|
||||
|
||||
#test every file
|
||||
for filename in os.listdir(folder):
|
||||
library = os.path.join(folder, filename)
|
||||
|
@ -51,6 +54,12 @@ def search_library():
|
|||
#Library found!
|
||||
load.restype = POINTER(structs.SCENE)
|
||||
|
||||
return (load, release)
|
||||
candidates.append((library, load, release))
|
||||
|
||||
raise AssimpError, "assimp library not found"
|
||||
if not candidates:
|
||||
#no library found
|
||||
raise AssimpError, "assimp library not found"
|
||||
else:
|
||||
#get the newest library
|
||||
candidates = map(lambda x: (os.lstat(x[0])[-2], x), candidates)
|
||||
return max(candidates, key=operator.itemgetter(0))[1][1:]
|
Loading…
Reference in New Issue