<?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="QtRule40_Rcc"
|
PageTemplate="tool"
|
DisplayName="Qt Resource Compiler"
|
Order="9">
|
<Rule.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtRcc" />
|
</Rule.DataSource>
|
<Rule.Categories>
|
<Category Name="General" DisplayName="rcc"/>
|
<Category Name="QMLCache" DisplayName="Qt Quick Compiler"/>
|
<Category Name="RccCpp" DisplayName="Override C/C++"/>
|
</Rule.Categories>
|
<StringListProperty
|
Name="Inputs"
|
Category="General"
|
IsRequired="true"
|
Visible="False">
|
<StringListProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtRcc"
|
SourceType="Item" />
|
</StringListProperty.DataSource>
|
</StringListProperty>
|
<StringProperty
|
Name="ExecutionDescription"
|
DisplayName="Execution Description"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Name="QtRccDir"
|
DisplayName="Output Directory"
|
Description="Specifies the path of the generated rcc output directory."/>
|
<StringProperty
|
Name="QtRccFileName"
|
DisplayName="Output File Name"
|
Description="Specifies the name of the generated rcc output file."/>
|
<StringProperty
|
Name="QTDIR"
|
DisplayName="Qt Directory"
|
Visible="false"/>
|
<StringProperty
|
Name="InputFile"
|
DisplayName="Input File"
|
Visible="false"/>
|
<StringProperty
|
Name="OutputFile"
|
DisplayName="Output File"
|
Visible="false"/>
|
<StringProperty
|
Name="TempFile"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Temporary File"
|
Description="Use temporary <file> for big resources. (--temp <file>)"
|
Switch="--temp "[value]"" />
|
<StringProperty
|
Name="InitFuncName"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Initialization Function Name"
|
Description=
|
"Create an external initialization function with <name>. (--name <name>)"
|
Switch="--name [value]" />
|
<StringProperty
|
Name="Root"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Root"
|
Description="Prefix resource access path with root <path>. (--root <path>)"
|
Switch="--root "[value]"" />
|
<EnumProperty
|
Name="Compression"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Compression"
|
Description="Compress input files to the given compression level.">
|
<EnumValue
|
Name="default"
|
Switch=""
|
DisplayName="Default (use zlib's default compression level)"
|
Description=
|
"The default value for level is -1, which means use zlib's default compression level."/>
|
<EnumValue
|
Name="level1"
|
Switch="--compress 1"
|
DisplayName="Level 1 (least compression / fastest)"
|
Description="Compression level 1. (--compress 1)"/>
|
<EnumValue
|
Name="level2"
|
Switch="--compress 2"
|
DisplayName="Level 2"
|
Description="Compression level 2. (--compress 2)"/>
|
<EnumValue
|
Name="level3"
|
Switch="--compress 3"
|
DisplayName="Level 3"
|
Description="Compression level 3. (--compress 3)"/>
|
<EnumValue
|
Name="level4"
|
Switch="--compress 4"
|
DisplayName="Level 4"
|
Description="Compression level 4. (--compress 4)"/>
|
<EnumValue
|
Name="level5"
|
Switch="--compress 5"
|
DisplayName="Level 5"
|
Description="Compression level 5. (--compress 5)"/>
|
<EnumValue
|
Name="level6"
|
Switch="--compress 6"
|
DisplayName="Level 6"
|
Description="Compression level 6. (--compress 6)"/>
|
<EnumValue
|
Name="level7"
|
Switch="--compress 7"
|
DisplayName="Level 7"
|
Description="Compression level 7. (--compress 7)"/>
|
<EnumValue
|
Name="level8"
|
Switch="--compress 8"
|
DisplayName="Level 8"
|
Description="Compression level 8. (--compress 8)"/>
|
<EnumValue
|
Name="level9"
|
Switch="--compress 9"
|
DisplayName="Level 9 (most compression / slowest)"
|
Description="Compression level 9. (--compress 9)"/>
|
</EnumProperty>
|
<BoolProperty
|
Name="NoCompression"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="No Compression"
|
Description="Disable all compression. (--no-compress)"
|
Switch="--no-compress"/>
|
<StringProperty
|
Name="CompressThreshold"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Compression Threshold"
|
Description=
|
"Threshold <level> to consider compressing files. (--threshold <level>)"
|
Switch="--threshold [value]" />
|
<BoolProperty
|
Name="BinaryOutput"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Binary Output"
|
Description="Output a binary file for use as a dynamic resource. (--binary)"
|
Switch="--binary"/>
|
<StringProperty
|
Name="PassNumber"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Pass Number"
|
Description="Pass <number> for big resources. (--pass <number>)"
|
Switch="--pass [value]" />
|
<BoolProperty
|
Name="NoNamespace"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Disable Namespace Macros"
|
Description="Turn off namespace macros. (--namespace)"
|
Switch="--namespace"/>
|
<BoolProperty
|
Name="Verbose"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Verbose"
|
Description="Enable verbose mode. (--verbose)"
|
Switch="--verbose"/>
|
<BoolProperty
|
Name="List"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="List"
|
Description="Only list .qrc file entries, do not generate code. (--list)"
|
Switch="--list"/>
|
<BoolProperty
|
Name="Project"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Project"
|
Description=
|
"Output a resource file containing all files from the current directory. (--project)"
|
Switch="--project"/>
|
<StringProperty
|
Name="FormatVersion"
|
HelpUrl="http://doc.qt.io/qt-5/rcc.html"
|
DisplayName="Format Version"
|
Description="The RCC format version to write. (--format-version <number>)"
|
Switch="--format-version [value]" />
|
<BoolProperty
|
Name="TwoPass"
|
DisplayName="Two-Pass Mode"
|
Description="1st pass: generate source file; 2nd pass: overwrite resouce data in object file"/>
|
<StringProperty
|
Name="CommandLineTemplate"
|
DisplayName="Command Line"
|
Visible="False"
|
IncludeInCommandLine="False" />
|
<DynamicEnumProperty
|
Name="QtRccBeforeTargets"
|
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="^QtRccBeforeTargets|^Compute" />
|
</DynamicEnumProperty.ProviderSettings>
|
<DynamicEnumProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType=""
|
HasConfigurationCondition="true" />
|
</DynamicEnumProperty.DataSource>
|
</DynamicEnumProperty>
|
<DynamicEnumProperty
|
Name="QtRccAfterTargets"
|
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="^QtRccAfterTargets|^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 C++ Source"
|
Description="Add file to list of C++ sources during build.">
|
<EnumValue
|
Name="output"
|
DisplayName="Output File"
|
Description="Use output as dynamic C++ source."/>
|
<EnumValue
|
Name="false"
|
DisplayName="Disable"
|
Description="Disable dynamic source."/>
|
</EnumProperty>
|
<BoolProperty
|
Name="ParallelProcess"
|
DisplayName="Parallel Process"
|
Description="Run tool in parallel process."/>
|
<BoolProperty
|
Name="QmlCacheGenerate"
|
Category="QMLCache"
|
DisplayName="Enable Qt Quick Compiler"
|
Description="Enable or disable ahead-of-time compilation using the Qt Quick Compiler." />
|
<!--
|
// QML cache generation -->
|
<StringProperty Name="QMLCacheHeader_Generation" Category="QMLCache" ReadOnly="true"
|
DisplayName="########## QML Cache Generation ##############################"/>
|
<StringProperty
|
Name="QmlCacheGenMessage"
|
Category="QMLCache"
|
DisplayName="Execution Description of QML cache generation"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Name="QmlCacheOutputFile"
|
Category="QMLCache"
|
DisplayName="Cache File"
|
Description=
|
"Specifies the full path of the output cache files. Use %<metadata> to reference QML file
|
metadata (e.g. %<Filename>)." />
|
<!--
|
// QRC filtering -->
|
<StringProperty Name="QMLCacheHeader_Filtering" Category="QMLCache" ReadOnly="true"
|
DisplayName="########## QRC Filtering ##############################"/>
|
<StringProperty
|
Name="QmlCacheFilterMessage"
|
Category="QMLCache"
|
DisplayName="Execution Description of QRC filtering"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Name="QmlCacheFilteredFile"
|
Category="QMLCache"
|
DisplayName="Filtered Resource File"
|
Description=
|
"Specifies the full path of the resource file copy with QML files filtered out." />
|
<StringProperty
|
Name="QmlCacheFilteredOutputFile"
|
Category="QMLCache"
|
DisplayName="Filtered Resource File Output"
|
Description=
|
"Specifies the full path of the output file for the processing of the filtered resource file." />
|
<StringProperty
|
Name="QmlCacheFilteredInitFuncName"
|
Category="QMLCache"
|
DisplayName="Filtered Resource File Initialization Function"
|
Description=
|
"Create an external initialization function with <name>. (--name <name>)" />
|
<!--
|
// QML cache loader generation -->
|
<StringProperty Name="QMLCacheHeader_Loader" Category="QMLCache" ReadOnly="true"
|
DisplayName="########## QML Cache Loader ##############################"/>
|
<StringProperty
|
Name="QmlCacheLoaderMessage"
|
Category="QMLCache"
|
DisplayName="Execution Description of QML cache loader generation"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Name="QmlCacheLoaderFile"
|
Category="QMLCache"
|
DisplayName="Cache Loader Source File"
|
Description="Specifies the full path of the QML cache loader source file." />
|
<EnumProperty
|
Name="OverrideClCompile"
|
Category="RccCpp"
|
DisplayName="Override C/C++ Properties"
|
Description="Define how C/C++ properties are redefined for rcc">
|
<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>
|
<!-- 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", "RccCpp");
|
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", "RccCpp"),
|
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 -->
|
<StringProperty
|
Name="AdditionalCppOptions"
|
DisplayName="Additional Options"
|
Description="Additional Options."
|
Category="RccCpp"/>
|
</Rule>
|
<ItemType
|
Name="QtRcc"
|
DisplayName="Qt Resource Compiler (rcc)" />
|
<FileExtension
|
Name="*.qrc"
|
ContentType="QtRcc" />
|
<ContentType
|
Name="QtRcc"
|
DisplayName="Qt Resource Compiler (rcc)"
|
ItemType="QtRcc" />
|
</ProjectSchemaDefinitions>
|