diff --git a/GlosSIConfig/GlosSIConfig.vcxproj b/GlosSIConfig/GlosSIConfig.vcxproj
index 3d5bd22..7a87e58 100644
--- a/GlosSIConfig/GlosSIConfig.vcxproj
+++ b/GlosSIConfig/GlosSIConfig.vcxproj
@@ -34,6 +34,7 @@
6.2.0
quick
debug
+ true
6.2.0
diff --git a/GlosSIConfig/QtMsBuild/Qt.props b/GlosSIConfig/QtMsBuild/Qt.props
new file mode 100644
index 0000000..a70e849
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/Qt.props
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(QTDIR)
+ $(DefaultQtVersion)\bin
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/deploy/qt_import.props b/GlosSIConfig/QtMsBuild/deploy/qt_import.props
new file mode 100644
index 0000000..53b0d2d
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/deploy/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qtdeploy.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qtdeploy.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/deploy/qtdeploy.props b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.props
new file mode 100644
index 0000000..35c63a9
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.props
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ false
+
+
+
+ $(TargetPath)
+ $(ProjectDir)
+ $(OutDir)
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ false
+ true
+ false
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/deploy/qtdeploy.targets b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.targets
new file mode 100644
index 0000000..530419b
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.targets
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IntDir)windeployqt.log
+
+
+
+
+ $(BuildLinkTargets);QtDeploy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+
+ %(Value)\
+
+
+
+ "%(Value)"
+
+
+
+
+ %(Value)
+
+
+
+ --dir %(Value)
+
+
+
+ --libdir %(Value)
+
+
+
+ --plugindir %(Value)
+
+
+
+ --debug
+ --release
+
+
+
+ --pdb
+
+
+
+ --force
+
+
+
+ --no-patchqt
+
+
+
+ --no-plugins
+
+
+
+ --no-libraries
+
+
+
+ --qmldir %(Value)
+
+
+
+ --qmlimport %(Value)
+
+
+
+ --no-quick-import
+
+
+
+ --no-translations
+
+
+
+ --no-system-d3d-compiler
+
+
+
+ --no-virtualkeyboard
+
+
+
+ --compiler-runtime
+ --no-compiler-runtime
+
+
+
+ --webkit2
+ --no-webkit2
+
+
+
+ --angle
+ --no-angle
+
+
+
+ --no-opengl-sw
+
+
+
+ -%(Value)
+
+
+
+ --no-%(Value)
+
+
+
+
+
+
+ $(Cmd) --list target
+ $(Cmd) %(Options.Arg)
+ $(Cmd) %(Options.PosArg)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(ProjectDir)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/deploy/qtdeploy.xml b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.xml
new file mode 100644
index 0000000..036d7c5
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/deploy/qtdeploy.xml
@@ -0,0 +1,366 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+ ).]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qt_import.props b/GlosSIConfig/QtMsBuild/moc/qt_import.props
new file mode 100644
index 0000000..9e6dfd5
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qtmoc.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qtmoc.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qtmoc.props b/GlosSIConfig/QtMsBuild/moc/qtmoc.props
new file mode 100644
index 0000000..f46aad3
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qtmoc.props
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+ moc %(Identity)
+
+ $(QTDIR)
+ $(QtInstallDir)
+
+ %(FullPath)
+
+ $(ProjectDir)GeneratedFiles\$(Configuration)\moc_%(Filename).cpp
+
+ $(IntDir)moc\
+ moc_%(Filename).cpp
+
+ output
+ true
+ [AllOptions] [AdditionalOptions]
+ %(OutputFile)
+ false
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qtmoc.targets b/GlosSIConfig/QtMsBuild/moc/qtmoc.targets
new file mode 100644
index 0000000..7772702
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qtmoc.targets
@@ -0,0 +1,510 @@
+
+
+
+
+
+
+
+
+
+
+ QtMoc;$(QtBuildTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt;_ClCompile
+
+
+
+ QtRule30_Moc
+
+
+
+
+
+
+
+ $([System.IO.Path]::Combine('%(QtMoc.QtMocDir)','%(QtMoc.QtMocFileName)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [@(selected_files->'%(Identity)','][')]
+ [@(QtMoc->'%(Identity)')]
+ @(QtMoc->'%(OutputFile)')
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+
+
+
+
+
+
+
+
+
+
+ QtPrepare;
+ QtMocPrepare;
+ QtMocSetModified;
+ QtMocOverrideCpp;
+ $(QtMocDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "$([System.String]::Copy('%(Value)').Replace('"', '\"'))"
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+
+ %(Value)\
+
+
+
+ "%(Value)"
+
+
+
+
+
+ %(Value)
+
+
+
+
+ -o %(Value)
+
+
+
+
+ -I%(Value)
+
+
+
+
+ -F %(Value)
+
+
+
+
+
+
+
+ -E
+
+
+
+
+ -D%(Value)
+
+
+
+
+ -U%(Value)
+
+
+
+
+ -M%(Value)
+
+
+
+
+ --compiler-flavor %(Value)
+
+
+
+
+
+
+
+ -i
+
+
+
+
+ -p%(Value)
+
+
+
+
+ -f %(Value)
+
+
+
+
+ -b %(Value)
+
+
+
+
+ --include %(Value)
+
+
+
+
+ -n%(Value)
+
+
+
+
+
+
+
+ --no-notes
+
+
+
+
+
+
+
+ --no-warnings
+
+
+
+
+
+
+
+ --ignore-option-clashes
+
+
+
+
+ @%(Value)
+
+
+
+ @(options->'%(Value)', ' ')
+
+
+
+
+
+ true
+ %(QtMoc.InputChanged)
+
+
+ true
+
+
+ true
+
+
+ $([MSBuild]::MakeRelative($(ProjectDir), %(QtMoc.OutputFile)).TrimStart('\'))
+
+
+ $([MSBuild]::MakeRelative($(ProjectDir), %(QtMoc.InputFile)).TrimStart('\'))
+
+
+
+
+
+ moc
+ $(QtToolsPath)/moc
+ %(QtMoc.QTDIR)\bin\moc.exe
+ $(options)
+ %(QtMoc.ExecutionDescription)
+ $(dependencies_changed)
+ $(input_changed)
+ true
+ false
+
+ $(output_relative)
+ $(input_relative)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qtmoc.xml b/GlosSIConfig/QtMsBuild/moc/qtmoc.xml
new file mode 100644
index 0000000..609e8e1
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qtmoc.xml
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ moc.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qtmoc_cl.targets b/GlosSIConfig/QtMsBuild/moc/qtmoc_cl.targets
new file mode 100644
index 0000000..f30d6cc
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qtmoc_cl.targets
@@ -0,0 +1,203 @@
+
+
+
+
+
+
+
+
+ %(QtMoc.OverrideClCompile)
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)');%(QtMoc.AdditionalIncludeDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)');%(QtMoc.AdditionalUsingDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)');%(QtMoc.PreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)');%(QtMoc.UndefinePreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)');%(QtMoc.DisableSpecificWarnings)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)');%(QtMoc.ForcedIncludeFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)');%(QtMoc.ForcedUsingFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)');%(QtMoc.TreatSpecificWarningsAsErrors)
+
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalOptions)') %(QtMoc.AdditionalCppOptions)
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalOptions)')
+
+
+ %(QtMoc.AdditionalIncludeDirectories)
+ %(QtMoc.PreprocessorDefinitions)
+ %(QtMoc.UndefinePreprocessorDefinitions)
+
+
+
+
+
+ %(QtMoc.AdditionalIncludeDirectories)
+ @(ClCompile->
+ WithMetadataValue('Identity', 'DefaultClCompile')->
+ '%(AdditionalIncludeDirectories)')
+ %(QtMoc.PreprocessorDefinitions)
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(PreprocessorDefinitions)')
+ %(QtMoc.UndefinePreprocessorDefinitions)
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(UndefinePreprocessorDefinitions)')
+
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DebugInformationFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SupportJustMyCode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsManaged)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsWinRT)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SuppressStartupBanner)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningLevel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWarningAsError)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningVersion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DiagnosticsFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SDLCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MultiProcessorCompilation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(Optimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(InlineFunctionExpansion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IntrinsicFunctions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FavorSizeOrSpeed)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitFramePointers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableFiberSafeOptimizations)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WholeProgramOptimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefineAllPreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IgnoreStandardIncludePath)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessToFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessSuppressLineNumbers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessKeepComments)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StringPooling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MinimalRebuild)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExceptionHandling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SmallerTypeCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BasicRuntimeChecks)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeLibrary)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StructMemberAlignment)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BufferSecurityCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ControlFlowGuard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FunctionLevelLinking)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableParallelCodeGeneration)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableEnhancedInstructionSet)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointModel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointExceptions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CreateHotpatchableImage)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableLanguageExtensions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ConformanceMode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWChar_tAsBuiltInType)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForceConformanceInForLoopScope)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RemoveUnreferencedCodeData)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnforceTypeConversionRules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeTypeInfo)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OpenMPSupport)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(LanguageStandard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableModules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeader)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderOutputFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExpandAttributedSource)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerOutput)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseUnicodeForAssemblerListing)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerListingLocation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ObjectFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ProgramDataBaseFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(GenerateXMLDocumentationFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(XMLDocumentationFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformationFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CallingConvention)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAs)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ShowIncludes)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseFullPaths)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitDefaultLibName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ErrorReporting)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)')
+
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalIncludeDirectories)')
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(PreprocessorDefinitions)')
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(UndefinePreprocessorDefinitions)')
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalOptions)')
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/moc/qtmoc_v3.xml b/GlosSIConfig/QtMsBuild/moc/qtmoc_v3.xml
new file mode 100644
index 0000000..54347c0
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/moc/qtmoc_v3.xml
@@ -0,0 +1,646 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qml/qt_import.props b/GlosSIConfig/QtMsBuild/qml/qt_import.props
new file mode 100644
index 0000000..d851aa4
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qml/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps_AfterRcc);
+ $(MSBuildThisFileDirectory)qtqml.props
+
+
+ $(QtMsBuildTargets_AfterRcc);
+ $(MSBuildThisFileDirectory)qtqml.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qml/qtqml.props b/GlosSIConfig/QtMsBuild/qml/qtqml.props
new file mode 100644
index 0000000..8d8e2a8
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qml/qtqml.props
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+ false
+
+ ahead of time]]>
+ _%.cpp]]>
+
+ Qt Quick Compiler: filtering %(Identity)
+ $(ProjectDir)GeneratedFiles\%(Filename)_qmlcache.qrc
+ $(ProjectDir)GeneratedFiles\qrc_%(Filename)_qmlcache.cpp
+ %(Filename)_qmlcache
+
+ Qt Quick Compiler: generating cache loader
+ $(ProjectDir)GeneratedFiles\qmlcache_loader.cpp
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qml/qtqml.targets b/GlosSIConfig/QtMsBuild/qml/qtqml.targets
new file mode 100644
index 0000000..9045735
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qml/qtqml.targets
@@ -0,0 +1,624 @@
+
+
+
+
+
+
+
+
+
+
+ $(QtBuildTargets);QtQmlCache
+ $(QtRccDependsOn);QtQmlCache
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [@(selected_files->'%(Identity)','][')]
+ [@(QtRcc->'%(Identity)')]
+ @(QtRcc->'%(OutputFile)')
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+ @(QtRcc->'%(QmlCacheOutputFile)')
+ @(QtRcc->'%(QmlCacheGenMessage)')
+ %(OutputFile)
+ @(QtRcc->'%(FullPath)')
+ $(is_selected)
+ @(QtRcc)
+
+
+
+
+
+
+
+
+
+
+
+ @(QtQml)
+ @(res_other->'%(Identity)')
+ false
+ %(QtRcc.QmlCacheFilteredFile)
+ %(QtRcc.QmlCacheFilteredFile)
+ $(is_selected)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(dependencies_changed)
+
+
+
+
+
+
+
+
+
+
+
+
+ $(options) @(input_file->'--filter-resource-file "%(Identity)"')
+ $(options) @(filtered_file->'-o "%(Identity)"')
+
+ $([System.IO.Path]::Combine($(MSBuildProjectDirectory),%(QmlCacheFilteredFile)))
+
+ $([MSBuild]::MakeRelative($(MSBuildProjectDirectory),$(full_path)).TrimStart('\'))
+
+ true
+ true
+
+
+
+
+
+ qmlcachegen_filter
+ $(QtToolsPath)\qmlcachegen.exe
+ %(QtRccFilter.QTDIR)\bin\qmlcachegen.exe
+ $(options)
+ $(full_path)
+ %(QtRccFilter.QmlCacheFilterMessage)
+ true
+ false
+
+
+
+
+ @(QtRccFilter->'%(QmlCacheFilteredFile)')
+ @(QtRccFilter->'%(QmlCacheFilteredOutputFile)')
+ @(QtRccFilter->'%(QmlCacheFilteredInitFuncName)')
+ @(QtRccFilter)
+
+
+
+
+
+ $(relative_path)
+
+
+ $(SelectedFiles);$(selected_rcc)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(QtRccFilter.Identity)
+ %(QtRccFilter.InputFile)
+ %(QtRccFilter.InputFile)=$(full_path)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(options) @(loader_input->'--resource-file-mapping="%(Mapping)"',' ')
+ $(options) @(loader_input->'"%(InputFile)"',' ')
+ $(options) @(loader->'-o "%(QmlCacheLoaderFile)"')
+
+ true
+ true
+
+ @(loader_input->'%(DependenciesChanged)')
+ @(loader_input->'%(InputChanged)')
+ true
+ @(loader_input->'%(IsSelected)')
+
+
+ @(loader->'%(QmlCacheLoaderFile)')
+ $([MSBuild]::MakeRelative($(ProjectDir), $(cache_loader_path)).TrimStart('\'))
+
+
+
+
+ qmlcachengen_loader
+ $(QtToolsPath)\qmlcachegen.exe
+ @(loader->'%(QTDIR)')\bin\qmlcachegen.exe
+ $(options)
+ @(loader->'%(QmlCacheLoaderFile)')
+ @(loader->'%(QmlCacheLoaderMessage)')
+ true
+ false
+ true
+ $(dependencies_changed.Contains('true'))
+ $(input_changed.Contains('true'))
+ $(output_relative)
+ @(loader_input->'%(Inputs)')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(options) --resource="%(ResourceFile)"
+ $(options) "%(FullPath)"
+ $(options) -o "%(OutputFile)"
+
+ true
+ true
+
+
+ $([MSBuild]::MakeRelative($(ProjectDir), %(QtQml.OutputFile)).TrimStart('\'))
+
+
+
+
+ qmlcachegen
+ $(QtToolsPath)\qmlcachegen.exe
+ %(QtQml.QTDIR)\bin\qmlcachegen.exe
+ $(options)
+ %(QtQml.Message)
+ $(dependencies_changed)
+ true
+ false
+ $(output_relative)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt.targets b/GlosSIConfig/QtMsBuild/qt.targets
new file mode 100644
index 0000000..86f2fe8
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt.targets
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_defaults.props b/GlosSIConfig/QtMsBuild/qt_defaults.props
new file mode 100644
index 0000000..5ddbbec
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_defaults.props
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+ true
+
+
+ bin
+ bin
+
+
+ DEFINES=/-D([^\s=]+(=(\x22(\\\\|\\\x22|[^\x22])*\x22|\S+))?)/$1/
+ INCLUDEPATH=INCPATH/-(?:iquote|isystem|idirafter|I)\s*(\x22[^\x22]+\x22|[^\s]+)/$1/
+ LIBS=/(?:(?:\/LIBPATH:|-L)(?:\x22[^\x22]+\x22|[^\s]+))|(\x22[^\x22]+\x22|[^\s]+)/$1/
+ LIBPATH=LIBS/(?:\/LIBPATH:|-L)(\x22[^\x22]+\x22|[^\s]+)/$1/
+ $(QMake_DEFINES_);$(QMake_INCLUDEPATH_);$(QMake_LIBS_);$(QMake_LIBPATH_)
+
+
+ HKEY_CURRENT_USER\Software\Digia\Versions
+ $([MSBuild]::GetRegistryValue('$(QtVersionsRegKey)','DefaultQtVersion'))
+
+
+ debug
+ release
+
+
+
+
+
+
+
+ $(Qt_DEFINES_);%(PreprocessorDefinitions)
+ QT_QML_DEBUG;%(PreprocessorDefinitions)
+ $(Qt_INCLUDEPATH_);%(AdditionalIncludeDirectories)
+
+
+
+
+ $(Qt_LIBS_);%(AdditionalDependencies)
+ $(Qt_LIBPATH_);%(AdditionalLibraryDirectories)
+ $(Qt_LIBPATH_);%(SharedLibrarySearchPath)
+
+
+
+
+
+ $([System.IO.Directory]::GetDirectories('$(MSBuildThisFileDirectory)'))
+
+ $([System.String]::Join(
+ '\qt_import.props;',
+ $(SubFolder.Split(';'))))\qt_import.props
+
+ $(SubFolderImports.Split(';'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_globals.targets b/GlosSIConfig/QtMsBuild/qt_globals.targets
new file mode 100644
index 0000000..4e2b0a5
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_globals.targets
@@ -0,0 +1,631 @@
+
+
+
+
+
+
+
+
+
+ QtVersion;
+ $(BuildDependsOn);
+ Qt
+
+
+ $(CleanDependsOn);
+ QtClean
+
+
+ $(DesignTimeBuildInitTargets);
+ Qt
+
+
+ $(ComputeCompileInputsTargets);
+ Qt
+
+
+ $(BeforeClCompileTargets);
+ Qt
+
+
+ $(ComputeLinkInputsTargets);
+ Qt
+
+
+
+
+
+
+ $(QtVSToolsVersion)
+ false
+ $([System.IO.Path]::Combine($(ProjectDir),$(IntDir)qt_work.log))
+ $([System.Environment]::ProcessorCount)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(QtLogData.Identity)').Split('|')[1])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(QtWork->'%(WorkType)(%(Identity))')
+ @(QtWork->'%(DependenciesChanged)')
+ @(QtWork->'%(InputChanged)')
+ true
+
+
+
+
+
+
+
+ @(log_entry->'%(Hash)')
+
+
+
+
+ true
+ true
+
+
+
+
+
+ 0
+ true
+
+
+
+
+
+
+
+
+ $(work_hash)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ InputPath
+ - %(QtWork.Identity)
+ %(QtWork.Identity)
+
+
+ InputPath
+ - @(ResourceFiles->'%(Value)')
+ @(ResourceFiles->'%(Value)')
+
+
+ OutputPath
+ - %(QtWork.OutputFile)
+ %(QtWork.OutputFile)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+ %(QtWorkResult.WorkType)
+
+
+ %(Identity)
+ $([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','%(Identity)'))
+
+
+
+
+
+
+
+
+ %(QtWorkResult.WorkType)
+
+
+ %(Identity)
+ $([System.IO.Path]::Combine('$(MSBuildProjectDirectory)','%(Identity)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IntDir)%(Filename).o
+
+
+
+
+
+
+
+
+
+
+
+ $(ProjectDir);%(AdditionalIncludeDirectories)
+ %(PrecompiledHeaderFile)
+ %(QtWork_ClCompile_Expanded.AdditionalCppOptions)
+
+
+
+
+
+
+
+
+
+
+
+
+ @(QtWorkResult->'%(ClCompile)')
+
+
+ $(SelectedFiles);$(SelectedClCompile)
+
+
+
+
+
+
+
+ @(QtIncludePath->Distinct())
+
+
+
+ $(QtIncludePath);%(ClCompile.AdditionalIncludeDirectories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(QtOuterBuildPrepare);
+ QtOuterBuild;
+ $(QtOuterBuildFinalize)
+
+ $(MSBuildProjectFullPath)
+ $([System.IO.Path]::GetRandomFileName())
+
+
+
+
+ $(QtOuterBuildPrepare);$(QtOuterBuildFinalize)
+
+
+
+
+
+
+
+
+
+
+
+
+ QtEnterCriticalSection_InitializeBuildStatus;
+ InitializeBuildStatus;
+ QtLeaveCriticalSection_InitializeBuildStatus
+
+
+
+ $([MSBuild]::Unescape(
+ $([System.Text.RegularExpressions.Regex]::Replace(' $(BuildDependsOn) ',
+ '(?<!\w)InitializeBuildStatus(?!\w)', $(QtSync_InitializeBuildStatus)))))
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QtEnterCriticalSection_FinalizeBuildStatus;
+ FinalizeBuildStatus;
+ QtLeaveCriticalSection_FinalizeBuildStatus
+
+
+
+ $([MSBuild]::Unescape(
+ $([System.Text.RegularExpressions.Regex]::Replace(' $(BuildDependsOn) ',
+ '(?<!\w)FinalizeBuildStatus(?!\w)', $(QtSync_FinalizeBuildStatus)))))
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_private.props b/GlosSIConfig/QtMsBuild/qt_private.props
new file mode 100644
index 0000000..a0bb3b7
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_private.props
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ 0
+ 300
+ 300
+
+
+
+ 200
+ $([System.Convert]::ToInt32($(Keyword.Substring(6))))
+
+ true
+ false
+
+ true
+ false
+
+
+
+
+ $(QtInstall)
+ $(QtVersionsRegKey)\$(QtInstall)
+ $([MSBuild]::GetRegistryValue('$(QtInstallRegKey)','InstallDir'))
+ $(QtInstallRegDir)
+ $(QtInstallRegDir.Split(':')[1])
+ $(QtInstall)
+
+
+ $([System.IO.Path]::Combine('$(QtInstallDir)','$(QtPathBinaries)').Replace('\', '/'))
+ $([System.IO.Path]::Combine('$(QtInstallDir)','$(QtPathLibraryExecutables)').Replace('\', '/'))
+ $(QtInstallDir)
+
+
+
+
+
+
+ $([System.IO.Path]::Combine('$(ProjectDir)', '$(IntDir)', 'qmake'))
+ qtvars_$(Platform.Replace(' ','_'))_$(Configuration.Replace(' ','_')).props
+ $(QtVarsOutputDir)\$(QtVarsFileName)
+
+
+ temp
+ $([System.IO.Path]::Combine('$(QtVarsOutputDir)','$(QtVarsWorkDirName)'))
+ $(QtVarsWorkDir)\$(QtVarsFileName)
+ $(QtVarsWorkDir)\$(ProjectGuid.Replace('{','').Replace('}','')).$(ProjectName).designtime.idx
+ $([System.String]::Copy($([System.IO.File]::ReadAllText('$(QtVarsIndexPathDesignTime)'))).Replace('
',''))
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PATH=%PATH%;$(QtDllPath)
$(LocalDebuggerEnvironment)
+
+
+
+
+
+ -qmljsdebugger=file:$(ProjectGuid),block
+ $(QmlDebug)
+
+
+
+
+ ResolveReferences;PrepareForBuild;InitializeBuildStatus
+ FinalizeBuildStatus
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_settings.targets b/GlosSIConfig/QtMsBuild/qt_settings.targets
new file mode 100644
index 0000000..a008030
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_settings.targets
@@ -0,0 +1,59 @@
+
+
+
+
+
+ HKEY_CURRENT_USER\Software\Digia\Versions
+ $([MSBuild]::GetRegistryValue('$(QtVersionsRegKey)','VersionNames'))
+
+
+
+ Project;PropertySheet
+
+
+
+ Project;PropertySheet
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_settings.xml b/GlosSIConfig/QtMsBuild/qt_settings.xml
new file mode 100644
index 0000000..16cf519
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_settings.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_settings_vs2015.xml b/GlosSIConfig/QtMsBuild/qt_settings_vs2015.xml
new file mode 100644
index 0000000..1adddfc
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_settings_vs2015.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_tasks.targets b/GlosSIConfig/QtMsBuild/qt_tasks.targets
new file mode 100644
index 0000000..fbfaae9
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_tasks.targets
@@ -0,0 +1,1352 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ = 10000) {
+ Log.LogError("Qt::BuildLock[{0}]: Timeout; wait aborted", Name);
+ return false;
+ }
+ } while (!buildLock.WaitOne(1000));
+ }
+ } else {
+ // Unlock
+ buildLock.Set();
+ }
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "AccessedTime", "CreatedTime", "DefiningProjectDirectory",
+ "DefiningProjectExtension", "DefiningProjectFullPath", "DefiningProjectName",
+ "Directory", "Extension", "Filename", "FullPath", "Identity", "ModifiedTime",
+ "RecursiveDir", "RelativeDir", "RootDir",
+ };
+ if (Metadata == null)
+ Metadata = "";
+ var requestedNames = new HashSet(Metadata.Split(new[] { ';' },
+ StringSplitOptions.RemoveEmptyEntries));
+ var itemXml = new StringBuilder();
+ if (Items.Any()) {
+ foreach (var item in Items) {
+ if (itemXml.Length > 0)
+ itemXml.Append("\r\n");
+ itemXml.AppendFormat("<{0} Include=\"{1}\"", ItemType, item.ItemSpec);
+ var names = item.MetadataNames.Cast()
+ .Where(x => (DumpReserved || !reserved.Contains(x))
+ && (!requestedNames.Any() || requestedNames.Contains(x)))
+ .OrderBy(x => x);
+ if (names.Any()) {
+ itemXml.Append(">\r\n");
+ foreach (string name in names) {
+ if (!DumpReserved && reserved.Contains(name))
+ continue;
+ if (!item.MetadataNames.Cast().Contains(name))
+ continue;
+ var value = item.GetMetadata(name);
+ if (!string.IsNullOrEmpty(value))
+ itemXml.AppendFormat(" <{0}>{1}{0}>\r\n", name, value);
+ else
+ itemXml.AppendFormat(" <{0}/>\r\n", name);
+ }
+ itemXml.AppendFormat("{0}>", ItemType);
+ } else {
+ itemXml.Append("/>");
+ }
+ }
+ } else {
+ itemXml.AppendFormat("<{0}/>", ItemType);
+ }
+ Log.LogMessage(MessageImportance.High, itemXml.ToString());
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (StringComparer.InvariantCultureIgnoreCase)
+ {
+ "AccessedTime", "CreatedTime", "DefiningProjectDirectory",
+ "DefiningProjectExtension", "DefiningProjectFullPath", "DefiningProjectName",
+ "Directory", "Extension", "Filename", "FullPath", "Identity", "ModifiedTime",
+ "RecursiveDir", "RelativeDir", "RootDir",
+ };
+ var newItems = new List();
+ foreach (var item in Items) {
+ var newItem = new TaskItem(item);
+ if (BaseItem != null)
+ BaseItem.CopyMetadataTo(newItem);
+ var itemExt = newItem.GetMetadata("Extension");
+ if (!string.IsNullOrEmpty(itemExt))
+ newItem.SetMetadata("Suffix", itemExt.Substring(1));
+ if (Template != null) {
+ var metadataNames = Template.MetadataNames
+ .Cast().Where(x => !reserved.Contains(x));
+ foreach (var metadataName in metadataNames) {
+ var metadataValue = Template.GetMetadata(metadataName);
+ newItem.SetMetadata(metadataName,
+ Regex.Replace(metadataValue, @"(%<)(\w+)(>)",
+ match => newItem.GetMetadata(match.Groups[2].Value)));
+ }
+ }
+ newItems.Add(newItem);
+ }
+ Result = newItems.ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "AccessedTime", "CreatedTime", "DefiningProjectDirectory",
+ "DefiningProjectExtension", "DefiningProjectFullPath", "DefiningProjectName",
+ "Directory", "Extension", "Filename", "FullPath", "Identity", "ModifiedTime",
+ "RecursiveDir", "RelativeDir", "RootDir",
+ };
+ if (Metadata == null)
+ Metadata = new string[0];
+ var requestedNames = new HashSet(Metadata.Where(x => !string.IsNullOrEmpty(x)));
+ var newItems = new List();
+ foreach (var item in Items) {
+ var itemName = item.ItemSpec;
+ var names = item.MetadataNames.Cast().Where(x => !reserved.Contains(x)
+ && (!requestedNames.Any() || requestedNames.Contains(x)));
+ foreach (string name in names) {
+ var values = item.GetMetadata(name).Split(';');
+ foreach (string value in values.Where(v => !string.IsNullOrEmpty(v))) {
+ newItems.Add(new TaskItem(string.Format("{0}={1}", name, value),
+ new Dictionary
+ {
+ { "Item", itemName },
+ { "Name", name },
+ { "Value", value },
+ }));
+ }
+ }
+ }
+ Result = newItems.ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ x)
+ .Select(x => string.Format("[{0}={1}]", x, Item.GetMetadata(x))))
+ .ToUpper());
+ using (var dataZipped = new MemoryStream()) {
+ using (var zip = new DeflateStream(dataZipped, CompressionLevel.Fastest))
+ zip.Write(data, 0, data.Length);
+ Hash = Convert.ToBase64String(dataZipped.ToArray());
+ }
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ()
+ .Where(x => x.Groups.Count > 2 && x.Groups[1].Success && x.Groups[2].Success
+ && !string.IsNullOrEmpty(x.Groups[1].Value))
+ .GroupBy(x => x.Groups[1].Value)
+ .ToDictionary(g => g.Key, g => g.Last().Groups[2].Value);
+ OutVars = VarDefs
+ .Where(x => makefileVars.ContainsKey(x.GetMetadata("Name")))
+ .Select(x => new TaskItem(x.ItemSpec, new Dictionary
+ { {
+ "Value",
+ string.Join(";", Regex
+ .Matches(makefileVars[x.GetMetadata("Name")], x.GetMetadata("Pattern"))
+ .Cast()
+ .Select(y => Regex
+ .Replace(y.Value, x.GetMetadata("Pattern"), x.GetMetadata("Value")))
+ .Where(y => !string.IsNullOrEmpty(y)
+ && !ExcludeValues.Contains(y,
+ StringComparer.InvariantCultureIgnoreCase))
+ .ToHashSet())
+ } }))
+ .Where(x => !string.IsNullOrEmpty(x.GetMetadata("Value")))
+ .ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ string.Format("{0}/{1}", RemoteProjectDir, WorkingDirectory)
+ };
+
+ var localFilesToCopyRemotelyMapping = new string[0];
+ if (Inputs != null) {
+ localFilesToCopyRemotelyMapping = Inputs
+ .Select(x => string.Format(@"{0}:={1}/{2}",
+ x.GetMetadata("Item"),
+ RemoteProjectDir,
+ x.GetMetadata("Value")))
+ .ToArray();
+ createDirs.AddRange(Inputs
+ .Select(x => string.Format("\x24(dirname {0})", x.GetMetadata("Value"))));
+ }
+
+ var remoteFilesToCopyLocallyMapping = new string[0];
+ if (Outputs != null) {
+ remoteFilesToCopyLocallyMapping = Outputs
+ .Select(x => string.Format(@"{0}/{1}:={2}",
+ RemoteProjectDir,
+ x.GetMetadata("Value"),
+ x.GetMetadata("Item")))
+ .ToArray();
+ createDirs.AddRange(Outputs
+ .Select(x => string.Format("\x24(dirname {0})", x.GetMetadata("Value"))));
+ }
+
+ Command = "(" + Command + ")";
+ if (RedirectStdOut == "NUL" || RedirectStdOut == "/dev/null")
+ Command += " 1> /dev/null";
+ else if (!string.IsNullOrEmpty(RedirectStdOut))
+ Command += " 1> " + RedirectStdOut;
+ if (RedirectStdErr == "NUL" || RedirectStdErr == "/dev/null")
+ Command += " 2> /dev/null";
+ else if (RedirectStdErr == "STDOUT")
+ Command += " 2>&1";
+ else if (!string.IsNullOrEmpty(RedirectStdErr))
+ Command += " 2> " + RedirectStdErr;
+ Command = string.Format("cd {0}/{1}; {2}", RemoteProjectDir, WorkingDirectory, Command);
+
+ var taskCopyFiles = new Microsoft.Build.Linux.Tasks.Execute()
+ {
+ BuildEngine = BuildEngine,
+ HostObject = HostObject,
+ ProjectDir = @"$(ProjectDir)",
+ IntermediateDir = @"$(IntDir)",
+ RemoteTarget = RemoteTarget,
+ RemoteProjectDir = RemoteProjectDir,
+ Command = string.Join("; ", createDirs.Select(x => string.Format("mkdir -p {0}", x))),
+ LocalFilesToCopyRemotelyMapping = localFilesToCopyRemotelyMapping,
+ };
+ var taskExec = new Microsoft.Build.Linux.Tasks.Execute()
+ {
+ BuildEngine = BuildEngine,
+ HostObject = HostObject,
+ ProjectDir = @"$(ProjectDir)",
+ IntermediateDir = @"$(IntDir)",
+ RemoteTarget = RemoteTarget,
+ RemoteProjectDir = RemoteProjectDir,
+ Command = Command,
+ RemoteFilesToCopyLocallyMapping = remoteFilesToCopyLocallyMapping,
+ };
+
+ Log.LogMessage("\r\n==== HostExec: Microsoft.Build.Linux.Tasks.Execute");
+ Log.LogMessage("ProjectDir: {0}", taskExec.ProjectDir);
+ Log.LogMessage("IntermediateDir: {0}", taskExec.IntermediateDir);
+ Log.LogMessage("RemoteTarget: {0}", taskExec.RemoteTarget);
+ Log.LogMessage("RemoteProjectDir: {0}", taskExec.RemoteProjectDir);
+ if (taskExec.LocalFilesToCopyRemotelyMapping.Any())
+ Log.LogMessage("LocalFilesToCopyRemotelyMapping: {0}",
+ taskExec.LocalFilesToCopyRemotelyMapping);
+ if (taskExec.RemoteFilesToCopyLocallyMapping.Any())
+ Log.LogMessage("RemoteFilesToCopyLocallyMapping: {0}",
+ taskExec.RemoteFilesToCopyLocallyMapping);
+ Log.LogMessage("CreateDirs: {0}", taskCopyFiles.Command);
+ Log.LogMessage("Command: {0}", taskExec.Command);
+
+ if (!taskCopyFiles.ExecuteTool()) {
+ ExitCode = taskCopyFiles.ExitCode;
+ return false;
+ }
+ bool ok = taskExec.ExecuteTool();
+ Log.LogMessage("== {0} ExitCode: {1}\r\n", ok ? "OK" : "FAIL", taskExec.ExitCode);
+
+ ExitCode = taskExec.ExitCode;
+ if (!ok && !IgnoreExitCode) {
+ Log.LogError("Host command failed.");
+ return false;
+ }
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /dev/null";
+ else if (!string.IsNullOrEmpty(RedirectStdOut))
+ Command += " 1> " + RedirectStdOut;
+ if (RedirectStdErr == "NUL" || RedirectStdErr == "/dev/null")
+ Command += " 2> /dev/null";
+ else if (RedirectStdErr == "STDOUT")
+ Command += " 2>&1";
+ else if (!string.IsNullOrEmpty(RedirectStdErr))
+ Command += " 2> " + RedirectStdErr;
+
+ var createDirs = new List();
+ if (Inputs != null) {
+ createDirs.AddRange(Inputs
+ .Select(x => string.Format("\x24(dirname {0})", x.GetMetadata("Value"))));
+ }
+ if (Outputs != null) {
+ createDirs.AddRange(Outputs
+ .Select(x => string.Format("\x24(dirname {0})", x.GetMetadata("Value"))));
+ }
+ if (!string.IsNullOrEmpty(WorkingDirectory)) {
+ createDirs.Add(WorkingDirectory);
+ Command = string.Format("cd {0}; {1}", WorkingDirectory, Command);
+ }
+ if (createDirs.Any()) {
+ Command = string.Format("{0}; {1}",
+ string.Join("; ", createDirs.Select(x => string.Format("mkdir -p {0}", x))),
+ Command);
+ }
+
+ var taskExec = new Microsoft.Build.Linux.WSL.Tasks.ExecuteCommand()
+ {
+ BuildEngine = BuildEngine,
+ HostObject = HostObject,
+ ProjectDir = @"$(ProjectDir)",
+ IntermediateDir = @"$(IntDir)",
+ WSLPath = @"$(WSLPath)",
+ Command = Command,
+ };
+ Log.LogMessage("\r\n==== HostExec: Microsoft.Build.Linux.WSL.Tasks.ExecuteCommand");
+ Log.LogMessage("ProjectDir: {0}", taskExec.ProjectDir);
+ Log.LogMessage("IntermediateDir: {0}", taskExec.IntermediateDir);
+ Log.LogMessage("WSLPath: {0}", taskExec.WSLPath);
+ Log.LogMessage("Command: {0}", taskExec.Command);
+
+ bool ok = taskExec.Execute();
+ Log.LogMessage("== {0} ExitCode: {1}\r\n", ok ? "OK" : "FAIL", taskExec.ExitCode);
+
+ ExitCode = taskExec.ExitCode;
+ if (!ok && !IgnoreExitCode) {
+ Log.LogError("Host command failed.");
+ return false;
+ }
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NUL";
+ else if (!string.IsNullOrEmpty(RedirectStdOut))
+ Command += " 1> " + RedirectStdOut;
+ if (RedirectStdErr == "NUL" || RedirectStdErr == "/dev/null")
+ Command += " 2> NUL";
+ else if (RedirectStdErr == "STDOUT")
+ Command += " 2>&1";
+ else if (!string.IsNullOrEmpty(RedirectStdErr))
+ Command += " 2> " + RedirectStdErr;
+
+ var taskExec = new Microsoft.Build.Tasks.Exec()
+ {
+ BuildEngine = BuildEngine,
+ HostObject = HostObject,
+ WorkingDirectory = WorkingDirectory,
+ Command = Command,
+ IgnoreExitCode = IgnoreExitCode,
+ };
+
+ Log.LogMessage("\r\n==== HostExec: Microsoft.Build.Tasks.Exec");
+ Log.LogMessage("WorkingDirectory: {0}", taskExec.WorkingDirectory);
+ Log.LogMessage("Command: {0}", taskExec.Command);
+
+ bool ok = taskExec.Execute();
+ Log.LogMessage("== {0} ExitCode: {1}\r\n", ok ? "OK" : "FAIL", taskExec.ExitCode);
+
+ ExitCode = taskExec.ExitCode;
+ if (!ok)
+ return false;
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ();
+ foreach (var item in Items) {
+ string itemName = item.GetMetadata("Name");
+ string itemValue = item.GetMetadata("Value");
+ if (Names.Contains(itemName)) {
+ if (Path.IsPathRooted(itemValue) && !itemValue.StartsWith("/")) {
+ var projectdir = new Uri(@"$(ProjectDir)");
+ var itemFileName = Path.GetFileName(itemValue);
+ var itemDirName = Path.GetFullPath(Path.GetDirectoryName(itemValue));
+ if (!itemDirName.EndsWith(@"\"))
+ itemDirName += @"\";
+ var itemDir = new Uri(itemDirName);
+ if (projectdir.IsBaseOf(itemDir)) {
+ itemValue = projectdir.MakeRelativeUri(itemDir).OriginalString
+ + itemFileName;
+ } else {
+ Log.LogWarning("Unable to translate path: {0}", itemValue);
+ }
+ } else {
+ itemValue = itemValue.Replace(@"\", "/");
+ }
+ }
+ newItems.Add(new TaskItem(item.ItemSpec,
+ new Dictionary
+ {
+ { "Item", item.GetMetadata("Item") },
+ { "Name", itemName },
+ { "Value", itemValue },
+ }));
+ }
+ Result = newItems.ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ();
+ foreach (var item in Items) {
+ string itemName = item.GetMetadata("Name");
+ string itemValue = item.GetMetadata("Value");
+ if (Names.Contains(itemName)) {
+ if (Path.IsPathRooted(itemValue) && !itemValue.StartsWith("/"))
+ itemValue = PathUtils.TranslateWindowsPathToWSLPath(itemValue);
+ else
+ itemValue = itemValue.Replace(@"\", "/");
+ }
+ newItems.Add(new TaskItem(item.ItemSpec,
+ new Dictionary
+ {
+ { "Item", item.GetMetadata("Item") },
+ { "Name", itemName },
+ { "Value", itemValue },
+ }));
+ }
+ Result = newItems.ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ files = qrc
+ .Element("RCC")
+ .Elements("qresource")
+ .Elements("file");
+ Uri QrcPath = new Uri(QrcFilePath);
+ Result = files
+ .Select(x => new Uri(QrcPath, x.Value).LocalPath)
+ .ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ()
+ .Where((Match x) => x.Groups.Count > 4 && !string.IsNullOrEmpty(x.Groups[1].Value))
+ .Select((Match x) => x.Groups
+ .Cast()
+ .Select((Group y) => !string.IsNullOrEmpty(y.Value) ? y.Value : null)
+ .ToArray())
+ .Select((string[] x) => new TaskItem(x[1],
+ new Dictionary
+ {
+ { "Name" , x[2] ?? x[1] },
+ { "Pattern" , x[3] ?? ".*" },
+ { "Value" , x[4] ?? "$0" },
+ }))
+ .ToArray();
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KeyString = (x, y) => string.Format("{0}{{{1}}}", x, y);
+ Func Key = (item) =>
+ KeyString(item.GetMetadata("WorkType"), item.ItemSpec);
+ var workItemKeys = new HashSet(QtWork.Select(x => Key(x)), Comparer);
+
+ // Work items, indexed by %(Identity)
+ var workItemsByIdentity = QtWork
+ .GroupBy(x => x.ItemSpec, x => Key(x), Comparer)
+ .ToDictionary(x => x.Key, x => new List(x), Comparer);
+
+ // Work items, indexed by work item key
+ var workItems = QtWork.Select(x => new
+ {
+ Self = x,
+ Key = Key(x),
+ ToolPath = x.GetMetadata("ToolPath"),
+ Message = x.GetMetadata("Message"),
+ DependsOn = new HashSet(comparer: Comparer,
+ collection: x.GetMetadata("DependsOn")
+ .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
+ .Where(y => workItemsByIdentity.ContainsKey(y))
+ .SelectMany(y => workItemsByIdentity[y])
+ .Union(x.GetMetadata("DependsOnWork")
+ .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
+ .Select(y => KeyString(y, x.ItemSpec))
+ .Where(y => workItemKeys.Contains(y)))
+ .GroupBy(y => y, Comparer).Select(y => y.Key)
+ .Where(y => !y.Equals(Key(x), Comparison))),
+ ProcessStartInfo = new ProcessStartInfo
+ {
+ FileName = x.GetMetadata("ToolPath"),
+ Arguments = x.GetMetadata("Options"),
+ CreateNoWindow = true,
+ UseShellExecute = false,
+ RedirectStandardError = true,
+ RedirectStandardOutput = true,
+ },
+ })
+ // In case of items with duplicate keys, use only the first one
+ .GroupBy(x => x.Key, Comparer)
+ .ToDictionary(x => x.Key, x => x.First(), Comparer);
+
+ // Result
+ var result = workItems.Values
+ .ToDictionary(x => x.Key, x => new TaskItem(x.Self));
+
+ // Dependency relation [item -> dependent items]
+ var dependentsOf = workItems.Values
+ .Where(x => x.DependsOn.Any())
+ .SelectMany(x => x.DependsOn.Select(y => new { Dependent = x.Key, Dependency = y }))
+ .GroupBy(x => x.Dependency, x => x.Dependent, Comparer)
+ .ToDictionary(x => x.Key, x => new List(x), Comparer);
+
+ // Work items that are ready to start; initially queue all independent items
+ var workQueue = new Queue(workItems.Values
+ .Where(x => !x.DependsOn.Any())
+ .Select(x => x.Key));
+
+ if (QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork queueing\r\n## {0}",
+ string.Join("\r\n## ", workQueue)));
+ }
+
+ // Postponed items; save dependent items to queue later when ready
+ var postponedItems = new HashSet(workItems.Values
+ .Where(x => x.DependsOn.Any())
+ .Select(x => x.Key));
+
+ if (QtDebug && postponedItems.Any()) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork postponed dependents\r\n## {0}",
+ string.Join("\r\n## ", postponedItems
+ .Select(x => string.Format("{0} <- {1}", x,
+ string.Join(", ", workItems[x].DependsOn))))));
+ }
+
+ // Work items that are running; must synchronize with the exit of all processes
+ var running = new Queue>();
+
+ // Work items that have terminated
+ var terminated = new HashSet(Comparer);
+
+ // While there are work items queued, start a process for each item
+ while (ok && workQueue.Any()) {
+
+ var workItem = workItems[workQueue.Dequeue()];
+ Log.LogMessage(MessageImportance.High, workItem.Message);
+
+ try {
+ var proc = Process.Start(workItem.ProcessStartInfo);
+ proc.OutputDataReceived += (object sender, DataReceivedEventArgs e) =>
+ {
+ if (!string.IsNullOrEmpty(e.Data))
+ Log.LogMessage(MessageImportance.High, string.Join(" ", new[]
+ {
+ (QtDebug ? "[" + (((Process)sender).Id.ToString()) + "]" : ""),
+ e.Data
+ }));
+ };
+ proc.ErrorDataReceived += (object sender, DataReceivedEventArgs e) =>
+ {
+ if (!string.IsNullOrEmpty(e.Data))
+ Log.LogMessage(MessageImportance.High, string.Join(" ", new[]
+ {
+ (QtDebug ? "[" + (((Process)sender).Id.ToString()) + "]" : ""),
+ e.Data
+ }));
+ };
+ proc.BeginOutputReadLine();
+ proc.BeginErrorReadLine();
+ running.Enqueue(new KeyValuePair(workItem.Key, proc));
+ } catch (Exception e) {
+ Log.LogError(
+ string.Format("[QtRunWork] Error starting process {0}: {1}",
+ workItem.ToolPath, e.Message));
+ ok = false;
+ }
+
+ string qtDebugRunning = "";
+ if (QtDebug) {
+ qtDebugRunning = string.Format("## QtRunWork waiting {0}",
+ string.Join(", ", running
+ .Select(x => string.Format("{0} [{1}]", x.Key, x.Value.Id))));
+ }
+
+ // Wait for process to terminate when there are processes running, and...
+ while (ok && running.Any()
+ // ...work is queued but already reached the maximum number of processes, or...
+ && ((workQueue.Any() && running.Count >= QtMaxProcs)
+ // ...work queue is empty but there are dependents that haven't yet been queued
+ || (!workQueue.Any() && postponedItems.Any()))) {
+
+ var itemProc = running.Dequeue();
+ workItem = workItems[itemProc.Key];
+ var proc = itemProc.Value;
+
+ if (QtDebug && !string.IsNullOrEmpty(qtDebugRunning)) {
+ Log.LogMessage(MessageImportance.High, qtDebugRunning);
+ qtDebugRunning = "";
+ }
+
+ if (proc.WaitForExit(100)) {
+ if (QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork exit {0} [{1}] = {2} ({3:0.00} msecs)",
+ workItem.Key, proc.Id, proc.ExitCode,
+ (proc.ExitTime - proc.StartTime).TotalMilliseconds));
+ }
+
+ // Process terminated; check exit code and close
+ terminated.Add(workItem.Key);
+ result[workItem.Key].SetMetadata("ExitCode", proc.ExitCode.ToString());
+ ok &= (proc.ExitCode == 0);
+ proc.Close();
+
+ // Add postponed dependent items to work queue
+ if (ok && dependentsOf.ContainsKey(workItem.Key)) {
+ // Dependents of workItem...
+ var readyDependents = dependentsOf[workItem.Key]
+ // ...that have not yet been queued...
+ .Where(x => postponedItems.Contains(x)
+ // ...and whose dependending items have all terminated.
+ && workItems[x].DependsOn.All(y => terminated.Contains(y)));
+
+ if (QtDebug && readyDependents.Any()) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork queueing\r\n## {0}",
+ string.Join("\r\n## ", readyDependents)));
+ }
+
+ foreach (var dependent in readyDependents) {
+ postponedItems.Remove(dependent);
+ workQueue.Enqueue(dependent);
+ }
+ }
+ } else {
+ // Process is still running; feed it back into the running queue
+ running.Enqueue(itemProc);
+ }
+ }
+ }
+
+ // If there are items still haven't been queued, that means a circular dependency exists
+ if (ok && postponedItems.Any()) {
+ ok = false;
+ Log.LogError("[QtRunWork] Error: circular dependency");
+ if (QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork circularity\r\n## {0}",
+ string.Join("\r\n## ", postponedItems
+ .Select(x => string.Format("{0} <- {1}", x,
+ string.Join(", ", workItems[x].DependsOn))))));
+ }
+ }
+
+ if (ok && QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ "## QtRunWork all work queued");
+ if (running.Any()) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork waiting {0}",
+ string.Join(", ", running
+ .Select(x => string.Format("{0} [{1}]", x.Key, x.Value.Id)))));
+ }
+ }
+
+ // Wait for all running processes to terminate
+ while (running.Any()) {
+ var itemProc = running.Dequeue();
+ var workItem = workItems[itemProc.Key];
+ var proc = itemProc.Value;
+ if (proc.WaitForExit(100)) {
+ if (QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork exit {0} [{1}] = {2} ({3:0.00} msecs)",
+ workItem.Key, proc.Id, proc.ExitCode,
+ (proc.ExitTime - proc.StartTime).TotalMilliseconds));
+ }
+ // Process terminated; check exit code and close
+ result[workItem.Key].SetMetadata("ExitCode", proc.ExitCode.ToString());
+ ok &= (proc.ExitCode == 0);
+ proc.Close();
+ } else {
+ // Process is still running; feed it back into the running queue
+ running.Enqueue(itemProc);
+ }
+ }
+
+ if (QtDebug) {
+ Log.LogMessage(MessageImportance.High,
+ string.Format("## QtRunWork result {0}", (ok ? "ok" : "FAILED!")));
+ }
+
+ Result = result.Values.ToArray();
+ if (!ok)
+ return false;
+ ]]>
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/qt_vars.targets b/GlosSIConfig/QtMsBuild/qt_vars.targets
new file mode 100644
index 0000000..713d37c
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/qt_vars.targets
@@ -0,0 +1,560 @@
+
+
+
+
+
+
+ QtVarsPrepare;QtVars;$(QtDependsOn)
+ $(CleanDependsOn);QtVarsClean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Path
+ - $(QtVarsWorkDir)
+ $(QtVarsWorkDir)
+
+
+ Path
+ - $(QtVarsWorkDir)\props.txt
+ $(QtVarsWorkDir)\props.txt
+
+
+ Path
+ - $(QtVarsWorkDir)\qtvars.log
+ $(QtVarsWorkDir)\qtvars.log
+
+
+ Path
+ - $(QtVarsWorkDir)\qtvars.pro
+ $(QtVarsWorkDir)\qtvars.pro
+
+
+ Path
+ - $(QtVarsWorkDir)\Makefile
+ $(QtVarsWorkDir)\Makefile
+
+
+
+
+
+
+
+ %(Item)
+ %(Value)
+
+
+ %(Item)
+ %(Value)
+
+
+ %(Item)
+ %(Value)
+
+
+ %(Item)
+ %(Value)
+
+
+ %(Item)
+ %(Value)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Identity)').IndexOf(':'))
+
+
+ $([MSBuild]::Add(%(SepIdx), 1))
+
+
+ $([System.String]::Copy('%(Identity)').Substring(0, %(SepIdx)).Replace('/', "SLASH"))
+ $([System.String]::Copy('%(Identity)').Substring(%(ValueIdx)))
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ @(QMakeProperty->WithMetadataValue('Identity', 'QT_VERSION')->'%(Value)')
+ $(QtVersion.Split('.').Length)
+ $(QtVersion.Split('.')[0])
+ $(QtVersion.Split('.')[1])
+ $(QtVersion.Split('.')[2])
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ %(Identity)
+ "$([System.String]::Copy('%(Identity)').Replace('"','\"'))"
+
+
+
+ @(QMakeArgsList->'%(Escaped)', ' ')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(QtIncludes->'"%(Identity)"', ' ')
+
+
+
+
+
+
+
+
+
+ @(QtLibs->'"-L%(Identity)"', ' ')
+
+
+
+
+
+
+
+
+ CONFIG += no_fixpath
+
+
+
+
+
+ QT += @(QtModuleList->'%(Identity)', ' ')
+
+ @(QMakeCodeLine->'%(Identity)','%0D%0A')
+
+
+
+ $(QtVarsProFileInput)
+ INCLUDEPATH += $(QtIncludes)
+
+
+
+ $(QtVarsProFileInput)
+ LIBS += $(QtLibs)
+
+
+
+ $(QtVarsProFileInput)
+ DEFINES -= UNICODE _UNICODE
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ '%(Value)','%0D%0A')]]>
+
+
+
+
+
+
+
+ '%(Value)','%0D%0A')]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %24(Qt_INCLUDEPATH_)%3B@(QtIncludePath->Distinct(),'%3B')
+ @(QtInstall,'%3B')
+ @(QtModules,'%3B')
+ @(QtPathBinaries,'%3B')
+ @(QtPathLibraryExecutables,'%3B')
+ @(QtHeaderSearchPath,'%3B')
+ @(QtLibrarySearchPath,'%3B')
+ @(QtVariables,'%3B')
+ @(QMakeCodeLines,'%3B')
+ @(QtBuildConfig,'%3B')
+ $(QtVersion)
+ $(QtVersionMajor)
+ $(QtVersionMinor)
+ $(QtVersionPatch)
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::Combine('$(TEMP)','$([System.IO.Path]::GetRandomFileName()).designtime.props'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qt_import.props b/GlosSIConfig/QtMsBuild/rcc/qt_import.props
new file mode 100644
index 0000000..4e7c2a0
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qtrcc.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qtrcc.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qtrcc.props b/GlosSIConfig/QtMsBuild/rcc/qtrcc.props
new file mode 100644
index 0000000..22ca8e5
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qtrcc.props
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+ rcc %(Identity)
+
+ $(QTDIR)
+ $(QtInstallDir)
+
+ %(FullPath)
+
+ $(ProjectDir)GeneratedFiles\$(Configuration)\qrc_%(Filename).cpp
+
+ $(IntDir)rcc\
+ qrc_%(Filename).cpp
+
+ %(Filename)
+ default
+ false
+ output
+ true
+ [AllOptions] [AdditionalOptions]
+ %(OutputFile)
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qtrcc.targets b/GlosSIConfig/QtMsBuild/rcc/qtrcc.targets
new file mode 100644
index 0000000..2d1c8d8
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qtrcc.targets
@@ -0,0 +1,595 @@
+
+
+
+
+
+
+
+
+
+
+ QtRcc;$(QtBuildTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt;_ClCompile
+
+
+
+ QtRule40_Rcc
+
+
+
+
+
+
+
+ $([System.IO.Path]::Combine('%(QtRcc.QtRccDir)','%(QtRcc.QtRccFileName)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(res_file)
+ %(QtRcc.AdditionalDependencies);@(res_file->'%(FullPath)')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [@(selected_files->'%(Identity)','][')]
+ [@(QtRcc->'%(Identity)')]
+ @(QtRcc->'%(OutputFile)')
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+
+
+
+
+
+
+
+
+
+
+ QtPrepare;
+ QtRccPrepare;
+ QtRccSetModified;
+ QtRccOverrideCpp;
+ $(QtRccDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+ %(Value)\
+
+
+ "%(Value)"
+
+
+
+
+
+ %(Value)
+
+
+
+
+ -o %(Value)
+
+
+
+
+
+
+
+ --temp %(Value)
+
+
+
+
+ --name %(Value)
+
+
+
+
+ --root %(Value)
+
+
+
+
+ --compress 1
+
+
+ --compress 2
+
+
+ --compress 3
+
+
+ --compress 4
+
+
+ --compress 5
+
+
+ --compress 6
+
+
+ --compress 7
+
+
+ --compress 8
+
+
+ --compress 9
+
+
+
+
+
+
+
+
+
+
+ --no-compress
+
+
+
+
+ --threshold %(Value)
+
+
+
+
+
+
+
+ --binary
+
+
+
+
+ --pass %(Value)
+
+
+
+
+
+
+
+ --namespace
+
+
+
+
+
+
+
+ --verbose
+
+
+
+
+
+
+
+ --list
+
+
+
+
+
+
+
+ --project
+
+
+
+
+ --format-version %(Value)
+
+
+
+ @(options->'%(Value)', ' ')
+
+
+
+
+
+ %(QtRcc.InputChanged)
+ true
+
+
+ true
+
+
+ true
+
+
+ $([MSBuild]::MakeRelative($(ProjectDir), %(QtRcc.OutputFile)).TrimStart('\'))
+
+
+
+
+
+ rcc
+ $(QtToolsPath)/rcc
+ %(QtRcc.QTDIR)\bin\rcc.exe
+ $(options)
+ %(QtRcc.ExecutionDescription)
+ $(dependencies_changed)
+ $(input_changed)
+ true
+ false
+
+ %(QtRcc.ExecutionDescription) [pass 1]
+ 1
+ $(options)
+ $(options) -pass 1 -o "%(OutputFile)"
+ Disabled
+
+ $(output_relative)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ComputeLinkInputsTargets);
+ ;QtRccPass2_Link;
+
+
+ $(ComputeLibInputsTargets);
+ ;QtRccPass2_Lib;
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qtrcc.xml b/GlosSIConfig/QtMsBuild/rcc/qtrcc.xml
new file mode 100644
index 0000000..a0cdb8d
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qtrcc.xml
@@ -0,0 +1,384 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qtrcc_cl.targets b/GlosSIConfig/QtMsBuild/rcc/qtrcc_cl.targets
new file mode 100644
index 0000000..e5d4015
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qtrcc_cl.targets
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+ %(QtRcc.OverrideClCompile)
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)');%(QtRcc.AdditionalIncludeDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)');%(QtRcc.AdditionalUsingDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)');%(QtRcc.PreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)');%(QtRcc.UndefinePreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)');%(QtRcc.DisableSpecificWarnings)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)');%(QtRcc.ForcedIncludeFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)');%(QtRcc.ForcedUsingFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)');%(QtRcc.TreatSpecificWarningsAsErrors)
+
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalOptions)') %(QtRcc.AdditionalCppOptions)
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalOptions)')
+
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DebugInformationFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SupportJustMyCode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsManaged)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsWinRT)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SuppressStartupBanner)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningLevel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWarningAsError)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningVersion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DiagnosticsFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SDLCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MultiProcessorCompilation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(Optimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(InlineFunctionExpansion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IntrinsicFunctions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FavorSizeOrSpeed)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitFramePointers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableFiberSafeOptimizations)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WholeProgramOptimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefineAllPreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IgnoreStandardIncludePath)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessToFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessSuppressLineNumbers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessKeepComments)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StringPooling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MinimalRebuild)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExceptionHandling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SmallerTypeCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BasicRuntimeChecks)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeLibrary)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StructMemberAlignment)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BufferSecurityCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ControlFlowGuard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FunctionLevelLinking)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableParallelCodeGeneration)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableEnhancedInstructionSet)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointModel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointExceptions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CreateHotpatchableImage)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableLanguageExtensions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ConformanceMode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWChar_tAsBuiltInType)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForceConformanceInForLoopScope)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RemoveUnreferencedCodeData)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnforceTypeConversionRules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeTypeInfo)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OpenMPSupport)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(LanguageStandard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableModules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeader)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderOutputFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExpandAttributedSource)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerOutput)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseUnicodeForAssemblerListing)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerListingLocation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ObjectFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ProgramDataBaseFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(GenerateXMLDocumentationFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(XMLDocumentationFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformationFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CallingConvention)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAs)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ShowIncludes)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseFullPaths)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitDefaultLibName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ErrorReporting)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)')
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/rcc/qtrcc_v3.xml b/GlosSIConfig/QtMsBuild/rcc/qtrcc_v3.xml
new file mode 100644
index 0000000..f69d100
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/rcc/qtrcc_v3.xml
@@ -0,0 +1,737 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qt_import.props b/GlosSIConfig/QtMsBuild/repc/qt_import.props
new file mode 100644
index 0000000..053f2a5
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qtrepc.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qtrepc.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qtrepc.props b/GlosSIConfig/QtMsBuild/repc/qtrepc.props
new file mode 100644
index 0000000..0d81485
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qtrepc.props
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+ repc %(Identity)
+ $(QtInstallDir)
+ $(QTDIR)
+ %(FullPath)
+ replica
+ .h]]>
+ rep
+ moc_cpp
+ true
+ [AllOptions] [AdditionalOptions]
+ %(OutputFile)
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qtrepc.targets b/GlosSIConfig/QtMsBuild/repc/qtrepc.targets
new file mode 100644
index 0000000..6342cbd
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qtrepc.targets
@@ -0,0 +1,387 @@
+
+
+
+
+
+
+
+
+
+
+ QtRepc;$(QtBuildTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt
+
+
+
+ QtRule60_Repc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [@(selected_files->'%(Identity)','][')]
+ [@(QtRepc->'%(Identity)')]
+ @(QtRepc->'%(OutputFile)')
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+
+
+
+
+
+
+
+
+
+
+ QtPrepare;
+ QtRepcPrepare;
+ QtRepcSetModified;
+ QtRepcOverrideCpp;
+ $(QtRepcDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+ %(Value)\
+
+
+ "%(Value)"
+
+
+
+
+
+ -i %(Value)
+
+
+
+
+ -o %(Value)
+
+
+
+
+ -I%(Value)
+
+
+
+
+
+
+
+ -c
+
+
+
+
+
+
+
+ -d
+
+
+
+
+ %(Value)
+
+
+
+
+ %(Value)
+
+
+
+ @(options->'%(Value)', ' ')
+
+
+
+
+
+ true
+ %(QtRepc.InputChanged)
+
+
+ true
+
+
+ true
+
+
+
+
+
+ repc
+ $(QtToolsPath)/repc
+ %(QtRepc.QTDIR)\bin\repc.exe
+ $(options)
+ %(QtRepc.ExecutionDescription)
+ $(dependencies_changed)
+ $(input_changed)
+ true
+ false
+
+
+
+
+
+ @(QtRepc)
+ output
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qtrepc.xml b/GlosSIConfig/QtMsBuild/repc/qtrepc.xml
new file mode 100644
index 0000000..7415a74
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qtrepc.xml
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ repc.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qtrepc_cl.targets b/GlosSIConfig/QtMsBuild/repc/qtrepc_cl.targets
new file mode 100644
index 0000000..655c061
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qtrepc_cl.targets
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+ %(QtRepc.OverrideClCompile)
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)');%(QtRepc.AdditionalIncludeDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)');%(QtRepc.AdditionalUsingDirectories)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)');%(QtRepc.PreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)');%(QtRepc.UndefinePreprocessorDefinitions)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)');%(QtRepc.DisableSpecificWarnings)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)');%(QtRepc.ForcedIncludeFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)');%(QtRepc.ForcedUsingFiles)
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)');%(QtRepc.TreatSpecificWarningsAsErrors)
+
+
+
+ %(QtRepc.AdditionalIncludeDirectories)
+
+
+
+
+
+ %(QtRepc.AdditionalIncludeDirectories)
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalIncludeDirectories)')
+
+
+
+
+
+
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalIncludeDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AdditionalUsingDirectories)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DebugInformationFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SupportJustMyCode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsManaged)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAsWinRT)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SuppressStartupBanner)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningLevel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWarningAsError)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WarningVersion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DiagnosticsFormat)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SDLCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MultiProcessorCompilation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(Optimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(InlineFunctionExpansion)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IntrinsicFunctions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FavorSizeOrSpeed)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitFramePointers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableFiberSafeOptimizations)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(WholeProgramOptimization)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefinePreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UndefineAllPreprocessorDefinitions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(IgnoreStandardIncludePath)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessToFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessSuppressLineNumbers)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PreprocessKeepComments)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StringPooling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(MinimalRebuild)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExceptionHandling)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(SmallerTypeCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BasicRuntimeChecks)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeLibrary)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(StructMemberAlignment)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BufferSecurityCheck)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ControlFlowGuard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FunctionLevelLinking)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableParallelCodeGeneration)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableEnhancedInstructionSet)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointModel)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(FloatingPointExceptions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CreateHotpatchableImage)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableLanguageExtensions)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ConformanceMode)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatWChar_tAsBuiltInType)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForceConformanceInForLoopScope)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RemoveUnreferencedCodeData)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnforceTypeConversionRules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(RuntimeTypeInfo)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OpenMPSupport)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(LanguageStandard)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(EnableModules)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeader)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(PrecompiledHeaderOutputFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ExpandAttributedSource)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerOutput)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseUnicodeForAssemblerListing)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(AssemblerListingLocation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ObjectFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ProgramDataBaseFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(GenerateXMLDocumentationFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(XMLDocumentationFileName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformation)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(BrowseInformationFile)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CallingConvention)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(CompileAs)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(DisableSpecificWarnings)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedIncludeFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ForcedUsingFiles)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ShowIncludes)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(UseFullPaths)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(OmitDefaultLibName)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(ErrorReporting)')
+@(ClCompile->WithMetadataValue('Identity','DefaultClCompile')->'%(TreatSpecificWarningsAsErrors)')
+
+ @(ClCompile->
+ WithMetadataValue('Identity','DefaultClCompile')->
+ '%(AdditionalIncludeDirectories)')
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/repc/qtrepc_v3.xml b/GlosSIConfig/QtMsBuild/repc/qtrepc_v3.xml
new file mode 100644
index 0000000..15ce1f6
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/repc/qtrepc_v3.xml
@@ -0,0 +1,572 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/translation/qt_import.props b/GlosSIConfig/QtMsBuild/translation/qt_import.props
new file mode 100644
index 0000000..cf80649
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/translation/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qttranslation.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qttranslation.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/translation/qttranslation.props b/GlosSIConfig/QtMsBuild/translation/qttranslation.props
new file mode 100644
index 0000000..5f37dae
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/translation/qttranslation.props
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+ @(ClCompile);@(ClInclude);@(QtMoc);@(QtUic)
+
+
+
+
+
+ false
+
+ lupdate %(Identity)
+ $(QtLUpdateOptions)
+ default
+ default
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+ lrelease %(Identity)
+ $(OutDir)
+ %(Filename).qm
+ $(QtLReleaseOptions)
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/translation/qttranslation.targets b/GlosSIConfig/QtMsBuild/translation/qttranslation.targets
new file mode 100644
index 0000000..9f137a0
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/translation/qttranslation.targets
@@ -0,0 +1,588 @@
+
+
+
+
+
+
+
+
+
+
+ $(QtDependsOn);QtTranslation
+
+
+
+
+
+ $(BuildDependsOn);
+ QtTranslation
+
+
+ $(CleanDependsOn);
+ QtTranslationClean
+
+
+
+
+
+
+
+ QtTranslation
+
+
+
+
+
+
+
+
+ $(QtTranslationInput)
+ $(QtToolsPath)/lupdate
+ $(QtToolsPath)/lrelease
+ %(Identity)
+ $([System.IO.Path]::Combine('%(QmOutputDir)', '%(QmOutputFile)'))
+ $([System.IO.Path]::Combine('$(IntDir)', '%(Filename).in.txt'))
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ ####### Don't skip this target #######
+
+
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+
+ %(Value)\
+
+
+
+ "%(Value)"
+
+
+
+
+
+
+ %(Value)
+
+
+ %(Value)
+
+
+ -ts %(Value)
+ %(Value)
+
+
+ "@%(Value)"
+ %(Value)
+
+
+ -source-language %(Value)
+
+
+ -target-language %(Value)
+
+
+ -no-obsolete
+
+
+ -pluralonly
+
+
+ -silent
+
+
+ -no-sort
+
+
+ -locations %(Value)
+
+
+ -locations %(Value)
+
+
+ -locations %(Value)
+
+
+ -no-ui-lines
+
+
+ -disable-heuristic sametext
+
+
+ -disable-heuristic similartext
+
+
+ -disable-heuristic number
+
+
+ -I%(Value)
+
+
+ -tr-function-alias %(Value)
+
+
+
+
+
+
+
+
+
+
+ @(Options->'%(CmdExec)', '')
+ @(Options->'%(CmdOption)', ' ')
+ @(QtTranslationUpdate->'%(UpdateAdditionalOptions)')
+ @(Options->'%(CmdList)', '')
+ @(Options->'%(CmdOutput)', '')
+
+ $([System.Text.RegularExpressions.Regex]::Replace('$(Cmd)', '[\s\r\n]+', ' '))
+ $(Cmd.Trim())
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+
+ %(Value)\
+
+
+
+ "%(Value)"
+
+
+
+
+
+
+ %(Value)
+
+
+ %(Value)
+ %(Value)
+
+
+ -qm %(Value)
+ %(Value)
+
+
+ -idbased
+
+
+ -compress
+
+
+ -nounfinished
+
+
+ -removeidentical
+
+
+ -silent
+
+
+ -markuntranslated %(Value)
+
+
+
+
+
+
+
+ @(Options->'%(CmdExec)', '')
+ @(Options->'%(CmdOption)', ' ')
+ @(QtTranslationRelease->'%(ReleaseAdditionalOptions)')
+ @(Options->'%(CmdInput)', '')
+ @(Options->'%(CmdOutput)', '')
+
+ $([System.Text.RegularExpressions.Regex]::Replace('$(Cmd)', '[\s\r\n]+', ' '))
+ $(Cmd.Trim())
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/translation/qttranslation.xml b/GlosSIConfig/QtMsBuild/translation/qttranslation.xml
new file mode 100644
index 0000000..a83bc23
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/translation/qttranslation.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/uic/qt_import.props b/GlosSIConfig/QtMsBuild/uic/qt_import.props
new file mode 100644
index 0000000..7c88a55
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/uic/qt_import.props
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+ $(QtMsBuildProps);
+ $(MSBuildThisFileDirectory)qtuic.props
+
+
+ $(QtMsBuildTargets);
+ $(MSBuildThisFileDirectory)qtuic.targets
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/uic/qtuic.props b/GlosSIConfig/QtMsBuild/uic/qtuic.props
new file mode 100644
index 0000000..05419b6
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/uic/qtuic.props
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+ uic %(Identity)
+
+ $(QTDIR)
+ $(QtInstallDir)
+
+ %(FullPath)
+
+ $(ProjectDir)GeneratedFiles\$(Configuration)\ui_%(Filename).h
+
+ $(IntDir)uic\
+ ui_%(Filename).h
+
+ true
+ [AllOptions] [AdditionalOptions]
+ %(OutputFile)
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/uic/qtuic.targets b/GlosSIConfig/QtMsBuild/uic/qtuic.targets
new file mode 100644
index 0000000..17f57f6
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/uic/qtuic.targets
@@ -0,0 +1,406 @@
+
+
+
+
+
+
+
+
+
+
+ QtUic;$(QtBuildTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Qt
+
+
+
+ QtRule50_Uic
+
+
+
+
+
+
+
+ $([System.IO.Path]::Combine('%(QtUic.QtUicDir)','%(QtUic.QtUicFileName)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [@(selected_files->'%(Identity)','][')]
+ [@(QtUic->'%(Identity)')]
+ @(QtUic->'%(OutputFile)')
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(input_changed)
+
+
+
+
+
+
+
+ QtPrepare;
+ QtUicPrepare;
+ QtUicSetModified;
+ $(QtUicDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.String]::Copy('%(Value)').Replace('"', ''))
+
+
+ %(Value)\
+
+
+ "%(Value)"
+
+
+
+
+
+ %(Value)
+
+
+
+
+ -o %(Value)
+
+
+
+
+
+
+
+ --dependencies
+
+
+
+
+
+
+
+ --no-protection
+
+
+
+
+
+
+
+ --no-implicit-includes
+
+
+
+
+ --postfix %(Value)
+
+
+
+
+ --tr %(Value)
+
+
+
+
+ --include %(Value)
+
+
+
+
+ -g %(Value)
+
+
+
+
+
+
+
+ --idbased
+
+
+
+ @(options->'%(Value)', ' ')
+
+
+
+
+
+ true
+ %(QtUic.InputChanged)
+
+
+ true
+
+
+ true
+
+
+
+
+
+ uic
+ $(QtToolsPath)/uic
+ %(QtUic.QTDIR)\bin\uic.exe
+ $(options)
+ %(QtUic.ExecutionDescription)
+ $(dependencies_changed)
+ $(input_changed)
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/uic/qtuic.xml b/GlosSIConfig/QtMsBuild/uic/qtuic.xml
new file mode 100644
index 0000000..bb95c8f
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/uic/qtuic.xml
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ uic.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/QtMsBuild/uic/qtuic_v3.xml b/GlosSIConfig/QtMsBuild/uic/qtuic_v3.xml
new file mode 100644
index 0000000..1816d08
--- /dev/null
+++ b/GlosSIConfig/QtMsBuild/uic/qtuic_v3.xml
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute Before
+
+
+ Specifies the targets for the build customization to run before.
+
+
+
+
+
+
+
+
+
+
+ Execute After
+
+
+ Specifies the targets for the build customization to run after.
+
+
+
+
+
+
+
+
+
+
+
+
+ Additional Options
+
+
+ Additional Options
+
+
+
+
+
+
+
+
diff --git a/GlosSIConfig/Resource.rc b/GlosSIConfig/Resource.rc
index 162b312..f955b2a 100644
--- a/GlosSIConfig/Resource.rc
+++ b/GlosSIConfig/Resource.rc
@@ -51,8 +51,8 @@ END
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,0,0,3025000
- PRODUCTVERSION 0,0,0,3025000
+ FILEVERSION 0,0,0,6800050
+ PRODUCTVERSION 0,0,0,6800050
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -69,12 +69,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Peter Repukat - FlatspotSoftware"
VALUE "FileDescription", "GlosSI - Config"
- VALUE "FileVersion", "0.0.0.3f250bd"
+ VALUE "FileVersion", "0.0.0.68fbe50"
VALUE "InternalName", "GlosSIConfig"
VALUE "LegalCopyright", "Copyright (C) 2021 Peter Repukat - FlatspotSoftware"
VALUE "OriginalFilename", "GlosSIConfig.exe"
VALUE "ProductName", "GlosSi"
- VALUE "ProductVersion", "0.0.0.3f250bd"
+ VALUE "ProductVersion", "0.0.0.68fbe50"
END
END
BLOCK "VarFileInfo"
@@ -102,3 +102,7 @@ END
+
+
+
+