diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-07-24 22:34:00 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2017-08-01 18:31:15 +0000 |
commit | 0509689635b0de988eec30b6f4fff23b56e381e4 (patch) | |
tree | 27747628931b3a1e9349c3cc6a2178edf2f223bb /share | |
parent | db1c4ba74a9d3655f641c0d0a8d7e4628d977980 (diff) |
Add initial support for Universal Windows Platform
[ChangeLog] Added initial support for the Universal Windows Platform
(properties for which API families/partitions are available to code
being compiled, and whether compiled binaries require an app container
context to load/execute).
Change-Id: Idd3e117bbb40bd547ae06c16318b2d2e38f07bb4
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r-- | share/qbs/imports/qbs/WindowsUtils/windows-utils.js | 21 | ||||
-rw-r--r-- | share/qbs/modules/cpp/CppModule.qbs | 3 | ||||
-rw-r--r-- | share/qbs/modules/cpp/msvc.js | 4 | ||||
-rw-r--r-- | share/qbs/modules/cpp/windows-msvc.qbs | 13 |
4 files changed, 39 insertions, 2 deletions
diff --git a/share/qbs/imports/qbs/WindowsUtils/windows-utils.js b/share/qbs/imports/qbs/WindowsUtils/windows-utils.js index 136fb3cff..e4b8487e4 100644 --- a/share/qbs/imports/qbs/WindowsUtils/windows-utils.js +++ b/share/qbs/imports/qbs/WindowsUtils/windows-utils.js @@ -28,6 +28,27 @@ ** ****************************************************************************/ +function winapiFamilyDefine(name) { + return { + "desktop": "DESKTOP_APP", + "phone": "PHONE_APP", + "pc": "PC_APP", + "server": "SERVER", + "system": "SYSTEM" + }[name]; +} + +function winapiPartitionDefine(name) { + return { + "app": "APP", + "desktop": "DESKTOP", + "phone": "PHONE_APP", + "pc": "PC_APP", + "server": "SERVER", + "system": "SYSTEM" + }[name]; +} + function characterSetDefines(charset) { var defines = []; if (charset === "unicode") diff --git a/share/qbs/modules/cpp/CppModule.qbs b/share/qbs/modules/cpp/CppModule.qbs index 1bb3d31c3..db7869d92 100644 --- a/share/qbs/modules/cpp/CppModule.qbs +++ b/share/qbs/modules/cpp/CppModule.qbs @@ -69,6 +69,9 @@ Module { } property string windowsApiCharacterSet + property string windowsApiFamily + property stringList windowsApiAdditionalPartitions + property bool requireAppContainer property string minimumWindowsVersion PropertyOptions { diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js index a79523ca9..898a6ed96 100644 --- a/share/qbs/modules/cpp/msvc.js +++ b/share/qbs/modules/cpp/msvc.js @@ -309,6 +309,10 @@ function prepareLinker(project, product, inputs, outputs, input, output) { break; } + var requireAppContainer = product.cpp.requireAppContainer; + if (requireAppContainer !== undefined) + args.push("/APPCONTAINER" + (requireAppContainer ? "" : ":NO")); + var minimumWindowsVersion = product.cpp.minimumWindowsVersion; var subsystemSwitch = undefined; if (minimumWindowsVersion || product.consoleApplication !== undefined) { diff --git a/share/qbs/modules/cpp/windows-msvc.qbs b/share/qbs/modules/cpp/windows-msvc.qbs index 59348bd51..051678d64 100644 --- a/share/qbs/modules/cpp/windows-msvc.qbs +++ b/share/qbs/modules/cpp/windows-msvc.qbs @@ -65,8 +65,17 @@ CppModule { compilerIncludePaths: msvcProbe.includePaths windowsApiCharacterSet: "unicode" - platformDefines: base.concat(WindowsUtils.characterSetDefines(windowsApiCharacterSet)) - .concat("WIN32") + platformDefines: { + var defines = base.concat(WindowsUtils.characterSetDefines(windowsApiCharacterSet)) + .concat("WIN32"); + var def = WindowsUtils.winapiFamilyDefine(windowsApiFamily); + if (def) + defines.push("WINAPI_FAMILY=WINAPI_FAMILY_" + def); + (windowsApiAdditionalPartitions || []).map(function (name) { + defines.push("WINAPI_PARTITION_" + WindowsUtils.winapiPartitionDefine(name) + "=1"); + }); + return defines; + } platformCommonCompilerFlags: { var flags = base; if (compilerVersionMajor >= 18) // 2013 |