aboutsummaryrefslogtreecommitdiffstats
path: root/src/qtmsbuild/repc/qtrepc_cl.xml_TT
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2019-07-08 16:16:15 +0200
committerMiguel Costa <miguel.costa@qt.io>2019-08-05 09:24:17 +0000
commitcff73364c3b632a84ab3c7ca2f2ea32b563910ce (patch)
tree41d0c87644f3322aa29709bae3d58529511cd7fc /src/qtmsbuild/repc/qtrepc_cl.xml_TT
parent3e7709dcf5927f5674cccc253ecefae3ab758166 (diff)
Add C++ compiler properties to Qt tools
Qt tools that generate C++ code will now include all properties available in the C++ compiler property page, allowing the default values of the C++ compiler properties to be used directly by the Qt tools, without the need to actively monitor changes to maintain properties synchronized. It is also possible to extend (i.e. append to) or override (i.e. replace) the default C++ property values for Qt tools. Task-number: QTVSADDINBUG-575 Task-number: QTVSADDINBUG-632 Change-Id: I456ee6b4926cd11c83c845656a617a4fb204542a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/qtmsbuild/repc/qtrepc_cl.xml_TT')
-rw-r--r--src/qtmsbuild/repc/qtrepc_cl.xml_TT112
1 files changed, 112 insertions, 0 deletions
diff --git a/src/qtmsbuild/repc/qtrepc_cl.xml_TT b/src/qtmsbuild/repc/qtrepc_cl.xml_TT
new file mode 100644
index 00000000..563c7bda
--- /dev/null
+++ b/src/qtmsbuild/repc/qtrepc_cl.xml_TT
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ *****************************************************************************
+ **
+ ** Copyright (C) 2019 The Qt Company Ltd.
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the Qt VS Tools.
+ **
+ ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+ ** Commercial License Usage
+ ** Licensees holding valid commercial Qt licenses may use this file in
+ ** accordance with the commercial license agreement provided with the
+ ** Software or, alternatively, in accordance with the terms contained in
+ ** a written agreement between you and The Qt Company. For licensing terms
+ ** and conditions see https://www.qt.io/terms-conditions. For further
+ ** information use the contact form at https://www.qt.io/contact-us.
+ **
+ ** GNU General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU
+ ** General Public License version 3 as published by the Free Software
+ ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+ ** included in the packaging of this file. Please review the following
+ ** information to ensure the GNU General Public License requirements will
+ ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+ **
+ ** $QT_END_LICENSE$
+ **
+ *****************************************************************************
+<#@output extension="xml" #>
+<#@include file="$(SolutionDir)\common.tt" #>
+<#@assembly Name="System.Xml" #>
+<#@assembly Name="System.Xml.Linq" #>
+<#@import namespace="System.Collections.Generic" #>
+<#@import namespace="System.Linq" #>
+<#@import namespace="System.Text" #>
+<#@import namespace="System.Xml" #>
+<#@import namespace="System.Xml.Linq" #>
+<#
+ var pathRuleCl = Path.Combine(VC_TARGETS_PATH, "1033", "cl.xml");
+ var xmlRule = XmlLoad(File.ReadAllText(pathRuleCl, Encoding.UTF8));
+ var categoryNames = xmlRule
+ .Elements("Rule.Categories")
+ .Elements("Category")
+ .Where(x => x.Attribute("Subtype") == null)
+ .ToDictionary(
+ x => (string)x.Attribute("Name"),
+ x => (string)x.Attribute("DisplayName"));
+#>
+ ** <#=WARNING_GENERATED_FILE#>
+ *****************************************************************************
+-->
+
+<ProjectSchemaDefinitions
+ xmlns="http://schemas.microsoft.com/build/2009/properties"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:sys="clr-namespace:System;assembly=mscorlib">
+ <Rule
+ Name="QtRule60_Repc"
+ OverrideMode="Extend"
+ PageTemplate="tool"
+ DisplayName="Qt Remote Objects Compiler"
+ Order="9">
+ <Rule.DataSource>
+ <DataSource
+ Persistence="ProjectFile"
+ ItemType="QtRepc" />
+ </Rule.DataSource>
+ <Rule.Categories>
+ <Category Name="RepcCpp" DisplayName="Override C/C++"/>
+ </Rule.Categories>
+ <EnumProperty
+ Name="OverrideClCompile"
+ Category="RepcCpp"
+ DisplayName="Override C/C++ Properties"
+ Description="Define how C/C++ properties are redefined for Repc">
+ <EnumValue Name="extend" DisplayName=
+"Extend (append override definitions to C/C++ list properties; replace other properties)"/>
+ <EnumValue Name="replace" DisplayName=
+"Replace (use override definitions instead of C/C++ properties)"/>
+ <EnumValue Name="false" DisplayName=
+"Disabled (use C/C++ properties; ignore override definitions)"/>
+ </EnumProperty>
+ <StringListProperty Name="IncludePath" Switch="&quot;-I[value]&quot;" Visible="false"/>
+ <StringListProperty Name="Define" Switch="-D " Visible="false"/>
+ <StringListProperty Name="Undefine" Switch="-U[value]" Visible="false"/>
+ <!-- BEGIN Generated Text <#=XML_COMMENT_END#>
+<#=
+XmlPrint(xmlRule.Elements()
+ .Where(x => x.Name.ToString().EndsWith("Property"))
+ .Where(x => (string)x.Attribute("Visible") != "false")
+ .Where(x => (string)x.Attribute("Category") != "Command Line")
+ .Where(x => !x.Descendants("DataSource").Any())
+ .GroupBy(x => (string)x.Attribute("Category"))
+ .SelectMany(y => y.Select(x =>
+ {
+ x = new XElement(x);
+ x.SetAttributeValue("Category", "RepcCpp");
+ x.SetAttributeValue("Description", "(overrides C/C++ property) "
+ + (string)x.Attribute("Description"));
+ return x;
+ })
+ .Prepend(new XElement("StringProperty",
+ new XAttribute("Name", "QtCppHeader_" + y.Key.Replace(' ', '_')),
+ new XAttribute("Category", "RepcCpp"),
+ new XAttribute("ReadOnly", "true"),
+ new XAttribute("DisplayName", string.Format("{0} {1} {2}",
+ new string('#', 10), categoryNames[y.Key], new string('#', 30)))))))
+#>
+ <#=XML_COMMENT_BEGIN#> END Generated Text -->
+ </Rule>
+</ProjectSchemaDefinitions>