mirror of
https://github.com/Alia5/GlosSI.git
synced 2024-11-09 01:10:24 +00:00
aff24b8a7e
Add QtMsBuild for appveyor -.-
407 lines
15 KiB
XML
407 lines
15 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2018 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$
|
|
**
|
|
****************************************************************************/
|
|
-->
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Definitions specific to uic
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// -->
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Import pre-requisites
|
|
// -->
|
|
<Import
|
|
Condition="'$(QtMsBuildTargets_BeforeUic)' != ''"
|
|
Project="$(QtMsBuildTargets_BeforeUic)"/>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Qt/MSBuild global properties
|
|
// -->
|
|
<PropertyGroup>
|
|
<QtBuildTargets>QtUic;$(QtBuildTargets)</QtBuildTargets>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Setup item type and property page
|
|
// -->
|
|
<Choose>
|
|
<When Condition="'$(QtVsProjectSettings)' == 'true' AND '$(QtVsProjectClProperties)' == 'true'">
|
|
<ItemGroup>
|
|
<PropertyPageSchema
|
|
Include="$(MSBuildThisFileDirectory)qtuic_v3.xml" />
|
|
</ItemGroup>
|
|
</When>
|
|
<Otherwise>
|
|
<ItemGroup Condition="'$(QtVsProjectSettings)' == 'false'">
|
|
<PropertyPageSchema
|
|
Include="$(MSBuildThisFileDirectory)qtuic.xml" />
|
|
</ItemGroup>
|
|
</Otherwise>
|
|
</Choose>
|
|
<ItemGroup>
|
|
<AvailableItemName Include="QtUic">
|
|
<Targets>Qt</Targets>
|
|
</AvailableItemName>
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<QtUicRuleName>QtRule50_Uic</QtUicRuleName>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// TARGET QtUicInit
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Initialize default metadata
|
|
// -->
|
|
<Target Name="QtUicInit">
|
|
<!--// Initialize %(OutputFile) -->
|
|
<ItemGroup Condition="'$(QtVsProjectSettings)' == 'true' AND '@(QtUic)' != ''">
|
|
<QtUicAux Include="@(QtUic)">
|
|
<OutputFile
|
|
>$([System.IO.Path]::Combine('%(QtUic.QtUicDir)','%(QtUic.QtUicFileName)'))</OutputFile>
|
|
</QtUicAux>
|
|
<QtUic Remove="@(QtUic)"/>
|
|
<QtUic Include="@(QtUicAux)"/>
|
|
<QtUicAux Remove="@(QtUicAux)"/>
|
|
</ItemGroup>
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Add uic output dir to C++ include path
|
|
// -->
|
|
<ItemGroup Condition="'@(QtUic)' != ''">
|
|
<QtIncludePath Include="$([System.IO.Path]::GetDirectoryName('%(QtUic.OutputFile)'))"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// TARGET QtUicPrepare
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Prepare to process sources
|
|
// -->
|
|
<Target Name="QtUicPrepare" DependsOnTargets="QtUicInit"
|
|
Inputs="%(QtUic.Identity)" Outputs="@(QtUic->'####### Don't skip this target #######')">
|
|
<ItemGroup>
|
|
<selected_files Include="$(SelectedFiles)"/>
|
|
</ItemGroup>
|
|
|
|
<Message Importance="High" Condition="'$(QtDebug)' == 'true'"
|
|
Text="## QtUicPrepare @(QtUic)"/>
|
|
|
|
<PropertyGroup>
|
|
<selected_files>[@(selected_files->'%(Identity)','][')]</selected_files>
|
|
<file>[@(QtUic->'%(Identity)')]</file>
|
|
<output_file>@(QtUic->'%(OutputFile)')</output_file>
|
|
<is_selected Condition="$(selected_files.Contains('$(file)'))">true</is_selected>
|
|
<is_selected Condition="!$(selected_files.Contains('$(file)'))">false</is_selected>
|
|
</PropertyGroup>
|
|
|
|
<!--// Delete output file to force build of source if it was manually selected to build
|
|
// (e.g. by the 'Compile' option in the context menu for the file) -->
|
|
<Delete Files="$(output_file)"
|
|
Condition="'$(SelectedFiles)' != '' AND '$(is_selected)' == 'true'" />
|
|
|
|
<!--// If a source was manually selected to build, remove all other sources -->
|
|
<ItemGroup Condition="'@(selected_files)' != ''">
|
|
<QtUic Remove="@(QtUic)"
|
|
Condition="'$(SelectedFiles)' != '' AND '$(is_selected)' != 'true'" />
|
|
</ItemGroup>
|
|
|
|
<!--// Remove sources excluded from build -->
|
|
<ItemGroup>
|
|
<QtUic Remove="@(QtUic)"
|
|
Condition="'$(SelectedFiles)' == '' AND '%(QtUic.ExcludedFromBuild)' == 'true'"/>
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup>
|
|
<selected_files/>
|
|
<file/>
|
|
<output_file/>
|
|
<is_selected/>
|
|
</PropertyGroup>
|
|
</Target>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// TARGET QtUicSetModified
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Set InputChanged flag if source file or dependencies have been modified
|
|
// -->
|
|
<Target Name="QtUicSetModified" DependsOnTargets="QtUicPrepare"
|
|
Condition="'@(QtUic)' != ''"
|
|
Inputs="%(QtUic.FullPath);%(QtUic.AdditionalDependencies)" Outputs="@(QtUic->'%(OutputFile)')">
|
|
|
|
<Message Importance="High" Condition="'$(QtDebug)' == 'true'"
|
|
Text="## QtUicSetModified @(QtUic)" />
|
|
|
|
<CreateProperty Value="true">
|
|
<!-- // Using ValueSetByTask ensures $(input_changed) is only set to 'true' when the target
|
|
// is actually executed and not when MSBuild is figuring out which targets to run -->
|
|
<Output TaskParameter="ValueSetByTask" PropertyName="input_changed" />
|
|
</CreateProperty>
|
|
<ItemGroup>
|
|
<QtUic>
|
|
<InputChanged>$(input_changed)</InputChanged>
|
|
</QtUic>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
/// TARGET QtUic
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Process each source file and produce the corresponding QtWork items
|
|
// -->
|
|
<PropertyGroup>
|
|
<QtUicDependsOn>
|
|
QtPrepare;
|
|
QtUicPrepare;
|
|
QtUicSetModified;
|
|
$(QtUicDependsOn)
|
|
</QtUicDependsOn>
|
|
</PropertyGroup>
|
|
<Target Name="QtUic"
|
|
DependsOnTargets="$(QtUicDependsOn)"
|
|
BeforeTargets="$(QtUicBeforeTargets)" AfterTargets="$(QtUicAfterTargets)"
|
|
Condition="'@(QtUic)' != ''"
|
|
Inputs="%(QtUic.FullPath);%(QtUic.AdditionalDependencies);$(MSBuildProjectFile)"
|
|
Outputs="@(QtUic->'%(OutputFile)')">
|
|
|
|
<Message Importance="High" Condition="'$(QtDebug)' == 'true'" Text="## QtUic @(QtUic)" />
|
|
|
|
<CreateProperty Value="true">
|
|
<Output TaskParameter="ValueSetByTask" PropertyName="dependencies_changed" />
|
|
</CreateProperty>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Convert string lists in source item properties to lists of items
|
|
// -->
|
|
<Flatten Items="@(QtUic)"
|
|
Metadata="InputFile;
|
|
OutputFile;
|
|
DisplayDependencies;
|
|
NoProtection;
|
|
NoImplicitIncludes;
|
|
Postfix;
|
|
Translate;
|
|
Include;
|
|
Generator;
|
|
IdBased">
|
|
<Output
|
|
TaskParameter="Result" ItemName="LocalOptions" />
|
|
</Flatten>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Translate local paths to build host paths
|
|
// -->
|
|
<HostTranslatePaths
|
|
Items="@(LocalOptions)"
|
|
Names="InputFile;
|
|
OutputFile;
|
|
Include">
|
|
<Output
|
|
TaskParameter="Result" ItemName="options" />
|
|
</HostTranslatePaths>
|
|
|
|
<ItemGroup>
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Remove quotes from all paths
|
|
// Escape trailing back-slash in paths
|
|
// Add quotes to paths containing spaces
|
|
// -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'InputFile' OR '%(Name)' == 'OutputFile'
|
|
OR '%(Name)' == 'Include'"
|
|
>$([System.String]::Copy('%(Value)').Replace('"', ''))</Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="('%(Name)' == 'InputFile' OR '%(Name)' == 'OutputFile'
|
|
OR '%(Name)' == 'Include')
|
|
AND $([System.String]::Copy('%(Value)').Contains(' '))
|
|
AND $([System.String]::Copy('%(Value)').EndsWith('\'))"
|
|
>%(Value)\</Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="('%(Name)' == 'InputFile' OR '%(Name)' == 'OutputFile'
|
|
OR '%(Name)' == 'Include')
|
|
AND $([System.String]::Copy('%(Value)').Contains(' '))"
|
|
>"%(Value)"</Value>
|
|
</options>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Generate tool command line arguments
|
|
// -->
|
|
<!--// [uifile] Input file (*.ui) -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'InputFile'">%(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -o, -output <file> Place the output into <file> -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'OutputFile'">-o %(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -d, -dependencies Display the dependencies -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'DisplayDependencies' AND '%(Value)' != 'true'"></Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'DisplayDependencies' AND '%(Value)' == 'true'"
|
|
>--dependencies</Value>
|
|
</options>
|
|
|
|
<!--// -p, -no-protection Disable header protection -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'NoProtection' AND '%(Value)' != 'true'"></Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'NoProtection' AND '%(Value)' == 'true'"
|
|
>--no-protection</Value>
|
|
</options>
|
|
|
|
<!--// -n, -no-implicit-includes Disable generation of #include-directives -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'NoImplicitIncludes' AND '%(Value)' != 'true'"></Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'NoImplicitIncludes' AND '%(Value)' == 'true'"
|
|
>--no-implicit-includes</Value>
|
|
</options>
|
|
|
|
<!--// -postfix <postfix> Postfix to add to all generated classnames -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'Postfix'">--postfix %(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -tr, -translate <function> Use <function> for i18n -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'Translate'">--tr %(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -include <include-file> Add #include <include-file> to <file> -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'Include'">--include %(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -g, -generator <java|cpp> Select generator -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'Generator'">-g %(Value)</Value>
|
|
</options>
|
|
|
|
<!--// -idbased Use id based function for i18n -->
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'IdBased' AND '%(Value)' != 'true'"></Value>
|
|
</options>
|
|
<options>
|
|
<Value Condition="'%(Name)' == 'IdBased' AND '%(Value)' == 'true'">--idbased</Value>
|
|
</options>
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<options>@(options->'%(Value)', ' ')</options>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Aux properties
|
|
// -->
|
|
<PropertyGroup>
|
|
<!--// Force modified flag if source was manually selected to build -->
|
|
<input_changed Condition="'$(SelectedFiles)' != ''"
|
|
>true</input_changed>
|
|
<input_changed Condition="'$(SelectedFiles)' == ''"
|
|
>%(QtUic.InputChanged)</input_changed>
|
|
|
|
<!--// Run work in parallel processes -->
|
|
<run_parallel Condition="'@(QtUic)' != ''
|
|
AND '%(QtUic.ParallelProcess)' == 'true'
|
|
AND '$(SelectedFiles)' == ''"
|
|
>true</run_parallel>
|
|
|
|
<!--// Run work in single process -->
|
|
<run_single Condition="'@(QtUic)' != ''
|
|
AND ('%(QtUic.ParallelProcess)' != 'true'
|
|
OR '$(SelectedFiles)' != '')"
|
|
>true</run_single>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Create work item
|
|
// -->
|
|
<ItemGroup Condition="'$(run_parallel)' == 'true' OR '$(run_single)' == 'true'">
|
|
<QtWork Include="@(QtUic)">
|
|
<WorkType>uic</WorkType>
|
|
<ToolPath Condition="'$(QtVsProjectSettings)' == 'true'">$(QtToolsPath)/uic</ToolPath>
|
|
<ToolPath Condition="'$(QtVsProjectSettings)' != 'true'">%(QtUic.QTDIR)\bin\uic.exe</ToolPath>
|
|
<Options>$(options)</Options>
|
|
<Message>%(QtUic.ExecutionDescription)</Message>
|
|
<DependenciesChanged>$(dependencies_changed)</DependenciesChanged>
|
|
<InputChanged>$(input_changed)</InputChanged>
|
|
<ParallelBuild Condition="'$(run_parallel)' == 'true'">true</ParallelBuild>
|
|
<ParallelBuild Condition="'$(run_single)' == 'true'">false</ParallelBuild>
|
|
</QtWork>
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Clean-up
|
|
// -->
|
|
<PropertyGroup>
|
|
<options/>
|
|
<dependencies_changed/>
|
|
<input_changed/>
|
|
<run_parallel/>
|
|
<run_single/>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<LocalOptions Remove="@(LocalOptions)"/>
|
|
<options Remove="@(options)"/>
|
|
<selected_files Remove="@(selected_files)"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!--
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Import dependants
|
|
// -->
|
|
<Import
|
|
Condition="'$(QtMsBuildTargets_AfterUic)' != ''"
|
|
Project="$(QtMsBuildTargets_AfterUic)"/>
|
|
|
|
</Project>
|