aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-06-11 14:49:52 +0300
committerGitHub <noreply@github.com>2017-06-11 14:49:52 +0300
commitb8f02047bec9fd2d1a36db82df5fed14ef386cd6 (patch)
treeb4f2e99205f3b3846a086610802ad023227a35ae /mesonbuild/backend
parent22cfd44221ada3219d9096e15dc8b00d32e0f9f6 (diff)
parent868d85d2e567b0f5cfb49858eb0f2ac96f7d5749 (diff)
downloadmeson-b8f02047bec9fd2d1a36db82df5fed14ef386cd6.zip
meson-b8f02047bec9fd2d1a36db82df5fed14ef386cd6.tar.gz
meson-b8f02047bec9fd2d1a36db82df5fed14ef386cd6.tar.bz2
Merge pull request #1900 from centricular/abstract-extdeps
dependencies: Add a new class ExternalDependency
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/backends.py2
-rw-r--r--mesonbuild/backend/vs2010backend.py32
-rw-r--r--mesonbuild/backend/vs2017backend.py4
3 files changed, 19 insertions, 19 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 3044ce6..05d6e03 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -429,7 +429,7 @@ class Backend:
break
commands += ['--pkg', dep.name]
elif isinstance(dep, dependencies.ExternalLibrary):
- commands += dep.get_lang_args('vala')
+ commands += dep.get_link_args('vala')
else:
commands += dep.get_compile_args()
# Qt needs -fPIC for executables
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index fafde8f..d4a7a19 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -29,26 +29,24 @@ from ..environment import Environment
def autodetect_vs_version(build):
vs_version = os.getenv('VisualStudioVersion', None)
- if vs_version:
- if vs_version == '14.0':
- from mesonbuild.backend.vs2015backend import Vs2015Backend
- return Vs2015Backend(build)
- if vs_version == '15.0':
- from mesonbuild.backend.vs2017backend import Vs2017Backend
- return Vs2017Backend(build)
- raise MesonException('Could not detect Visual Studio (unknown Visual Studio version: "{}")!\n'
- 'Please specify the exact backend to use.'.format(vs_version))
-
vs_install_dir = os.getenv('VSINSTALLDIR', None)
- if not vs_install_dir:
- raise MesonException('Could not detect Visual Studio (neither VisualStudioVersion nor VSINSTALLDIR set in '
- 'environment)!\nPlease specify the exact backend to use.')
-
+ if not vs_version and not vs_install_dir:
+ raise MesonException('Could not detect Visual Studio: VisualStudioVersion and VSINSTALLDIR are unset!\n'
+ 'Are we inside a Visual Studio build environment? '
+ 'You can also try specifying the exact backend to use.')
+ # VisualStudioVersion is set since Visual Studio 12.0, but sometimes
+ # vcvarsall.bat doesn't set it, so also use VSINSTALLDIR
+ if vs_version == '14.0' or 'Visual Studio 14' in vs_install_dir:
+ from mesonbuild.backend.vs2015backend import Vs2015Backend
+ return Vs2015Backend(build)
+ if vs_version == '15.0' or 'Visual Studio 17' in vs_install_dir or \
+ 'Visual Studio\\2017' in vs_install_dir:
+ from mesonbuild.backend.vs2017backend import Vs2017Backend
+ return Vs2017Backend(build)
if 'Visual Studio 10.0' in vs_install_dir:
return Vs2010Backend(build)
-
- raise MesonException('Could not detect Visual Studio (unknown VSINSTALLDIR: "{}")!\n'
- 'Please specify the exact backend to use.'.format(vs_install_dir))
+ raise MesonException('Could not detect Visual Studio using VisualStudioVersion: {!r} or VSINSTALLDIR: {!r}!\n'
+ 'Please specify the exact backend to use.'.format(vs_version, vs_install_dir))
def split_o_flags_args(args):
"""
diff --git a/mesonbuild/backend/vs2017backend.py b/mesonbuild/backend/vs2017backend.py
index 35d56f3..fe1d7c7 100644
--- a/mesonbuild/backend/vs2017backend.py
+++ b/mesonbuild/backend/vs2017backend.py
@@ -24,4 +24,6 @@ class Vs2017Backend(Vs2010Backend):
self.platform_toolset = 'v141'
self.vs_version = '2017'
# WindowsSDKVersion should be set by command prompt.
- self.windows_target_platform_version = os.getenv('WindowsSDKVersion', None).rstrip('\\')
+ sdk_version = os.environ.get('WindowsSDKVersion', None)
+ if sdk_version:
+ self.windows_target_platform_version = sdk_version.rstrip('\\')