diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-05-17 00:58:38 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-05-17 00:58:38 +0300 |
commit | d83de3ee56beb0df45086275b35d55f423071581 (patch) | |
tree | 03924afe013e1cb2ac22e175e8f482b0150ee4ab | |
parent | 07825428cfa7709d996fb66ced86ef2de4501082 (diff) | |
download | meson-d83de3ee56beb0df45086275b35d55f423071581.zip meson-d83de3ee56beb0df45086275b35d55f423071581.tar.gz meson-d83de3ee56beb0df45086275b35d55f423071581.tar.bz2 |
Can specify custom search directories in find_library.
-rw-r--r-- | environment.py | 5 | ||||
-rw-r--r-- | interpreter.py | 13 |
2 files changed, 15 insertions, 3 deletions
diff --git a/environment.py b/environment.py index 08256c4..b58af2a 100644 --- a/environment.py +++ b/environment.py @@ -547,8 +547,9 @@ class Environment(): def get_datadir(self): return self.coredata.datadir - def find_library(self, libname): - dirs = mesonlib.get_library_dirs() + def find_library(self, libname, dirs): + if dirs is None: + dirs = mesonlib.get_library_dirs() suffixes = [self.get_shared_lib_suffix(), self.get_static_lib_suffix()] prefix = self.get_shared_lib_prefix() for d in dirs: 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 |