msbuild: auto generate and embed qt rcc files

This commit is contained in:
Shawn Hoffman
2023-08-12 16:54:53 +02:00
committed by Admiral H. Curtiss
parent 44c90aa3fc
commit a202d84570
5 changed files with 619 additions and 86 deletions
+34 -3
View File
@@ -51,9 +51,14 @@
but not the include paths, as passing include paths drastically slows down
moc, and it doesn't appear to actually need them anyway.
-->
<Import Project="qtmoc.props" />
<Import Project="qt_globals.targets"/>
<Import Project="qt_tasks.targets"/>
<ItemDefinitionGroup>
<!--From qtmoc.props-->
<QtMoc>
<ExecutionDescription>moc %(Identity)</ExecutionDescription>
<QTDIR>$(QtHostToolsDir)</QTDIR>
<InputFile>%(FullPath)</InputFile>
<!--
moc task does not properly detect outputs are outdated if Qt version changes
(possibly causing Q_MOC_OUTPUT_REVISION to change). This *might* be because we
@@ -62,15 +67,41 @@
to avoid conflicts. (the numeric postfix is the value of Q_MOC_OUTPUT_REVISION)
-->
<OutputFile>$(QtToolOutDir)moc_68\moc_%(Filename).cpp</OutputFile>
<QtMocDir>$(QtToolOutDir)moc_68\</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
<DynamicSource>output</DynamicSource>
<ParallelProcess>true</ParallelProcess>
<CommandLineTemplate>[AllOptions] [AdditionalOptions]</CommandLineTemplate>
<Outputs>%(OutputFile)</Outputs>
<OverrideClCompile>false</OverrideClCompile>
</QtMoc>
</ItemDefinitionGroup>
<Import Project="qt_globals.targets"/>
<Import Project="qt_tasks.targets"/>
<Import Project="qtmoc.targets" />
<Target Name="QtCheckQtDir" BeforeTargets="QtMocInit" Condition="!$(QtDirValid)">
<Error Text="QTDIR not set or non-existent (pull the submodule?)" />
</Target>
<!--Similar story with rcc-->
<ItemDefinitionGroup>
<!--From qtrcc.props-->
<QtRcc>
<ExecutionDescription>rcc %(Identity)</ExecutionDescription>
<QTDIR>$(QtHostToolsDir)</QTDIR>
<InputFile>%(FullPath)</InputFile>
<OutputFile>$(QtToolOutDir)rcc\qrc_%(Filename).cpp</OutputFile>
<QtRccDir>$(QtToolOutDir)rcc\</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
<InitFuncName>%(Filename)</InitFuncName>
<Compression>default</Compression>
<TwoPass>false</TwoPass>
<DynamicSource>output</DynamicSource>
<ParallelProcess>true</ParallelProcess>
<CommandLineTemplate>[AllOptions] [AdditionalOptions]</CommandLineTemplate>
<Outputs>%(OutputFile)</Outputs>
</QtRcc>
</ItemDefinitionGroup>
<Import Project="qtrcc.targets" />
<!--Expose the new targets to VS-->
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" />
-83
View File
@@ -1,83 +0,0 @@
<?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$
**
****************************************************************************/
-->
<!--
///////////////////////////////////////////////////////////////////////////////////////////////////
// Qt/MSBuild moc property definitions
// -->
<Project>
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
// Import pre-requisites
// -->
<Import
Condition="'$(QtMsBuildProps_BeforeMoc)' != ''"
Project="$(QtMsBuildProps_BeforeMoc)"/>
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
// QtMoc item template
// -->
<ItemDefinitionGroup>
<QtMoc>
<ExecutionDescription>moc %(Identity)</ExecutionDescription>
<QTDIR Condition="'$(QtVsProjectSettings)' != 'true'"
>$(QtHostToolsDir)</QTDIR>
<QTDIR Condition="'$(QtVsProjectSettings)' == 'true'"
>$(QtInstallDir)</QTDIR>
<InputFile>%(FullPath)</InputFile>
<OutputFile Condition="'$(QtVsProjectSettings)' != 'true'"
>$(ProjectDir)GeneratedFiles\$(Configuration)\moc_%(Filename).cpp</OutputFile>
<QtMocDir Condition="'$(QtVsProjectSettings)' == 'true'"
>$(IntDir)moc\</QtMocDir>
<QtMocFileName Condition="'$(QtVsProjectSettings)' == 'true'"
>moc_%(Filename).cpp</QtMocFileName>
<DynamicSource>output</DynamicSource>
<ParallelProcess>true</ParallelProcess>
<CommandLineTemplate>[AllOptions] [AdditionalOptions]</CommandLineTemplate>
<Outputs>%(OutputFile)</Outputs>
<OverrideClCompile>false</OverrideClCompile>
</QtMoc>
</ItemDefinitionGroup>
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
// Import dependants
// -->
<Import
Condition="'$(QtMsBuildProps_AfterMoc)' != ''"
Project="$(QtMsBuildProps_AfterMoc)"/>
</Project>
File diff suppressed because it is too large Load Diff
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties">
<ItemType Name="QtRcc" DisplayName="Qt Resource File" />
<ContentType Name="QtRcc" DisplayName="Qt Resource Compiler" />
</ProjectSchemaDefinitions>