aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-07-24 22:34:00 -0700
committerJake Petroules <jake.petroules@qt.io>2017-08-01 18:31:15 +0000
commit0509689635b0de988eec30b6f4fff23b56e381e4 (patch)
tree27747628931b3a1e9349c3cc6a2178edf2f223bb /share
parentdb1c4ba74a9d3655f641c0d0a8d7e4628d977980 (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.js21
-rw-r--r--share/qbs/modules/cpp/CppModule.qbs3
-rw-r--r--share/qbs/modules/cpp/msvc.js4
-rw-r--r--share/qbs/modules/cpp/windows-msvc.qbs13
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