aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--azure-pipelines.yml23
-rw-r--r--ci/azure-steps.yml7
-rw-r--r--docs/markdown/Configuring-a-build-directory.md2
-rw-r--r--docs/markdown/Reference-manual.md3
-rw-r--r--mesonbuild/backend/vs2010backend.py2
-rw-r--r--mesonbuild/backend/vs2019backend.py34
6 files changed, 67 insertions, 4 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 483f1eb..3ec142e 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -57,6 +57,29 @@ jobs:
architecture: 'x64'
- template: ci/azure-steps.yml
+- job: vs2019
+ pool:
+ vmImage: windows-2019
+
+ strategy:
+ matrix:
+ vc2019x64ninja:
+ arch: x64
+ compiler: msvc2019
+ backend: ninja
+ vc2019x64vs:
+ arch: x64
+ compiler: msvc2019
+ backend: vs2019
+
+ steps:
+ - task: UsePythonVersion@0
+ inputs:
+ versionSpec: '3.7'
+ addToPath: true
+ architecture: 'x64'
+ - template: ci/azure-steps.yml
+
- job: cygwin
pool:
vmImage: VS2017-Win2016
diff --git a/ci/azure-steps.yml b/ci/azure-steps.yml
index d0f6d09..87ab337 100644
--- a/ci/azure-steps.yml
+++ b/ci/azure-steps.yml
@@ -99,6 +99,8 @@ steps:
# import visual studio variables
if ($env:compiler -eq 'msvc2015') {
$vcvars = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
+ } elseif($env:compiler -eq 'msvc2019') {
+ $vcvars = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
} else {
$vcvars = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
}
@@ -154,7 +156,10 @@ steps:
echo ""
echo "=== Start running tests ==="
- python run_tests.py --backend $(backend)
+ # Starting from VS2019 Powershell(?) will fail the test run
+ # if it prints anything to stderr. Python's test runner
+ # does that by default so we need to forward it.
+ cmd /c 'python 2>&1' run_tests.py --backend $(backend)
- task: PublishTestResults@2
inputs:
diff --git a/docs/markdown/Configuring-a-build-directory.md b/docs/markdown/Configuring-a-build-directory.md
index 73585e2..b0fb574 100644
--- a/docs/markdown/Configuring-a-build-directory.md
+++ b/docs/markdown/Configuring-a-build-directory.md
@@ -24,7 +24,7 @@ sample output for a simple project.
Option Current Value Possible Values Description
------ ------------- --------------- -----------
auto_features auto [enabled, disabled, auto] Override value of all 'auto' features
- backend ninja [ninja, vs, vs2010, vs2015, vs2017, xcode] Backend to use
+ backend ninja [ninja, vs, vs2010, vs2015, vs2017, vs2019, xcode] Backend to use
buildtype release [plain, debug, debugoptimized, release, minsize, custom] Build type to use
debug false [true, false] Debug
default_library shared [shared, static, both] Default library type
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 6fa2dd4..056612d 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -1553,7 +1553,8 @@ the following methods.
`MESON_SOURCE_ROOT` and `MESON_BUILD_ROOT` set.
- `backend()` *(added 0.37.0)* returns a string representing the
- current backend: `ninja`, `vs2010`, `vs2015`, `vs2017`, or `xcode`.
+ current backend: `ninja`, `vs2010`, `vs2015`, `vs2017`, `vs2019`,
+ or `xcode`.
- `build_root()` returns a string with the absolute path to the build
root directory. Note: this function will return the build root of
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index 2ef8187..3b9f541 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -207,7 +207,7 @@ class Vs2010Backend(backends.Backend):
if 'VCINSTALLDIR' in os.environ:
vs_version = os.environ['VisualStudioVersion'] \
if 'VisualStudioVersion' in os.environ else None
- relative_path = 'Auxiliary\\Build\\' if vs_version == '15.0' else ''
+ relative_path = 'Auxiliary\\Build\\' if vs_version >= '15.0' else ''
script_path = os.environ['VCINSTALLDIR'] + relative_path + 'vcvarsall.bat'
if os.path.exists(script_path):
if has_arch_values:
diff --git a/mesonbuild/backend/vs2019backend.py b/mesonbuild/backend/vs2019backend.py
new file mode 100644
index 0000000..c6e78cb
--- /dev/null
+++ b/mesonbuild/backend/vs2019backend.py
@@ -0,0 +1,34 @@
+# Copyright 2014-2019 The Meson development team
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import os
+import xml.etree.ElementTree as ET
+
+from .vs2010backend import Vs2010Backend
+
+
+class Vs2019Backend(Vs2010Backend):
+ def __init__(self, build):
+ super().__init__(build)
+ self.name = 'vs2019'
+ self.platform_toolset = 'v142'
+ self.vs_version = '2019'
+ # WindowsSDKVersion should be set by command prompt.
+ sdk_version = os.environ.get('WindowsSDKVersion', None)
+ if sdk_version:
+ self.windows_target_platform_version = sdk_version.rstrip('\\')
+
+ def generate_debug_information(self, link):
+ # valid values for vs2019 is 'false', 'true', 'DebugFastLink', 'DebugFull'
+ ET.SubElement(link, 'GenerateDebugInformation').text = 'DebugFull'