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 os
import ctypes import ctypes
import structs import structs
import operator
from errors import AssimpError from errors import AssimpError
from ctypes import POINTER from ctypes import POINTER
@ -29,6 +30,8 @@ def search_library():
#this path #this path
folder = os.path.dirname(__file__) folder = os.path.dirname(__file__)
candidates = []
#test every file #test every file
for filename in os.listdir(folder): for filename in os.listdir(folder):
library = os.path.join(folder, filename) library = os.path.join(folder, filename)
@ -51,6 +54,12 @@ def search_library():
#Library found! #Library found!
load.restype = POINTER(structs.SCENE) load.restype = POINTER(structs.SCENE)
return (load, release) candidates.append((library, load, release))
if not candidates:
#no library found
raise AssimpError, "assimp library not 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:]