aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-07-30 20:09:49 +0300
committerGitHub <noreply@github.com>2016-07-30 20:09:49 +0300
commit1d36f686299076973cf9cabe300c521b73838dca (patch)
treec6af7d602ad0a1aa746e84ec2c5d7fad0072a5bd
parentfb3f4420b2b4ac2b664bc7f853851d5f283b15d6 (diff)
parent10ab88710bfcd444a1e0621e007b71d7ddbe3302 (diff)
downloadmeson-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.py2
-rw-r--r--mesonbuild/environment.py18
-rw-r--r--test cases/common/8 install/installed_files.txt2
-rw-r--r--test cases/common/8 install/meson.build2
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)