mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-12-30 22:10:59 +01:00
433b857695
If the path $(QtIncludeDir) has a space in it Visual Studio interprets the first part as the full path and chokes on the second part. Quote the path to fix the problem.
123 lines
6.5 KiB
XML
123 lines
6.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup Label="UserMacros">
|
|
<QTDIRDefault Condition="'$(Platform)'=='x64'">$(ExternalsDir)Qt\Qt5.15.0\msvc2019_64\</QTDIRDefault>
|
|
<QTDIRDefault Condition="'$(Platform)'=='ARM64'">$(ExternalsDir)Qt\Qt5.15.0\msvc2019_arm64\</QTDIRDefault>
|
|
<QTDIR Condition="Exists('$(QTDIRDefault)') And ('$(QTDIR)'=='' Or !Exists('$(QTDIR)'))">$(QTDIRDefault)</QTDIR>
|
|
<QTDIR Condition="Exists('$(QTDIR)') And !HasTrailingSlash('$(QTDIR)')">$(QTDIR)\</QTDIR>
|
|
<QtDirValid>false</QtDirValid>
|
|
<QtDirValid Condition="Exists('$(QTDIR)')">true</QtDirValid>
|
|
<QtIncludeDirWithoutTrailingSeparator>$(QTDIR)include</QtIncludeDirWithoutTrailingSeparator>
|
|
<QtIncludeDir>$(QtIncludeDirWithoutTrailingSeparator)\</QtIncludeDir>
|
|
<QtLibDir>$(QTDIR)lib\</QtLibDir>
|
|
<QtBinDir>$(QTDIR)bin\</QtBinDir>
|
|
<QtPluginsDir>$(QTDIR)plugins\</QtPluginsDir>
|
|
<QtToolOutDir>$(IntDir)</QtToolOutDir>
|
|
<QtDebugSuffix>d</QtDebugSuffix>
|
|
<QtLibSuffix Condition="'$(Configuration)'=='Debug'">$(QtDebugSuffix)</QtLibSuffix>
|
|
<QtPluginFolder>QtPlugins</QtPluginFolder>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<PreprocessorDefinitions Condition="'$(Configuration)'=='Release'">QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>QT_DLL;QT_CORE_LIB;QT_GUI_LIB;QT_WIDGETS_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>QT_USE_QSTRINGBUILDER;QT_NO_CAST_FROM_ASCII;QT_NO_CAST_TO_ASCII;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<AdditionalIncludeDirectories>$(QtToolOutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(QtIncludeDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(QtIncludeDir)QtCore;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(QtIncludeDir)QtGui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(QtIncludeDir)QtWidgets;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories Condition="'$(Platform)'=='ARM64'">$(QtIncludeDir)QtANGLE;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<!--
|
|
Set the qt directories as 'external', so we avoid any warnings in them
|
|
-->
|
|
<AdditionalOptions>%(AdditionalOptions) /experimental:external</AdditionalOptions>
|
|
<AdditionalOptions>%(AdditionalOptions) /external:W0</AdditionalOptions>
|
|
<AdditionalOptions>%(AdditionalOptions) /external:I "$(QtIncludeDirWithoutTrailingSeparator)"</AdditionalOptions>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalLibraryDirectories>$(QtLibDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
<AdditionalDependencies>Qt5Core$(QtLibSuffix).lib;Qt5Gui$(QtLibSuffix).lib;Qt5Widgets$(QtLibSuffix).lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<SubSystem>Windows</SubSystem>
|
|
<!--
|
|
<AdditionalOptions>"/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\" %(AdditionalOptions)</AdditionalOptions>
|
|
-->
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
|
|
<!--
|
|
Use the moc implementation provided by "Qt VS Tools"
|
|
see: https://code.qt.io/cgit/qt-labs/vstools.git/tree/src/qtmsbuild
|
|
This provides a wrapper around moc which deals with parallel dispatch to moc,
|
|
as well as creating ClCompile inputs from the moc outputs.
|
|
Note that we currently pass the same ClCompile.PreprocessorDefinitions to moc,
|
|
but not the include paths, as passing include paths drastically slows down
|
|
moc, and it doesn't appear to actually need them anyway.
|
|
-->
|
|
<Import Project="qtmoc.props" />
|
|
<ItemDefinitionGroup>
|
|
<QtMoc>
|
|
<OutputFile>$(QtToolOutDir)moc_%(Filename).cpp</OutputFile>
|
|
<QtMocDir>$(QtToolOutDir)</QtMocDir>
|
|
</QtMoc>
|
|
</ItemDefinitionGroup>
|
|
<Import Project="qt_globals.targets"/>
|
|
<Import Project="qt_tasks.targets"/>
|
|
<Import Project="qtmoc.targets" />
|
|
<Target Name="QtCheckQtDir" BeforeTargets="QtMocInit" Condition="!$(QtDirValid)">
|
|
<Error Text="QTDIR not set or non-existent (pull the submodule?)" />
|
|
</Target>
|
|
|
|
<!--Expose the new targets to VS-->
|
|
<ItemGroup>
|
|
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" />
|
|
</ItemGroup>
|
|
|
|
<!--Copy the needed dlls-->
|
|
<ItemGroup>
|
|
<QtLibNames Include="Qt5Core$(QtLibSuffix);Qt5Gui$(QtLibSuffix);Qt5Widgets$(QtLibSuffix)" />
|
|
|
|
<!-- Include ANGLE for ARM64 since there is no native OpenGL -->
|
|
<QtLibNames Condition="'$(Platform)'=='ARM64'" Include="$(QtLibNames);libEGL$(QtLibSuffix);libGLESv2$(QtLibSuffix)" />
|
|
|
|
<QtDlls Include="@(QtLibNames -> '$(QtBinDir)%(Identity).dll')" />
|
|
<!--Filter plugins to copy based on the observation that all debug versions end in "d"-->
|
|
<QtAllPlugins Include="$(QtPluginsDir)**\*$(QtLibSuffix).dll" />
|
|
<QtPlugins Condition="'$(Configuration)'=='Debug'" Include="@(QtAllPlugins)" />
|
|
<QtPlugins Condition="'$(Configuration)'=='Release'" Exclude="$(QtPluginsDir)**\*$(QtDebugSuffix).dll" Include="@(QtAllPlugins)" />
|
|
<QtPluginsDest Include="@(QtPlugins -> '$(BinaryOutputDir)$(QtPluginFolder)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<QtConfFile>$(BinaryOutputDir)qt.conf</QtConfFile>
|
|
</PropertyGroup>
|
|
<Target Name="QtCopyBinaries"
|
|
AfterTargets="Build"
|
|
Inputs="@(QtDlls);@(QtPlugins)"
|
|
Outputs="@(QtDlls -> '$(BinaryOutputDir)%(RecursiveDir)%(Filename)%(Extension)');@(QtPlugins -> '$(BinaryOutputDir)$(QtPluginFolder)\%(RecursiveDir)%(Filename)%(Extension)')">
|
|
<Message Text="Copying Qt .dlls" Importance="High" />
|
|
<Copy
|
|
SourceFiles="@(QtDlls)"
|
|
DestinationFolder="$(BinaryOutputDir)"
|
|
SkipUnchangedFiles="true"
|
|
/>
|
|
<Copy
|
|
SourceFiles="@(QtPlugins)"
|
|
DestinationFiles="@(QtPluginsDest)"
|
|
SkipUnchangedFiles="true"
|
|
/>
|
|
</Target>
|
|
<Target Name="QtCreateConf"
|
|
BeforeTargets="QtCopyBinaries"
|
|
Condition="!Exists('$(QtConfFile)')">
|
|
<!--
|
|
Create a file which tells Qt where to look for "plugins".
|
|
Otherwise Qt only looks in ./<subtype>/type.dll instead of ./$(QtPluginFolder)/<subtype>/type.dll, which is messy
|
|
-->
|
|
<WriteLinesToFile
|
|
File="$(QtConfFile)"
|
|
Lines="[Paths];Plugins = ./$(QtPluginFolder)"
|
|
Overwrite="true"
|
|
/>
|
|
</Target>
|
|
</Project>
|