<?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="QtRule30_Moc"
|
PageTemplate="tool"
|
DisplayName="Qt Meta-Object Compiler"
|
Order="9">
|
<Rule.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtMoc" />
|
</Rule.DataSource>
|
<Rule.Categories>
|
<Category Name="General" DisplayName="moc"/>
|
<Category Name="MocCpp" DisplayName="Override C/C++"/>
|
</Rule.Categories>
|
<StringListProperty
|
Name="Inputs"
|
Category="General"
|
IsRequired="true"
|
Visible="False">
|
<StringListProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType="QtMoc"
|
SourceType="Item" />
|
</StringListProperty.DataSource>
|
</StringListProperty>
|
<StringProperty
|
Name="ExecutionDescription"
|
DisplayName="Execution Description"
|
IncludeInCommandLine="False"/>
|
<StringProperty
|
Name="QtMocDir"
|
Category="General"
|
DisplayName="Output Directory"
|
Description="Specifies the path of the generated moc output directory."/>
|
<StringProperty
|
Name="QtMocFileName"
|
Category="General"
|
DisplayName="Output File Name"
|
Description="Specifies the name of the generated moc 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="MacFramework"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="macOS Framework"
|
Description=
|
"Add macOS <framework> to the include path for header files. (-F <framework>)"
|
Switch="-F "[value]""
|
Visible="False"/>
|
<BoolProperty
|
Name="PreprocessOnly"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Preprocess Only"
|
Description="Preprocess only; do not generate meta object code. (-E)"
|
Switch="-E"
|
Visible="False"/>
|
<StringListProperty
|
Name="Metadata"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Plugin Meta Data"
|
Description=
|
"Add key/value pair to plugin meta data; separate with semicolons if more than one.
|
(-M<key=value>)"
|
Switch="-M[value]" />
|
<StringProperty
|
Name="CompilerFlavor"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Compiler Flavor"
|
Description=
|
"Set the compiler <flavor>: either "msvc" or "unix".
|
(--compiler-flavor <flavor>)"
|
Switch="--compiler-flavor [value]"/>
|
<BoolProperty
|
Name="NoInclude"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="No Include"
|
Description="Do not generate an #include statement. (-i)"
|
Switch="-i"/>
|
<StringProperty
|
Name="PathPrefix"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Path Prefix"
|
Description="<path> prefix for included file. (-p <path>)"
|
Switch="-p [value]"/>
|
<StringListProperty
|
Name="ForceInclude"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Force Include"
|
Description=
|
"Force #include <file> (overwrite default); separate with semicolons if more than one.
|
(-f <file>)"
|
Switch="-f "[value]""/>
|
<StringListProperty
|
Name="PrependInclude"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Prepend Include"
|
Description=
|
"Prepend #include <file> (preserve default); separate with semicolons if more than one.
|
(-b <file>)"
|
Switch="-b "[value]""/>
|
<StringListProperty
|
Name="Include"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Include"
|
Description=
|
"Parse <file> as an #include before the main source(s); separate with semicolons if more
|
than one. (--include <file>)"
|
Switch="--include "[value]""/>
|
<StringListProperty
|
Name="NoNotesWarnings"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="No Notes Or Warnings"
|
Description=
|
"Do not display notes (-nn) or warnings (-nw); Compatibility option; separate with semicolons if
|
more than one. (-n<n|w>)"
|
Switch="-n[value]"
|
Visible="False"/>
|
<BoolProperty
|
Name="NoNotes"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="No Notes"
|
Description="Do not display notes. (--no-notes)"
|
Switch="--no-notes"/>
|
<BoolProperty
|
Name="NoWarnings"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="No Warnings"
|
Description="Do not display warnings (implies --no-notes). (--no-warnings)"
|
Switch="--no-warnings"/>
|
<BoolProperty
|
Name="IgnoreConflicts"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Ignore Conflicts"
|
Description=
|
"Ignore all options that conflict with compilers, like -pthread conflicting with moc's -p option.
|
(--ignore-option-clashes)"
|
Switch="--ignore-option-clashes"/>
|
<StringProperty
|
Name="OptionsFile"
|
HelpUrl="http://doc.qt.io/qt-5/moc.html"
|
DisplayName="Options File"
|
Description="Read additional command-line options from <file>. (@<file>)"
|
Switch=""@[value]"" />
|
<StringProperty
|
Name="CommandLineTemplate"
|
DisplayName="Command Line"
|
Visible="False"
|
IncludeInCommandLine="False" />
|
<DynamicEnumProperty
|
Name="QtMocBeforeTargets"
|
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="^QtMocBeforeTargets|^Compute" />
|
</DynamicEnumProperty.ProviderSettings>
|
<DynamicEnumProperty.DataSource>
|
<DataSource
|
Persistence="ProjectFile"
|
ItemType=""
|
HasConfigurationCondition="true" />
|
</DynamicEnumProperty.DataSource>
|
</DynamicEnumProperty>
|
<DynamicEnumProperty
|
Name="QtMocAfterTargets"
|
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="^QtMocAfterTargets|^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="input"
|
DisplayName="Input File"
|
Description="Use input 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."/>
|
<StringListProperty Name="IncludePath" Visible="false"/>
|
<StringListProperty Name="Define" Visible="false"/>
|
<StringListProperty Name="Undefine" Visible="false"/>
|
<EnumProperty
|
Name="OverrideClCompile"
|
Category="MocCpp"
|
DisplayName="Override C/C++ Properties"
|
Description="Define how C/C++ properties are redefined for moc">
|
<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", "MocCpp");
|
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", "MocCpp"),
|
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="MocCpp"/>
|
</Rule>
|
<ItemType
|
Name="QtMoc"
|
DisplayName="Qt Meta-Object Compiler (moc)" />
|
<ContentType
|
Name="QtMoc"
|
DisplayName="Qt Meta-Object Compiler (moc)"
|
ItemType="QtMoc" />
|
</ProjectSchemaDefinitions>
|