summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor McLaughlin <stenzek@gmail.com>2020-01-12 15:34:40 +1000
committerGitHub <noreply@github.com>2020-01-12 15:34:40 +1000
commit1701363854b4a42cc71ecff23eecde7c042a812e (patch)
tree08cf425c4990368d84c5b988f1fb9ff9e8e3941f
parentc48427657481d87bc276d048c8689de443ba732f (diff)
parentd8b2be9d061420201ba27165380eb2863d74c3ea (diff)
Merge pull request #8547 from stenzek/windows-arm64-qt
DolphinQt: Support compiling on ARM64
m---------Externals/Qt0
-rw-r--r--Source/Core/DolphinQt/CMakeLists.txt6
-rw-r--r--Source/Core/DolphinQt/DolphinQt.vcxproj3
-rw-r--r--Source/VSProps/QtCompile.props8
-rw-r--r--Source/dolphin-emu.sln8
5 files changed, 18 insertions, 7 deletions
diff --git a/Externals/Qt b/Externals/Qt
-Subproject f800f81477438e7bdb8773c9411ad545963f70e
+Subproject 3252ffa7005c106a4b33911d3be5ca4d70fba65
diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt
index f76bf69770..4596b9ff15 100644
--- a/Source/Core/DolphinQt/CMakeLists.txt
+++ b/Source/Core/DolphinQt/CMakeLists.txt
@@ -1,5 +1,9 @@
if (NOT Qt5_DIR AND MSVC)
-set(Qt5_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt5.13.1/5.13.1/msvc2017_64/lib/cmake/Qt5")
+ if(_M_ARM_64)
+ set(Qt5_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt5.13.1/5.13.1/msvc2017_64/lib/cmake/Qt5")
+ else()
+ set(Qt5_DIR "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt5.13.2/5.13.2/msvc2017_arm64/lib/cmake/Qt5")
+ endif()
endif()
find_package(Qt5 5.9 REQUIRED COMPONENTS Gui Widgets)
diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj
index 92a3be2edd..a22f267982 100644
--- a/Source/Core/DolphinQt/DolphinQt.vcxproj
+++ b/Source/Core/DolphinQt/DolphinQt.vcxproj
@@ -54,9 +54,10 @@
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<Link>
- <AdditionalLibraryDirectories>$(ExternalsDir)ffmpeg\lib;$(IntDir)..\discord-rpc\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>avrt.lib;iphlpapi.lib;winmm.lib;setupapi.lib;rpcrt4.lib;comctl32.lib;Shlwapi.lib;discord-rpc.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(IntDir)..\discord-rpc\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies Condition="'$(Platform)'=='x64'">opengl32.lib;avcodec.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories Condition="'$(Platform)'=='x64'">$(ExternalsDir)ffmpeg\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
<ClCompile>
<AdditionalIncludeDirectories>$(ProjectDir)VideoInterface;$(ProjectDir)GameList;$(ProjectDir)Debugger;$(ProjectDir)Settings;$(ProjectDir)Config;$(ProjectDir)Config\Mapping;$(ProjectDir)Config\Graphics;$(ProjectDir)Config\ControllerInterface;$(ProjectDir)NetPlay;$(ProjectDir)QtUtils;$(ProjectDir)TAS;$(ProjectDir)FIFO;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/Source/VSProps/QtCompile.props b/Source/VSProps/QtCompile.props
index b4c3b80a92..a5e04ad650 100644
--- a/Source/VSProps/QtCompile.props
+++ b/Source/VSProps/QtCompile.props
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
- <QTDIRDefault>$(ExternalsDir)Qt\Qt5.13.1\5.13.1\msvc2017_64\</QTDIRDefault>
+ <QTDIRDefault Condition="'$(Platform)'=='x64'">$(ExternalsDir)Qt\Qt5.13.1\5.13.1\msvc2017_64\</QTDIRDefault>
+ <QTDIRDefault Condition="'$(Platform)'=='ARM64'">$(ExternalsDir)Qt\Qt5.14.0\5.14.0\msvc2017_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>
@@ -27,6 +28,7 @@
<AdditionalIncludeDirectories>$(QtIncludeDir)QtCore;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(QtIncludeDir)QtGui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(QtIncludeDir)QtWidgets;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Platform)'=='ARM64'">$(QtIncludeDir)QtANGLE;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<!--
Negate the previously enabled warning (set in Base.props). Not compatible with QtCore\qtmap.h
This isn't too bad since we live with the fact that Qt-using projects will have different compiler args already.
@@ -88,6 +90,10 @@
<!--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" />
diff --git a/Source/dolphin-emu.sln b/Source/dolphin-emu.sln
index a79713c95b..75999b3074 100644
--- a/Source/dolphin-emu.sln
+++ b/Source/dolphin-emu.sln
@@ -108,9 +108,11 @@ Global
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {FA3FA62B-6F58-4B86-9453-4D149940A066}.Debug|ARM64.Build.0 = Debug|ARM64
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Debug|x64.ActiveCfg = Debug|x64
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Debug|x64.Build.0 = Debug|x64
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Release|ARM64.ActiveCfg = Release|ARM64
+ {FA3FA62B-6F58-4B86-9453-4D149940A066}.Release|ARM64.Build.0 = Release|ARM64
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Release|x64.ActiveCfg = Release|x64
{FA3FA62B-6F58-4B86-9453-4D149940A066}.Release|x64.Build.0 = Release|x64
{E54CF649-140E-4255-81A5-30A673C1FB36}.Debug|ARM64.ActiveCfg = Debug|ARM64
@@ -453,12 +455,10 @@ Global
{DEA96CF2-F237-4A1A-B32F-C916769EFB50}.Release|ARM64.Build.0 = Release|ARM64
{DEA96CF2-F237-4A1A-B32F-C916769EFB50}.Release|x64.ActiveCfg = Release|x64
{DEA96CF2-F237-4A1A-B32F-C916769EFB50}.Release|x64.Build.0 = Release|x64
- {974E563D-23F8-4E8F-9083-F62876B04E08}.Debug|x64.ActiveCfg = Debug|x64
- {974E563D-23F8-4E8F-9083-F62876B04E08}.Release|x64.ActiveCfg = Release|x64
{974E563D-23F8-4E8F-9083-F62876B04E08}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {974E563D-23F8-4E8F-9083-F62876B04E08}.Debug|ARM64.Build.0 = Debug|ARM64
+ {974E563D-23F8-4E8F-9083-F62876B04E08}.Debug|x64.ActiveCfg = Debug|x64
{974E563D-23F8-4E8F-9083-F62876B04E08}.Release|ARM64.ActiveCfg = Release|ARM64
- {974E563D-23F8-4E8F-9083-F62876B04E08}.Release|ARM64.Build.0 = Release|ARM64
+ {974E563D-23F8-4E8F-9083-F62876B04E08}.Release|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE