diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ae9d74151d..bca2344661 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -67,9 +67,16 @@ jobs:
matrix:
platform: [win32, x64, arm64]
env:
- CONFIGURATION: Release
PLATFORM: ${{ matrix.platform }}
steps:
+ - name: Setup environment
+ run: |
+ BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)
+ if [[ $BRANCH == 'develop' || $BRANCH == 'master' ]]; then
+ echo "CONFIGURATION=ReleaseLTCG" >> "$GITHUB_ENV"
+ else
+ echo "CONFIGURATION=Release" >> "$GITHUB_ENV"
+ fi
- name: Checkout
uses: actions/checkout@v3
- name: Git describe for shallow checkout
diff --git a/openrct2.common.props b/openrct2.common.props
index 357686dfd8..b32345eb7e 100644
--- a/openrct2.common.props
+++ b/openrct2.common.props
@@ -25,6 +25,10 @@
true
+ false
+ false
+
+
false
true
@@ -87,7 +91,7 @@
bz2d.lib;discord-rpc.lib;flac.lib;freetyped.lib;libpng16d.lib;ogg.lib;speexdsp.lib;SDL2d.lib;vorbis.lib;vorbisfile.lib;zip.lib;zlibd.lib;%(AdditionalDependencies)
-
+
Full
true
@@ -108,7 +112,6 @@
bz2.lib;discord-rpc.lib;flac.lib;freetype.lib;libpng16.lib;ogg.lib;speexdsp.lib;SDL2.lib;vorbis.lib;vorbisfile.lib;zip.lib;zlib.lib;%(AdditionalDependencies)
-
diff --git a/openrct2.sln b/openrct2.sln
index 6d4ece018d..5556485514 100644
--- a/openrct2.sln
+++ b/openrct2.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29411.138
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33213.308
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenrct2", "src\openrct2\libopenrct2.vcxproj", "{D24D94F6-2A74-480C-B512-629C306CE92F}"
EndProject
@@ -33,81 +33,114 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openrct2-cli", "src\openrct
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|arm64 = Debug|arm64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
- Debug|arm64 = Debug|arm64
+ Release|arm64 = Release|arm64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
- Release|arm64 = Release|arm64
+ ReleaseLTCG|arm64 = ReleaseLTCG|arm64
+ ReleaseLTCG|Win32 = ReleaseLTCG|Win32
+ ReleaseLTCG|x64 = ReleaseLTCG|x64
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|arm64.ActiveCfg = Debug|arm64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Debug|arm64.Build.0 = Debug|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|arm64.ActiveCfg = Release|arm64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.Release|arm64.Build.0 = Release|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
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|arm64.ActiveCfg = ReleaseLTCG|arm64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|arm64.Build.0 = ReleaseLTCG|arm64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|Win32.Build.0 = ReleaseLTCG|Win32
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {D24D94F6-2A74-480C-B512-629C306CE92F}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|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}.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}.Release|arm64.ActiveCfg = Release|arm64
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.Release|arm64.Build.0 = Release|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}.ReleaseLTCG|arm64.ActiveCfg = ReleaseLTCG|arm64
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.ReleaseLTCG|arm64.Build.0 = ReleaseLTCG|arm64
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.ReleaseLTCG|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.ReleaseLTCG|Win32.Build.0 = ReleaseLTCG|Win32
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {7A9A57D5-7006-4208-A290-5491BA3C8808}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|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}.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|arm64.ActiveCfg = Release|arm64
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.Release|arm64.Build.0 = Release|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
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|arm64.ActiveCfg = ReleaseLTCG|arm64
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|arm64.Build.0 = ReleaseLTCG|arm64
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|Win32.Build.0 = ReleaseLTCG|Win32
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {62B020FA-E4FB-4C6E-B32A-DC999470F155}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|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}.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|arm64.ActiveCfg = Release|arm64
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.Release|arm64.Build.0 = Release|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
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|arm64.ActiveCfg = ReleaseLTCG|arm64
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|arm64.Build.0 = ReleaseLTCG|arm64
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|Win32.Build.0 = ReleaseLTCG|Win32
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {8DD8AB7D-2EA6-44E3-8265-BAF08E832951}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|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}.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|arm64.ActiveCfg = Release|arm64
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.Release|arm64.Build.0 = Release|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
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|arm64.ActiveCfg = ReleaseLTCG|arm64
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|arm64.Build.0 = ReleaseLTCG|arm64
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|Win32.ActiveCfg = ReleaseLTCG|Win32
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|Win32.Build.0 = ReleaseLTCG|Win32
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|x64.ActiveCfg = ReleaseLTCG|x64
+ {B6808F71-30B4-4499-8FF6-0B1C86391842}.ReleaseLTCG|x64.Build.0 = ReleaseLTCG|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {7A9A57D5-7006-4208-A290-5491BA3C8808} = {2202A816-377D-4FA0-A7AF-7D4105F8A4FB}
{D24D94F6-2A74-480C-B512-629C306CE92F} = {2202A816-377D-4FA0-A7AF-7D4105F8A4FB}
+ {7A9A57D5-7006-4208-A290-5491BA3C8808} = {2202A816-377D-4FA0-A7AF-7D4105F8A4FB}
{62B020FA-E4FB-4C6E-B32A-DC999470F155} = {480B577D-4E4A-4757-9A42-28A9AD33E6B0}
{8DD8AB7D-2EA6-44E3-8265-BAF08E832951} = {2202A816-377D-4FA0-A7AF-7D4105F8A4FB}
{B6808F71-30B4-4499-8FF6-0B1C86391842} = {2202A816-377D-4FA0-A7AF-7D4105F8A4FB}
diff --git a/src/openrct2-cli/openrct2-cli.vcxproj b/src/openrct2-cli/openrct2-cli.vcxproj
index a134619da0..3e9f97f517 100644
--- a/src/openrct2-cli/openrct2-cli.vcxproj
+++ b/src/openrct2-cli/openrct2-cli.vcxproj
@@ -16,6 +16,18 @@
Debug
arm64
+
+ ReleaseLTCG
+ arm64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
Release
Win32
@@ -64,4 +76,4 @@
-
+
\ No newline at end of file
diff --git a/src/openrct2-ui/libopenrct2ui.vcxproj b/src/openrct2-ui/libopenrct2ui.vcxproj
index aebee18021..358c1577d7 100644
--- a/src/openrct2-ui/libopenrct2ui.vcxproj
+++ b/src/openrct2-ui/libopenrct2ui.vcxproj
@@ -16,6 +16,18 @@
Debug
arm64
+
+ ReleaseLTCG
+ arm64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
Release
Win32
@@ -234,4 +246,4 @@
-
+
\ No newline at end of file
diff --git a/src/openrct2-win/openrct2-win.vcxproj b/src/openrct2-win/openrct2-win.vcxproj
index 8e81f69b72..ef8cd4fdf9 100644
--- a/src/openrct2-win/openrct2-win.vcxproj
+++ b/src/openrct2-win/openrct2-win.vcxproj
@@ -16,6 +16,18 @@
Debug
arm64
+
+ ReleaseLTCG
+ arm64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
Release
Win32
@@ -64,4 +76,4 @@
-
+
\ No newline at end of file
diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj
index 478e94b52b..afd3147b63 100644
--- a/src/openrct2/libopenrct2.vcxproj
+++ b/src/openrct2/libopenrct2.vcxproj
@@ -15,6 +15,18 @@
Debug
arm64
+
+ ReleaseLTCG
+ arm64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
Release
Win32
diff --git a/test/tests/tests.vcxproj b/test/tests/tests.vcxproj
index 32c313b804..95d7c4c808 100644
--- a/test/tests/tests.vcxproj
+++ b/test/tests/tests.vcxproj
@@ -8,6 +8,18 @@
Debug
Win32
+
+ ReleaseLTCG
+ arm64
+
+
+ ReleaseLTCG
+ Win32
+
+
+ ReleaseLTCG
+ x64
+
Release
Win32
@@ -97,4 +109,4 @@
-
+
\ No newline at end of file