aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-05-17 00:58:38 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-05-17 00:58:38 +0300
commitd83de3ee56beb0df45086275b35d55f423071581 (patch)
tree03924afe013e1cb2ac22e175e8f482b0150ee4ab /interpreter.py
parent07825428cfa7709d996fb66ced86ef2de4501082 (diff)
downloadmeson-d83de3ee56beb0df45086275b35d55f423071581.zip
meson-d83de3ee56beb0df45086275b35d55f423071581.tar.gz
meson-d83de3ee56beb0df45086275b35d55f423071581.tar.bz2
Can specify custom search directories in find_library.
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/interpreter.py b/interpreter.py
index 2aae944..e8bfecf 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -1228,7 +1228,18 @@ class Interpreter():
if libname in self.coredata.ext_libs and\
self.coredata.ext_libs[libname].found():
return ExternalLibraryHolder(self.coredata.ext_libs[libname])
- result = self.environment.find_library(libname)
+ if 'dirs' in kwargs:
+ search_dirs = kwargs['dirs']
+ if not isinstance(search_dirs, list):
+ search_dirs = [search_dirs]
+ for i in search_dirs:
+ if not isinstance(i, str):
+ raise InvalidCode('Directory entry is not a string.')
+ if not os.path.isabs(i):
+ raise InvalidCode('Search directory %s is not an absolute path.' % i)
+ else:
+ search_dirs = None
+ result = self.environment.find_library(libname, search_dirs)
extlib = dependencies.ExternalLibrary(libname, result)
libobj = ExternalLibraryHolder(extlib)
self.coredata.ext_libs[libname] = extlib