diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-07-30 20:09:49 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-30 20:09:49 +0300 |
commit | 1d36f686299076973cf9cabe300c521b73838dca (patch) | |
tree | c6af7d602ad0a1aa746e84ec2c5d7fad0072a5bd | |
parent | fb3f4420b2b4ac2b664bc7f853851d5f283b15d6 (diff) | |
parent | 10ab88710bfcd444a1e0621e007b71d7ddbe3302 (diff) | |
download | meson-1d36f686299076973cf9cabe300c521b73838dca.zip meson-1d36f686299076973cf9cabe300c521b73838dca.tar.gz meson-1d36f686299076973cf9cabe300c521b73838dca.tar.bz2 |
Merge pull request #660 from mesonbuild/libdirfix
Fix library directory handling
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 2 | ||||
-rw-r--r-- | mesonbuild/environment.py | 18 | ||||
-rw-r--r-- | test cases/common/8 install/installed_files.txt | 2 | ||||
-rw-r--r-- | test cases/common/8 install/meson.build | 2 |
4 files changed, 13 insertions, 11 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index ab5bc49..15f298b 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -516,7 +516,7 @@ int dummy; [], False, ''] d.targets.append(i) outdir = self.environment.get_shared_lib_dir() - elif isinstance(t, build.SharedLibrary): + elif isinstance(t, build.StaticLibrary): outdir = self.environment.get_static_lib_dir() elif isinstance(t, build.Executable): outdir = self.environment.get_bindir() diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py index 74bf119..404ed3e 100644 --- a/mesonbuild/environment.py +++ b/mesonbuild/environment.py @@ -128,6 +128,9 @@ class Environment(): self.coredata = coredata.load(cdf) self.first_invocation = False except FileNotFoundError: + # WARNING: Don't use any values from coredata in __init__. It gets + # re-initialized with project options by the interpreter during + # build file parsing. self.coredata = coredata.CoreData(options) self.coredata.meson_script_file = self.meson_script_file self.first_invocation = True @@ -159,14 +162,11 @@ class Environment(): or (cross and self.cross_info.has_host() and self.cross_info.config['host_machine']['system'] == 'windows'): self.exe_suffix = 'exe' self.object_suffix = 'obj' - self.shared_lib_dir = self.get_bindir() + self.win_libdir_layout = True else: self.exe_suffix = '' self.object_suffix = 'o' - self.shared_lib_dir = self.get_libdir() - # Common to all platforms - self.import_lib_dir = self.get_libdir() - self.static_lib_dir = self.get_libdir() + self.win_libdir_layout = False def is_cross_build(self): return self.cross_info is not None @@ -662,15 +662,17 @@ class Environment(): def get_import_lib_dir(self): "Install dir for the import library (library used for linking)" - return self.import_lib_dir + return self.get_libdir() def get_shared_lib_dir(self): "Install dir for the shared library" - return self.shared_lib_dir + if self.win_libdir_layout: + return self.get_bindir() + return self.get_libdir() def get_static_lib_dir(self): "Install dir for the static library" - return self.static_lib_dir + return self.get_libdir() def get_object_suffix(self): return self.object_suffix diff --git a/test cases/common/8 install/installed_files.txt b/test cases/common/8 install/installed_files.txt index 3bc66ab..cbbdc03 100644 --- a/test cases/common/8 install/installed_files.txt +++ b/test cases/common/8 install/installed_files.txt @@ -1,2 +1,2 @@ usr/bin/prog?exe -usr/lib/libstat.a +usr/libtest/libstat.a diff --git a/test cases/common/8 install/meson.build b/test cases/common/8 install/meson.build index 92ff3a0..12ad389 100644 --- a/test cases/common/8 install/meson.build +++ b/test cases/common/8 install/meson.build @@ -1,4 +1,4 @@ -project('install test', 'c') +project('install test', 'c', default_options : ['libdir=libtest']) stlib = static_library('stat', 'stat.c', install : true) exe = executable('prog', 'prog.c', install : true) |