diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index faf500ebba..2073d293f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,6 +88,7 @@ jobs: path: artifacts if-no-files-found: error - name: Run Tests + if: matrix.platform != 'arm64' run: . scripts/setenv -q && run-tests - name: Upload artifacts (openrct2.org) run: | diff --git a/openrct2.common.props b/openrct2.common.props index 85a183c3b4..e111b98460 100644 --- a/openrct2.common.props +++ b/openrct2.common.props @@ -19,6 +19,7 @@ x86-windows-static x64-windows-static + arm64-windows-static true @@ -53,7 +54,8 @@ C4549: 'operator': operator before comma has no effect; did you intend 'operator'? C4555: expression has no effect; expected expression with side-effect --> - __AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN%(PreprocessorDefinitions) + OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) + __AVX2__;__SSE4_1__;%(PreprocessorDefinitions) ENABLE_SCRIPTING;%(PreprocessorDefinitions) MultiThreaded MultiThreadedDLL @@ -79,7 +81,9 @@ DebugFull - benchmark.lib;brotlicommon-static.lib;brotlidec-static.lib;brotlienc-static.lib;libbreakpadd.lib;libbreakpad_clientd.lib;bz2d.lib;discord-rpc.lib;freetyped.lib;libpng16d.lib;speexdsp.lib;SDL2d.lib;zip.lib;zlibd.lib;%(AdditionalDependencies) + benchmark.lib;brotlicommon-static.lib;brotlidec-static.lib;brotlienc-static.lib;%(AdditionalDependencies) + libbreakpadd.lib;libbreakpad_clientd.lib;%(AdditionalDependencies) + bz2d.lib;discord-rpc.lib;freetyped.lib;libpng16d.lib;speexdsp.lib;SDL2d.lib;zip.lib;zlibd.lib;%(AdditionalDependencies) @@ -98,7 +102,9 @@ DebugFull true true - benchmark.lib;brotlicommon-static.lib;brotlidec-static.lib;brotlienc-static.lib;libbreakpad.lib;libbreakpad_client.lib;bz2.lib;discord-rpc.lib;freetype.lib;libpng16.lib;speexdsp.lib;SDL2.lib;zip.lib;zlib.lib;%(AdditionalDependencies) + benchmark.lib;brotlicommon-static.lib;brotlidec-static.lib;brotlienc-static.lib;%(AdditionalDependencies) + libbreakpad.lib;libbreakpad_client.lib;%(AdditionalDependencies) + bz2.lib;discord-rpc.lib;freetype.lib;libpng16.lib;speexdsp.lib;SDL2.lib;zip.lib;zlib.lib;%(AdditionalDependencies) diff --git a/openrct2.proj b/openrct2.proj index 21d12d0a36..80ac265f3d 100644 --- a/openrct2.proj +++ b/openrct2.proj @@ -21,7 +21,7 @@ /D "OPENRCT2_COMMIT_SHA1=\"$(OPENRCT2_SHA1)\"" $(OPENRCT2_CL_ADDITIONALOPTIONS) /D "OPENRCT2_COMMIT_SHA1_SHORT=\"$(OPENRCT2_SHA1_SHORT)\"" $(OPENRCT2_CL_ADDITIONALOPTIONS) /D "OPENRCT2_VERSION_TAG=\"$(OPENRCT2_DESCRIBE)\"" $(OPENRCT2_CL_ADDITIONALOPTIONS) - /D "USE_BREAKPAD" $(OPENRCT2_CL_ADDITIONALOPTIONS) + /D "USE_BREAKPAD" $(OPENRCT2_CL_ADDITIONALOPTIONS) $(MsBuildThisFileDirectory) $(RootDir)bin\ @@ -41,6 +41,8 @@ 69e487023027c2bb199b40b23cce371cd1b4dfde https://github.com/OpenRCT2/Dependencies/releases/download/v32/openrct2-libs-v32-x64-windows-static.zip 6eb97a49ad30442fe6d08799a0561d7cf0c95d40 + https://github.com/OpenRCT2/Dependencies/releases/download/v32/openrct2-libs-v32-arm64-windows-static.zip + fa5f067fcfb5e76c4d4fb6f2211b422cbbe25f26 2fe3bd994b3189899d93f1d5a881e725e046fdc2 https://github.com/google/googletest/archive/$(GtestVersion).zip 058b9df80244c03f1633cb06e9f70471a29ebb8e @@ -117,7 +119,7 @@ + Condition="'$(TestConfig)'!='true' and '$(Platform)'!='ARM64'"> diff --git a/openrct2.sln b/openrct2.sln index f8e4452fdf..6d4ece018d 100644 --- a/openrct2.sln +++ b/openrct2.sln @@ -35,50 +35,72 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 + Debug|arm64 = Debug|arm64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 + Release|arm64 = Release|arm64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|Win32.ActiveCfg = Debug|Win32 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|Win32.Build.0 = Debug|Win32 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|x64.ActiveCfg = Debug|x64 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|x64.Build.0 = Debug|x64 + {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|arm64.ActiveCfg = Debug|arm64 + {7A9A57D5-7006-4208-A290-5491BA3C8808}.Debug|arm64.Build.0 = Debug|arm64 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|Win32.ActiveCfg = Release|Win32 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|Win32.Build.0 = Release|Win32 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|x64.ActiveCfg = Release|x64 {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|x64.Build.0 = Release|x64 + {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|arm64.ActiveCfg = Release|arm64 + {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|arm64.Build.0 = Release|arm64 {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|Win32.ActiveCfg = Debug|Win32 {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|Win32.Build.0 = Debug|Win32 {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|x64.ActiveCfg = Debug|x64 {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|x64.Build.0 = Debug|x64 + {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|arm64.ActiveCfg = Debug|arm64 + {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|arm64.Build.0 = Debug|arm64 {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|Win32.ActiveCfg = Release|Win32 {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|Win32.Build.0 = Release|Win32 {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|x64.ActiveCfg = Release|x64 {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|x64.Build.0 = Release|x64 + {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|arm64.ActiveCfg = Release|arm64 + {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|arm64.Build.0 = Release|arm64 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|Win32.ActiveCfg = Debug|Win32 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|Win32.Build.0 = Debug|Win32 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|x64.ActiveCfg = Debug|x64 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|x64.Build.0 = Debug|x64 + {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|arm64.ActiveCfg = Debug|arm64 + {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Debug|arm64.Build.0 = Debug|arm64 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|Win32.ActiveCfg = Release|Win32 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|Win32.Build.0 = Release|Win32 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|x64.ActiveCfg = Release|x64 {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|x64.Build.0 = Release|x64 + {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|arm64.ActiveCfg = Release|arm64 + {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|arm64.Build.0 = Release|arm64 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|Win32.ActiveCfg = Debug|Win32 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|Win32.Build.0 = Debug|Win32 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|x64.ActiveCfg = Debug|x64 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|x64.Build.0 = Debug|x64 + {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|arm64.ActiveCfg = Debug|arm64 + {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Debug|arm64.Build.0 = Debug|arm64 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|Win32.ActiveCfg = Release|Win32 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|Win32.Build.0 = Release|Win32 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|x64.ActiveCfg = Release|x64 {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|x64.Build.0 = Release|x64 + {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|arm64.ActiveCfg = Release|arm64 + {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|arm64.Build.0 = Release|arm64 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|Win32.ActiveCfg = Debug|Win32 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|Win32.Build.0 = Debug|Win32 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|x64.ActiveCfg = Debug|x64 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|x64.Build.0 = Debug|x64 + {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|arm64.ActiveCfg = Debug|arm64 + {B6808F71-30B4-4499-8FF6-0B1C86391842}.Debug|arm64.Build.0 = Debug|arm64 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|Win32.ActiveCfg = Release|Win32 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|Win32.Build.0 = Release|Win32 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|x64.ActiveCfg = Release|x64 {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|x64.Build.0 = Release|x64 + {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|arm64.ActiveCfg = Release|arm64 + {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|arm64.Build.0 = Release|arm64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/openrct2-cli/openrct2-cli.vcxproj b/src/openrct2-cli/openrct2-cli.vcxproj index 9a76591370..a134619da0 100644 --- a/src/openrct2-cli/openrct2-cli.vcxproj +++ b/src/openrct2-cli/openrct2-cli.vcxproj @@ -12,6 +12,10 @@ Debug x64 + + Debug + arm64 + Release Win32 @@ -20,6 +24,10 @@ Release x64 + + Release + arm64 + {B6808F71-30B4-4499-8FF6-0B1C86391842} @@ -46,6 +54,7 @@ MachineX86 MachineX64 + MachineARM64 @@ -55,4 +64,4 @@ - \ No newline at end of file + diff --git a/src/openrct2-ui/libopenrct2ui.vcxproj b/src/openrct2-ui/libopenrct2ui.vcxproj index dbf6d068a8..6a82fbeea3 100644 --- a/src/openrct2-ui/libopenrct2ui.vcxproj +++ b/src/openrct2-ui/libopenrct2ui.vcxproj @@ -12,6 +12,10 @@ Debug x64 + + Debug + arm64 + Release Win32 @@ -20,6 +24,10 @@ Release x64 + + Release + arm64 + @@ -206,7 +214,7 @@ __ENABLE_LIGHTFX__;%(PreprocessorDefinitions) - USE_BREAKPAD;%(PreprocessorDefinitions) + USE_BREAKPAD;%(PreprocessorDefinitions) @@ -216,7 +224,8 @@ MachineX86 MachineX64 + MachineARM64 - \ No newline at end of file + diff --git a/src/openrct2-win/openrct2-win.vcxproj b/src/openrct2-win/openrct2-win.vcxproj index 6a7f8f0f6d..8e81f69b72 100644 --- a/src/openrct2-win/openrct2-win.vcxproj +++ b/src/openrct2-win/openrct2-win.vcxproj @@ -12,6 +12,10 @@ Debug x64 + + Debug + arm64 + Release Win32 @@ -20,6 +24,10 @@ Release x64 + + Release + arm64 + {7A9A57D5-7006-4208-A290-5491BA3C8808} @@ -46,6 +54,7 @@ MachineX86 MachineX64 + MachineARM64 @@ -55,4 +64,4 @@ - \ No newline at end of file + diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index a661a2f202..28cc879860 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -11,6 +11,10 @@ Debug x64 + + Debug + arm64 + Release Win32 @@ -19,6 +23,10 @@ Release x64 + + Release + arm64 + {D24D94F6-2A74-480C-B512-629C306CE92F} @@ -32,7 +40,7 @@ __ENABLE_DISCORD__;__ENABLE_LIGHTFX__;USE_BENCHMARK;%(PreprocessorDefinitions) - USE_BREAKPAD;%(PreprocessorDefinitions) + USE_BREAKPAD;%(PreprocessorDefinitions) USE_FRIBIDI;%(PreprocessorDefinitions) @@ -43,6 +51,7 @@ MachineX86 MachineX64 + MachineARM64 @@ -958,4 +967,4 @@ - \ No newline at end of file + diff --git a/test/tests/BitSetTests.cpp b/test/tests/BitSetTests.cpp index 8e3f2efaeb..2e2b9ac6ba 100644 --- a/test/tests/BitSetTests.cpp +++ b/test/tests/BitSetTests.cpp @@ -15,7 +15,7 @@ using namespace OpenRCT2; TEST(BitTest, test_index_construction) { BitSet<64u> bits({ 0u, 2u, 4u, 6u, 8u, 10u }); -#ifdef _M_X64 +#if defined(_M_X64) || defined(_M_ARM64) static_assert(std::is_same_v); #else static_assert(std::is_same_v); @@ -94,7 +94,7 @@ TEST(BitTest, test_big) static_assert(size == 32u); bits.flip(); -#ifdef _M_X64 +#if defined(_M_X64) || defined(_M_ARM64) static_assert(std::is_same_v); static_assert(bits.data().size() == 4); ASSERT_EQ(bits.data()[0], ~0ULL); diff --git a/test/tests/tests.vcxproj b/test/tests/tests.vcxproj index ed49f62ce9..3fe3fd1406 100644 --- a/test/tests/tests.vcxproj +++ b/test/tests/tests.vcxproj @@ -21,6 +21,14 @@ Release x64 + + Debug + arm64 + + + Release + arm64 + {62B020FA-E4FB-4C6E-B32A-DC999470F155} @@ -88,4 +96,4 @@ - \ No newline at end of file +