<?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"
|
PageTemplate="tool"
|
DisplayName="Qt Remote Objects Compiler"
|
Order="9">
|
<Rule.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtRepc" />
|
</Rule.DataSource>
|
<Rule.Categories>
|
<Category Name="General" DisplayName="repc"/>
|
<Category Name="RepcCpp" DisplayName="Override C/C++"/>
|
</Rule.Categories>
|
<StringListProperty
|
Name="Inputs"
|
Category="General"
|
IsRequired="true"
|
Visible="False">
|
<StringListProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtRepc"
|
SourceType="Item" />
|
</StringListProperty.DataSource>
|
</StringListProperty>
|
<StringProperty
|
Name="ExecutionDescription"
|
DisplayName="Execution Description"
|
IncludeInCommandLine="False" />
|
<StringProperty
|
Name="QTDIR"
|
DisplayName="Qt Directory"
|
Description="Path to installation of Qt."/>
|
<EnumProperty
|
Name="InputFileType"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Input File Type">
|
<EnumValue
|
Name="rep"
|
DisplayName="Replicant template"/>
|
<EnumValue
|
Name="src"
|
DisplayName="C++ QObject derived classes"/>
|
</EnumProperty>
|
<StringProperty
|
Name="InputFile"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Input File"
|
Description="Input header/rep file to read from. ([header-file/rep-file])" />
|
<EnumProperty
|
Name="OutputFileType"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Output File Type">
|
<EnumValue
|
Name="source"
|
DisplayName="source (Source header)"/>
|
<EnumValue
|
Name="replica"
|
DisplayName="replica (Replica header)"/>
|
<EnumValue
|
Name="merged"
|
DisplayName="merged (Combined replica/source)"/>
|
<EnumValue
|
Name="rep"
|
DisplayName="rep (Replicant template)"/>
|
</EnumProperty>
|
<StringProperty
|
Name="OutputFile"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Output File"
|
Description="Output header/rep file to write to. ([rep-file/header-file])" />
|
<BoolProperty
|
Name="AlwaysClass"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Always Output Class Type"
|
Description="Always output 'class' type for .rep files and never 'POD'. (-c)"/>
|
<BoolProperty
|
Name="PrintDebug"
|
HelpUrl="https://doc.qt.io/qt-5/qtremoteobjects-repc.html"
|
DisplayName="Print Debug Information"
|
Description="Print out parsing debug information (for troubleshooting). (-d)"/>
|
<StringProperty
|
Name="CommandLineTemplate"
|
DisplayName="Command Line"
|
Visible="False"
|
IncludeInCommandLine="False" />
|
<DynamicEnumProperty
|
Name="QtRepcBeforeTargets"
|
Category="General"
|
EnumProvider="Targets"
|
IncludeInCommandLine="False" Visible="False">
|
<DynamicEnumProperty.DisplayName>
|
<sys:String>Execute Before</sys:String>
|
</DynamicEnumProperty.DisplayName>
|
<DynamicEnumProperty.Description>
|
<sys:String>Specifies the targets for the build customization to run before.</sys:String>
|
</DynamicEnumProperty.Description>
|
<DynamicEnumProperty.ProviderSettings>
|
<NameValuePair
|
Name="Exclude"
|
Value="^QtRepcBeforeTargets|^Compute" />
|
</DynamicEnumProperty.ProviderSettings>
|
<DynamicEnumProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType=""
|
HasConfigurationCondition="true" />
|
</DynamicEnumProperty.DataSource>
|
</DynamicEnumProperty>
|
<DynamicEnumProperty
|
Name="QtRepcAfterTargets"
|
Category="General"
|
EnumProvider="Targets"
|
IncludeInCommandLine="False" Visible="False">
|
<DynamicEnumProperty.DisplayName>
|
<sys:String>Execute After</sys:String>
|
</DynamicEnumProperty.DisplayName>
|
<DynamicEnumProperty.Description>
|
<sys:String>Specifies the targets for the build customization to run after.</sys:String>
|
</DynamicEnumProperty.Description>
|
<DynamicEnumProperty.ProviderSettings>
|
<NameValuePair
|
Name="Exclude"
|
Value="^QtRepcAfterTargets|^Compute" />
|
</DynamicEnumProperty.ProviderSettings>
|
<DynamicEnumProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType=""
|
HasConfigurationCondition="true" />
|
</DynamicEnumProperty.DataSource>
|
</DynamicEnumProperty>
|
<StringListProperty
|
Name="Outputs"
|
DisplayName="Outputs"
|
IncludeInCommandLine="False"
|
Visible="False" />
|
<StringListProperty
|
Name="AdditionalDependencies"
|
DisplayName="Additional Dependencies"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Subtype="AdditionalOptions"
|
Name="AdditionalOptions"
|
Category="General">
|
<StringProperty.DisplayName>
|
<sys:String>Additional Options</sys:String>
|
</StringProperty.DisplayName>
|
<StringProperty.Description>
|
<sys:String>Additional Options</sys:String>
|
</StringProperty.Description>
|
</StringProperty>
|
<EnumProperty
|
Name="DynamicSource"
|
DisplayName="Dynamic moc Source"
|
Description="Add output file to list of moc sources during build.">
|
<EnumValue
|
Name="moc_cpp"
|
DisplayName="Output moc header and moc-generated C++"
|
Description="Use output as dynamic moc source, and output of moc as dynamic C++ source."/>
|
<EnumValue
|
Name="moc"
|
DisplayName="Output moc header"
|
Description="Use output as dynamic moc source."/>
|
<EnumValue
|
Name="false"
|
DisplayName="Disable"
|
Description="Disable dynamic source."/>
|
</EnumProperty>
|
<BoolProperty
|
Name="ParallelProcess"
|
DisplayName="Parallel Process"
|
Description="Run tool in parallel process."/>
|
<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" Visible="false"/>
|
<StringListProperty Name="Define" Visible="false"/>
|
<StringListProperty Name="Undefine" 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>
|
<ItemType
|
Name="QtRepc"
|
DisplayName="Qt Remote Objects Compiler (repc)" />
|
<FileExtension
|
Name="*.rep"
|
ContentType="QtRepc" />
|
<ContentType
|
Name="QtRepc"
|
DisplayName="Qt Remote Objects Compiler (repc)"
|
ItemType="QtRepc" />
|
</ProjectSchemaDefinitions>
|