mirror of
				https://github.com/dolphin-emu/dolphin.git
				synced 2025-11-03 13:16:15 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			511 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			511 lines
		
	
	
		
			19 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 moc
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
// -->
 | 
						|
<Project>
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Import pre-requisites
 | 
						|
  // -->
 | 
						|
  <Import
 | 
						|
    Condition="'$(QtMsBuildTargets_BeforeMoc)' != ''"
 | 
						|
    Project="$(QtMsBuildTargets_BeforeMoc)"/>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Qt/MSBuild global properties
 | 
						|
  // -->
 | 
						|
  <PropertyGroup>
 | 
						|
    <QtBuildTargets>QtMoc;$(QtBuildTargets)</QtBuildTargets>
 | 
						|
  </PropertyGroup>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Setup item type and property page
 | 
						|
  // -->
 | 
						|
  <Choose>
 | 
						|
    <When Condition="'$(QtVsProjectSettings)' == 'true' AND '$(QtVsProjectClProperties)' == 'true'">
 | 
						|
      <ItemGroup>
 | 
						|
        <PropertyPageSchema
 | 
						|
          Include="$(MSBuildThisFileDirectory)qtmoc_v3.xml" />
 | 
						|
      </ItemGroup>
 | 
						|
    </When>
 | 
						|
    <Otherwise>
 | 
						|
      <ItemGroup Condition="'$(QtVsProjectSettings)' == 'false'">
 | 
						|
        <PropertyPageSchema
 | 
						|
          Include="$(MSBuildThisFileDirectory)qtmoc.xml" />
 | 
						|
      </ItemGroup>
 | 
						|
    </Otherwise>
 | 
						|
  </Choose>
 | 
						|
  <ItemGroup>
 | 
						|
    <AvailableItemName Include="QtMoc">
 | 
						|
      <Targets>Qt;_ClCompile</Targets>
 | 
						|
    </AvailableItemName>
 | 
						|
  </ItemGroup>
 | 
						|
  <PropertyGroup>
 | 
						|
    <QtMocRuleName>QtRule30_Moc</QtMocRuleName>
 | 
						|
  </PropertyGroup>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  /// TARGET QtMocInit
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Initialize default metadata
 | 
						|
  // -->
 | 
						|
  <Target Name="QtMocInit">
 | 
						|
    <!--// Initialize %(OutputFile) -->
 | 
						|
    <ItemGroup Condition="'$(QtVsProjectSettings)' == 'true' AND '@(QtMoc)' != ''">
 | 
						|
      <QtMocAux Include="@(QtMoc)">
 | 
						|
        <OutputFile
 | 
						|
          >$([System.IO.Path]::Combine('%(QtMoc.QtMocDir)','%(QtMoc.QtMocFileName)'))</OutputFile>
 | 
						|
      </QtMocAux>
 | 
						|
      <QtMoc Remove="@(QtMoc)"/>
 | 
						|
      <QtMoc Include="@(QtMocAux)"/>
 | 
						|
      <QtMocAux Remove="@(QtMocAux)"/>
 | 
						|
    </ItemGroup>
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Add moc output dir to C++ include path
 | 
						|
    // -->
 | 
						|
    <ItemGroup Condition="'@(QtMoc)' != ''">
 | 
						|
      <QtIncludePath Include="$([System.IO.Path]::GetDirectoryName('%(QtMoc.OutputFile)'))"/>
 | 
						|
    </ItemGroup>
 | 
						|
  </Target>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  /// TARGET QtMocPrepare
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Prepare to process sources
 | 
						|
  // -->
 | 
						|
  <Target Name="QtMocPrepare" DependsOnTargets="_SelectedFiles;QtMocInit"
 | 
						|
    Inputs="%(QtMoc.Identity)" Outputs="@(QtMoc->'####### Don't skip this target #######')">
 | 
						|
 | 
						|
    <Message Importance="High" Condition="'$(QtDebug)' == 'true'"
 | 
						|
        Text="## QtMocPrepare @(QtMoc)"/>
 | 
						|
 | 
						|
    <PropertyGroup>
 | 
						|
      <selected_files>[@(SelectedFiles->'%(Identity)','][')]</selected_files>
 | 
						|
      <file>[@(QtMoc->'%(Identity)')]</file>
 | 
						|
      <output_file>@(QtMoc->'%(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="'@(SelectedFiles)' != ''">
 | 
						|
      <QtMoc Remove="@(QtMoc)"
 | 
						|
        Condition="'$(SelectedFiles)' != '' AND '$(is_selected)' != 'true'" />
 | 
						|
    </ItemGroup>
 | 
						|
 | 
						|
    <!--// Remove sources excluded from build -->
 | 
						|
    <ItemGroup>
 | 
						|
      <QtMoc Remove="@(QtMoc)"
 | 
						|
        Condition="'$(SelectedFiles)' == '' AND '%(QtMoc.ExcludedFromBuild)' == 'true'"/>
 | 
						|
    </ItemGroup>
 | 
						|
 | 
						|
    <PropertyGroup>
 | 
						|
      <selected_files/>
 | 
						|
      <file/>
 | 
						|
      <output_file/>
 | 
						|
      <is_selected/>
 | 
						|
    </PropertyGroup>
 | 
						|
  </Target>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  /// TARGET QtMocSetModified
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Set InputChanged flag if source file or dependencies have been modified
 | 
						|
  // -->
 | 
						|
  <Target Name="QtMocSetModified" DependsOnTargets="QtMocPrepare"
 | 
						|
    Condition="'@(QtMoc)' != ''"
 | 
						|
    Inputs="%(QtMoc.FullPath);%(QtMoc.AdditionalDependencies)" Outputs="@(QtMoc->'%(OutputFile)')">
 | 
						|
 | 
						|
    <Message Importance="High" Condition="'$(QtDebug)' == 'true'"
 | 
						|
      Text="## QtMocSetModified @(QtMoc)" />
 | 
						|
 | 
						|
    <CreateProperty Value="true">
 | 
						|
      <Output TaskParameter="ValueSetByTask" PropertyName="input_changed" />
 | 
						|
    </CreateProperty>
 | 
						|
    <ItemGroup>
 | 
						|
      <QtMoc>
 | 
						|
        <InputChanged>$(input_changed)</InputChanged>
 | 
						|
      </QtMoc>
 | 
						|
    </ItemGroup>
 | 
						|
  </Target>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  /// TARGET QtMocOverrideCpp
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  //
 | 
						|
  // -->
 | 
						|
  <Import Project="qtmoc_cl.targets"/>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  /// TARGET QtMoc
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Process each source file and produce the corresponding QtWork items
 | 
						|
  // -->
 | 
						|
  <PropertyGroup>
 | 
						|
    <QtMocDependsOn>
 | 
						|
      QtPrepare;
 | 
						|
      QtMocPrepare;
 | 
						|
      QtMocSetModified;
 | 
						|
      QtMocOverrideCpp;
 | 
						|
      $(QtMocDependsOn)
 | 
						|
    </QtMocDependsOn>
 | 
						|
  </PropertyGroup>
 | 
						|
  <Target Name="QtMoc"
 | 
						|
    DependsOnTargets="$(QtMocDependsOn)"
 | 
						|
    BeforeTargets="$(QtMocBeforeTargets)" AfterTargets="$(QtMocAfterTargets)"
 | 
						|
    Condition="'@(QtMoc)' != ''"
 | 
						|
    Inputs="%(QtMoc.FullPath);%(QtMoc.AdditionalDependencies);$(MSBuildProjectFile)"
 | 
						|
    Outputs="@(QtMoc->'%(OutputFile)')">
 | 
						|
 | 
						|
    <Message Importance="High" Condition="'$(QtDebug)' == 'true'" Text="## QtMoc @(QtMoc)" />
 | 
						|
 | 
						|
    <CreateProperty Value="true">
 | 
						|
      <Output TaskParameter="ValueSetByTask" PropertyName="dependencies_changed" />
 | 
						|
    </CreateProperty>
 | 
						|
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Convert string lists in source item properties to lists of items
 | 
						|
    // -->
 | 
						|
    <Flatten Items="@(QtMoc)"
 | 
						|
      Metadata="InputFile;
 | 
						|
                OutputFile;
 | 
						|
                IncludePath;
 | 
						|
                MacFramework;
 | 
						|
                PreprocessOnly;
 | 
						|
                Define;
 | 
						|
                Undefine;
 | 
						|
                Metadata;
 | 
						|
                CompilerFlavor;
 | 
						|
                NoInclude;
 | 
						|
                PathPrefix;
 | 
						|
                ForceInclude;
 | 
						|
                PrependInclude;
 | 
						|
                Include;
 | 
						|
                NoNotesWarnings;
 | 
						|
                NoNotes;
 | 
						|
                NoWarnings;
 | 
						|
                IgnoreConflicts;
 | 
						|
                OptionsFile">
 | 
						|
      <Output
 | 
						|
        TaskParameter="Result" ItemName="options" />
 | 
						|
    </Flatten>
 | 
						|
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Translate local paths to build host paths
 | 
						|
    // -->
 | 
						|
    <HostTranslatePaths
 | 
						|
      Items="@(options)"
 | 
						|
      Names="InputFile;
 | 
						|
            OutputFile;
 | 
						|
            IncludePath;
 | 
						|
            MacFramework;
 | 
						|
            PathPrefix;
 | 
						|
            ForceInclude;
 | 
						|
            PrependInclude;
 | 
						|
            Include;
 | 
						|
            OptionsFile">
 | 
						|
      <Output
 | 
						|
        TaskParameter="Result" ItemName="HostPath" />
 | 
						|
    </HostTranslatePaths>
 | 
						|
    <ItemGroup>
 | 
						|
      <options Condition="'%(Identity)' != ''">
 | 
						|
        <Value>@(HostPath->'%(Value)')</Value>
 | 
						|
      </options>
 | 
						|
    </ItemGroup>
 | 
						|
 | 
						|
    <ItemGroup>
 | 
						|
      <!--
 | 
						|
      /////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
      // Escape double-quotes in macro definitions
 | 
						|
      // -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="('%(Name)' == 'Define' OR '%(Name)' == 'Undefine')
 | 
						|
          AND ($([System.String]::Copy('%(Value)').Contains(' '))
 | 
						|
            OR $([System.String]::Copy('%(Value)').Contains('"')))"
 | 
						|
          > "$([System.String]::Copy('%(Value)').Replace('"', '\"'))"</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--
 | 
						|
      /////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
      // 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)' == 'IncludePath' OR '%(Name)' == 'MacFramework' OR '%(Name)' == 'PathPrefix'
 | 
						|
          OR '%(Name)' == 'ForceInclude' OR '%(Name)' == 'PrependInclude' OR '%(Name)' == 'Include'
 | 
						|
          OR '%(Name)' == 'OptionsFile'"
 | 
						|
          >$([System.String]::Copy('%(Value)').Replace('"', ''))</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <options>
 | 
						|
        <Value Condition="('%(Name)' == 'InputFile' OR '%(Name)' == 'OutputFile'
 | 
						|
          OR '%(Name)' == 'IncludePath' OR '%(Name)' == 'MacFramework' OR '%(Name)' == 'PathPrefix'
 | 
						|
          OR '%(Name)' == 'ForceInclude' OR '%(Name)' == 'PrependInclude' OR '%(Name)' == 'Include'
 | 
						|
          OR '%(Name)' == 'OptionsFile')
 | 
						|
          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)' == 'IncludePath' OR '%(Name)' == 'MacFramework' OR '%(Name)' == 'PathPrefix'
 | 
						|
          OR '%(Name)' == 'ForceInclude' OR '%(Name)' == 'PrependInclude' OR '%(Name)' == 'Include'
 | 
						|
          OR '%(Name)' == 'OptionsFile')
 | 
						|
          AND $([System.String]::Copy('%(Value)').Contains(' '))"
 | 
						|
          >"%(Value)"</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Generate tool command line arguments
 | 
						|
    // -->
 | 
						|
      <!--//  [header-file]               Header file to read from -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'InputFile'">%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -o <file>                   Write output to file -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'OutputFile'">-o %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -I <dir>                    Add dir to the include path for header files -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'IncludePath'">-I%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -F <framework>              Add macOS framework to the include path for headers -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'MacFramework'">-F %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -E                          Preprocess only; do not generate meta object code -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'PreprocessOnly' AND '%(Value)' != 'true'"></Value>
 | 
						|
      </options>
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'PreprocessOnly' AND '%(Value)' == 'true'">-E</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -D <macro[=def]>            Define macro, with optional definition -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'Define'">-D%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -U <macro>                  Undefine macro-->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'Undefine'">-U%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -M <key=value>              Add key/value pair to plugin meta data -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'Metadata'">-M%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//   -compiler-flavor <flavor>  Set the compiler flavor: either "msvc" or "unix" -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'CompilerFlavor'">--compiler-flavor %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -i                          Do not generate an #include statement -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoInclude' AND '%(Value)' != 'true'"></Value>
 | 
						|
      </options>
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoInclude' AND '%(Value)' == 'true'">-i</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -p <path>                   Path prefix for included file -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'PathPrefix'">-p%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -f <file>                   Force #include <file> (overwrite default) -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'ForceInclude'">-f %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -b <file>                   Prepend #include <file> (preserve default include) -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'PrependInclude'">-b %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//   -include <file>            Parse <file> as an #include before the main source(s) -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'Include'">--include %(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  -n <which>                  Do not display notes (-nn) or warnings (-nw) -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoNotesWarnings'">-n%(Value)</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//   -no-notes                  Do not display notes -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoNotes' AND '%(Value)' != 'true'"></Value>
 | 
						|
      </options>
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoNotes' AND '%(Value)' == 'true'">--no-notes</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//   -no-warnings               Do not display warnings (implies  -no-notes) -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoWarnings' AND '%(Value)' != 'true'"></Value>
 | 
						|
      </options>
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'NoWarnings' AND '%(Value)' == 'true'">--no-warnings</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//   -ignore-option-clashes     Ignore all options that conflict with compilers -->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'IgnoreConflicts' AND '%(Value)' != 'true'"></Value>
 | 
						|
      </options>
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'IgnoreConflicts' AND '%(Value)' == 'true'"
 | 
						|
          >--ignore-option-clashes</Value>
 | 
						|
      </options>
 | 
						|
 | 
						|
      <!--//  [@option-file]              Read additional options from option-file-->
 | 
						|
      <options>
 | 
						|
        <Value Condition="'%(Name)' == 'OptionsFile'">@%(Value)</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)' == ''"
 | 
						|
        >%(QtMoc.InputChanged)</input_changed>
 | 
						|
 | 
						|
      <!--// Run work in parallel processes -->
 | 
						|
      <run_parallel Condition="'@(QtMoc)' != ''
 | 
						|
        AND '%(QtMoc.ParallelProcess)' == 'true'
 | 
						|
        AND '$(SelectedFiles)' == ''"
 | 
						|
        >true</run_parallel>
 | 
						|
 | 
						|
      <!--// Run work in single process -->
 | 
						|
      <run_single Condition="'@(QtMoc)' != ''
 | 
						|
        AND ('%(QtMoc.ParallelProcess)' != 'true'
 | 
						|
         OR '$(SelectedFiles)' != '')"
 | 
						|
        >true</run_single>
 | 
						|
 | 
						|
      <!--// Get relative path to output -->
 | 
						|
      <output_relative
 | 
						|
>$([MSBuild]::MakeRelative($(ProjectDir), %(QtMoc.OutputFile)).TrimStart('\'))</output_relative>
 | 
						|
 | 
						|
      <!--// Get relative path to input -->
 | 
						|
      <input_relative
 | 
						|
>$([MSBuild]::MakeRelative($(ProjectDir), %(QtMoc.InputFile)).TrimStart('\'))</input_relative>
 | 
						|
    </PropertyGroup>
 | 
						|
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Create work item
 | 
						|
    // -->
 | 
						|
    <ItemGroup Condition="'$(run_parallel)' == 'true' OR '$(run_single)' == 'true'">
 | 
						|
      <QtWork Include="@(QtMoc)">
 | 
						|
        <WorkType>moc</WorkType>
 | 
						|
        <ToolPath Condition="'$(QtVsProjectSettings)' == 'true'"
 | 
						|
          >$(QtToolsPath)/moc</ToolPath>
 | 
						|
        <ToolPath Condition="'$(QtVsProjectSettings)' != 'true'"
 | 
						|
          >%(QtMoc.QTDIR)\bin\moc.exe</ToolPath>
 | 
						|
        <Options>$(options)</Options>
 | 
						|
        <Message>%(QtMoc.ExecutionDescription)</Message>
 | 
						|
        <DependenciesChanged>$(dependencies_changed)</DependenciesChanged>
 | 
						|
        <InputChanged>$(input_changed)</InputChanged>
 | 
						|
        <ParallelBuild Condition="'$(run_parallel)' == 'true'">true</ParallelBuild>
 | 
						|
        <ParallelBuild Condition="'$(run_single)'   == 'true'">false</ParallelBuild>
 | 
						|
        <!--
 | 
						|
        ///////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
        // C++ dynamic source -->
 | 
						|
        <ClCompile Condition="'%(QtMoc.DynamicSource)' == 'output'">$(output_relative)</ClCompile>
 | 
						|
        <ClCompile Condition="'%(QtMoc.DynamicSource)' ==  'input'">$(input_relative)</ClCompile>
 | 
						|
      </QtWork>
 | 
						|
    </ItemGroup>
 | 
						|
 | 
						|
    <!--
 | 
						|
    ///////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
    // Clean-up
 | 
						|
    // -->
 | 
						|
    <PropertyGroup>
 | 
						|
      <options/>
 | 
						|
      <dependencies_changed/>
 | 
						|
      <input_changed/>
 | 
						|
      <run_parallel/>
 | 
						|
      <run_single/>
 | 
						|
      <output_relative/>
 | 
						|
      <input_relative/>
 | 
						|
    </PropertyGroup>
 | 
						|
    <ItemGroup>
 | 
						|
      <options Remove="@(options)"/>
 | 
						|
    </ItemGroup>
 | 
						|
  </Target>
 | 
						|
 | 
						|
  <!--
 | 
						|
  /////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
  // Import dependants
 | 
						|
  // -->
 | 
						|
  <Import
 | 
						|
    Condition="'$(QtMsBuildTargets_AfterMoc)' != ''"
 | 
						|
    Project="$(QtMsBuildTargets_AfterMoc)"/>
 | 
						|
 | 
						|
</Project>
 |