intelligent library search

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@155 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
sebastianhempel 2008-09-19 18:06:04 +00:00
parent a79e9cf252
commit 0d5bb1c427
1 changed files with 11 additions and 2 deletions

View File

@ -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:]