Commit daf3becf authored by mercury233's avatar mercury233

update windows build matrix

add x64, support no dxsdk
parent bfcb4afc
...@@ -11,8 +11,41 @@ jobs: ...@@ -11,8 +11,41 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [windows-2019, windows-2022] name:
audiolib: [miniaudio, irrklang] - windows
- windows-xp
- windows-irrklang
- windows-no-dxsdk
- windows-x64
# - windows-2025
include:
- name: windows
os: windows-2022
vs: vs2022
audiolib: miniaudio
- name: windows-xp
os: windows-2019
vs: vs2019
audiolib: miniaudio
xp: true
- name: windows-irrklang
os: windows-2022
vs: vs2022
audiolib: irrklang
- name: windows-no-dxsdk
os: windows-2022
vs: vs2022
audiolib: miniaudio
nodxsdk: true
- name: windows-x64
os: windows-2022
vs: vs2022
audiolib: miniaudio
x64: true
# - name: windows-2025
# os: windows-2025
# vs: vs2022
# audiolib: miniaudio
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
...@@ -38,7 +71,7 @@ jobs: ...@@ -38,7 +71,7 @@ jobs:
id: premake id: premake
uses: mercury233/action-cache-download-file@v1.0.0 uses: mercury233/action-cache-download-file@v1.0.0
with: with:
url: https://github.com/premake/premake-core/releases/download/v5.0.0-beta5/premake-5.0.0-beta5-windows.zip url: https://github.com/premake/premake-core/releases/download/v5.0.0-beta6/premake-5.0.0-beta6-windows.zip
filename: premake5.zip filename: premake5.zip
- name: Extract premake - name: Extract premake
...@@ -169,6 +202,7 @@ jobs: ...@@ -169,6 +202,7 @@ jobs:
git clone --depth=1 https://github.com/mercury233/irrlicht git clone --depth=1 https://github.com/mercury233/irrlicht
- name: Check DirectX SDK - name: Check DirectX SDK
if: matrix.nodxsdk != true
id: dxsdk id: dxsdk
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
...@@ -176,18 +210,19 @@ jobs: ...@@ -176,18 +210,19 @@ jobs:
path: DXSDK path: DXSDK
- name: Download DirectX SDK - name: Download DirectX SDK
if: steps.dxsdk.outputs.cache-hit != 'true' if: matrix.nodxsdk != true && steps.dxsdk.outputs.cache-hit != 'true'
id: dxsdk-download id: dxsdk-download
uses: mercury233/action-cache-download-file@v1.0.0 uses: mercury233/action-cache-download-file@v1.0.0
with: with:
url: https://download.microsoft.com/download/a/e/7/ae743f1f-632b-4809-87a9-aa1bb3458e31/DXSDK_Jun10.exe url: https://download.microsoft.com/download/a/e/7/ae743f1f-632b-4809-87a9-aa1bb3458e31/DXSDK_Jun10.exe
- name: Install DirectX SDK - name: Install DirectX SDK
if: steps.dxsdk.outputs.cache-hit != 'true' if: matrix.nodxsdk != true && steps.dxsdk.outputs.cache-hit != 'true'
run: | run: |
7z x ${{ steps.dxsdk-download.outputs.filepath }} -aoa 7z x ${{ steps.dxsdk-download.outputs.filepath }} -aoa
- name: Set DirectX SDK environment variable - name: Set DirectX SDK environment variable
if: matrix.nodxsdk != true
run: | run: |
$dxsdkPath = Resolve-Path 'DXSDK' $dxsdkPath = Resolve-Path 'DXSDK'
"DXSDK_DIR=$($dxsdkPath.ProviderPath)\" | Out-File -FilePath $env:GITHUB_ENV -Append "DXSDK_DIR=$($dxsdkPath.ProviderPath)\" | Out-File -FilePath $env:GITHUB_ENV -Append
...@@ -197,39 +232,24 @@ jobs: ...@@ -197,39 +232,24 @@ jobs:
xcopy /E premake\* . xcopy /E premake\* .
xcopy /E resource\* . xcopy /E resource\* .
- name: Use premake to generate Visual Studio solution (2019, miniaudio) - name: Use premake to generate Visual Studio solution
if: matrix.os == 'windows-2019' && matrix.audiolib == 'miniaudio'
run: |
.\premake5.exe vs2019 --winxp-support
- name: Use premake to generate Visual Studio solution (2022, miniaudio)
if: matrix.os == 'windows-2022' && matrix.audiolib == 'miniaudio'
run: |
.\premake5.exe vs2022
- name: Use premake to generate Visual Studio solution (2019, irrKlang)
if: matrix.os == 'windows-2019' && matrix.audiolib == 'irrklang'
run: |
.\premake5.exe vs2019 --winxp-support --audio-lib=irrklang
- name: Use premake to generate Visual Studio solution (2022, irrKlang)
if: matrix.os == 'windows-2022' && matrix.audiolib == 'irrklang'
run: | run: |
.\premake5.exe vs2022 --audio-lib=irrklang .\premake5.exe ${{ matrix.vs }} --audio-lib=${{ matrix.audiolib }} ${{ matrix.xp && '--winxp-support' || '' }}
- name: Add msbuild to PATH - name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2 uses: microsoft/setup-msbuild@v2
- name: Build solution - name: Build solution
run: | run: |
MSBuild.exe build\YGOPro.sln /m /p:Configuration=Release MSBuild.exe build\YGOPro.sln /m /p:Configuration=Release /p:Platform=${{ matrix.x64 && 'x64' || 'Win32' }}
- name: Upload build artifacts - name: Upload build artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: YGOPro-${{ matrix.os }}-${{ matrix.audiolib }} name: YGOPro-${{ matrix.name }}
path: | path: |
bin/release/YGOPro.exe bin/release/x86/YGOPro.exe
bin/release/x64/YGOPro.exe
build-linux: build-linux:
strategy: strategy:
......
...@@ -154,7 +154,11 @@ project "irrlicht" ...@@ -154,7 +154,11 @@ project "irrlicht"
filter { "system:windows" } filter { "system:windows" }
defines { "_IRR_WCHAR_FILESYSTEM" } defines { "_IRR_WCHAR_FILESYSTEM" }
includedirs { "$(DXSDK_DIR)Include" } if USE_DXSDK then
includedirs { "$(DXSDK_DIR)Include" }
else
defines { "NO_IRR_COMPILE_WITH_DIRECT3D_9_" }
end
filter { "system:linux" } filter { "system:linux" }
links { "X11", "Xxf86vm" } links { "X11", "Xxf86vm" }
......
...@@ -7,6 +7,7 @@ BUILD_EVENT = os.istarget("windows") ...@@ -7,6 +7,7 @@ BUILD_EVENT = os.istarget("windows")
BUILD_FREETYPE = os.istarget("windows") BUILD_FREETYPE = os.istarget("windows")
BUILD_SQLITE = os.istarget("windows") BUILD_SQLITE = os.istarget("windows")
BUILD_IRRLICHT = true BUILD_IRRLICHT = true
USE_DXSDK = true
USE_AUDIO = true USE_AUDIO = true
AUDIO_LIB = "miniaudio" AUDIO_LIB = "miniaudio"
...@@ -42,6 +43,7 @@ newoption { trigger = "build-irrlicht", category = "YGOPro - irrlicht", descript ...@@ -42,6 +43,7 @@ newoption { trigger = "build-irrlicht", category = "YGOPro - irrlicht", descript
newoption { trigger = "no-build-irrlicht", category = "YGOPro - irrlicht", description = "" } newoption { trigger = "no-build-irrlicht", category = "YGOPro - irrlicht", description = "" }
newoption { trigger = "irrlicht-include-dir", category = "YGOPro - irrlicht", description = "", value = "PATH" } newoption { trigger = "irrlicht-include-dir", category = "YGOPro - irrlicht", description = "", value = "PATH" }
newoption { trigger = "irrlicht-lib-dir", category = "YGOPro - irrlicht", description = "", value = "PATH" } newoption { trigger = "irrlicht-lib-dir", category = "YGOPro - irrlicht", description = "", value = "PATH" }
newoption { trigger = "no-dxsdk", category = "YGOPro - irrlicht", description = "" }
newoption { trigger = "no-audio", category = "YGOPro", description = "" } newoption { trigger = "no-audio", category = "YGOPro", description = "" }
newoption { trigger = "audio-lib", category = "YGOPro", description = "", value = "miniaudio, irrklang", default = AUDIO_LIB } newoption { trigger = "audio-lib", category = "YGOPro", description = "", value = "miniaudio, irrklang", default = AUDIO_LIB }
...@@ -130,6 +132,16 @@ if not BUILD_IRRLICHT then ...@@ -130,6 +132,16 @@ if not BUILD_IRRLICHT then
IRRLICHT_LIB_DIR = GetParam("irrlicht-lib-dir") or os.findlib("irrlicht") IRRLICHT_LIB_DIR = GetParam("irrlicht-lib-dir") or os.findlib("irrlicht")
end end
if GetParam("no-dxsdk") then
USE_DXSDK = false
end
if USE_DXSDK and os.istarget("windows") then
if not os.getenv("DXSDK_DIR") then
print("DXSDK_DIR environment variable not set, it seems you don't have the DirectX SDK installed. DirectX mode will be disabled.")
USE_DXSDK = false
end
end
if GetParam("no-audio") then if GetParam("no-audio") then
USE_AUDIO = false USE_AUDIO = false
elseif GetParam("no-use-miniaudio") then elseif GetParam("no-use-miniaudio") then
...@@ -223,6 +235,13 @@ workspace "YGOPro" ...@@ -223,6 +235,13 @@ workspace "YGOPro"
else else
defines { "WINVER=0x0601" } -- WIN7 defines { "WINVER=0x0601" } -- WIN7
end end
platforms { "Win32", "x64" }
filter { "system:windows", "platforms:Win32" }
architecture "x86"
filter { "system:windows", "platforms:x64" }
architecture "x86_64"
filter "system:macosx" filter "system:macosx"
libdirs { "/usr/local/lib" } libdirs { "/usr/local/lib" }
...@@ -243,6 +262,18 @@ workspace "YGOPro" ...@@ -243,6 +262,18 @@ workspace "YGOPro"
defines "_DEBUG" defines "_DEBUG"
targetdir "bin/debug" targetdir "bin/debug"
filter { "system:windows", "platforms:Win32", "configurations:Release" }
targetdir "bin/release/x86"
filter { "system:windows", "platforms:Win32", "configurations:Debug" }
targetdir "bin/debug/x86"
filter { "system:windows", "platforms:x64", "configurations:Release" }
targetdir "bin/release/x64"
filter { "system:windows", "platforms:x64", "configurations:Debug" }
targetdir "bin/debug/x64"
filter { "configurations:Release", "action:vs*" } filter { "configurations:Release", "action:vs*" }
if linktimeoptimization then if linktimeoptimization then
linktimeoptimization "On" linktimeoptimization "On"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment