Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro
Commits
b1cbe233
Commit
b1cbe233
authored
Mar 17, 2025
by
mercury233
Committed by
GitHub
Mar 17, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add GitHub test build (#2721)
parent
70869d81
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
376 additions
and
20 deletions
+376
-20
.github/workflows/build.yml
.github/workflows/build.yml
+361
-0
premake/irrlicht/premake5.lua
premake/irrlicht/premake5.lua
+1
-1
premake5.lua
premake5.lua
+14
-19
No files found.
.github/workflows/build.yml
0 → 100644
View file @
b1cbe233
name
:
Automated Test Build
on
:
push
:
branches
:
[
"
master"
]
pull_request
:
branches
:
[
"
master"
]
jobs
:
build-windows
:
strategy
:
fail-fast
:
false
matrix
:
os
:
[
windows-2019
,
windows-2022
]
runs-on
:
${{ matrix.os }}
steps
:
-
name
:
Checkout repository with submodules
uses
:
actions/checkout@v4
with
:
fetch-depth
:
1
submodules
:
true
-
name
:
Update submodules
run
:
|
cd ocgcore
git checkout master
git pull origin master
cd ..
# cd script
# git checkout master
# git pull origin master
# cd ..
-
name
:
Download premake
id
:
premake
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/premake/premake-core/releases/download/v5.0.0-beta5/premake-5.0.0-beta5-windows.zip
filename
:
premake5.zip
-
name
:
Extract premake
run
:
|
7z x ${{ steps.premake.outputs.filepath }}
-
name
:
Download libevent
id
:
libevent
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
filename
:
libevent.tar.gz
-
name
:
Extract libevent
run
:
|
tar xf ${{ steps.libevent.outputs.filepath }}
move libevent-2.0.22-stable event
xcopy /E event\WIN32-Code event\include
-
name
:
Download freetype
id
:
freetype
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
http://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.gz
-
name
:
Extract freetype
run
:
|
tar xf ${{ steps.freetype.outputs.filepath }}
move freetype-2.13.3 freetype
-
name
:
Download lua
id
:
lua
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.lua.org/ftp/lua-5.4.7.tar.gz
-
name
:
Extract lua
run
:
|
tar xf ${{ steps.lua.outputs.filepath }}
move lua-5.4.7 lua
-
name
:
Download sqlite
id
:
sqlite
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.sqlite.org/2025/sqlite-amalgamation-3490100.zip
-
name
:
Extract sqlite
run
:
|
7z x ${{ steps.sqlite.outputs.filepath }}
move sqlite-amalgamation-3490100 sqlite3
-
name
:
Download irrKlang
id
:
irrKlang
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.ambiera.at/downloads/irrKlang-32bit-1.6.0.zip
-
name
:
Extract irrKlang
run
:
|
7z x ${{ steps.irrKlang.outputs.filepath }}
move irrKlang-1.6.0 irrKlang
-
name
:
Download irrlicht
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
-
name
:
Check DirectX SDK
id
:
dxsdk
uses
:
actions/cache@v4
with
:
key
:
dxsdk
path
:
DXSDK
-
name
:
Download DirectX SDK
if
:
steps.dxsdk.outputs.cache-hit != 'true'
id
:
dxsdk-download
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://download.microsoft.com/download/a/e/7/ae743f1f-632b-4809-87a9-aa1bb3458e31/DXSDK_Jun10.exe
-
name
:
Install DirectX SDK
if
:
steps.dxsdk.outputs.cache-hit != 'true'
run
:
|
7z x ${{ steps.dxsdk-download.outputs.filepath }} -aoa
-
name
:
Set DirectX SDK environment variable
run
:
|
$dxsdkPath = Resolve-Path 'DXSDK'
"DXSDK_DIR=$($dxsdkPath.ProviderPath)\" | Out-File -FilePath $env:GITHUB_ENV -Append
-
name
:
Copy premake files
run
:
|
xcopy /E premake\* .
-
name
:
Use premake to generate Visual Studio solution (2019)
if
:
matrix.os == 'windows-2019'
run
:
|
.\premake5.exe vs2019 --winxp-support
-
name
:
Use premake to generate Visual Studio solution (2022)
if
:
matrix.os == 'windows-2022'
run
:
|
.\premake5.exe vs2022
-
name
:
Add msbuild to PATH
uses
:
microsoft/setup-msbuild@v2
-
name
:
Build solution
run
:
|
MSBuild.exe build\YGOPro.sln /m /p:Configuration=Release
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.os }}
path
:
|
bin/release/YGOPro.exe
build-linux
:
strategy
:
fail-fast
:
false
matrix
:
os
:
# - ubuntu-20.04
-
ubuntu-22.04
-
ubuntu-24.04
include
:
# - os: ubuntu-20.04
# premake_version: 5.0.0-beta2
-
os
:
ubuntu-22.04
premake_version
:
5.0.0-beta4
-
os
:
ubuntu-24.04
premake_version
:
5.0.0-beta5
runs-on
:
${{ matrix.os }}
steps
:
-
name
:
Checkout repository with submodules
uses
:
actions/checkout@v4
with
:
fetch-depth
:
1
submodules
:
true
-
name
:
Update submodules
run
:
|
cd ocgcore
git checkout master
git pull origin master
cd ..
# cd script
# git checkout master
# git pull origin master
# cd ..
-
name
:
Install dependencies
run
:
|
sudo apt-get update
sudo apt-get install -y libevent-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libsqlite3-dev libxxf86vm-dev
-
name
:
Download premake
id
:
premake
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/premake/premake-core/releases/download/v${{ matrix.premake_version }}/premake-${{ matrix.premake_version }}-linux.tar.gz
filename
:
premake5.tar.gz
-
name
:
Extract premake
run
:
|
tar xf ${{ steps.premake.outputs.filepath }}
chmod +x ./premake5
-
name
:
Download lua
id
:
lua
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.lua.org/ftp/lua-5.4.7.tar.gz
-
name
:
Extract lua
run
:
|
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
-
name
:
Download irrlicht
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
-
name
:
Copy premake files
run
:
|
cp -r premake/* .
-
name
:
Use premake to generate make files
run
:
|
./premake5 gmake \
--no-use-irrklang \
--freetype-include-dir="/usr/include/freetype2"
-
name
:
Make
run
:
|
cd build
make -j 4 config=release
cd ..
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.os }}
path
:
|
bin/release/YGOPro
build-macos
:
strategy
:
fail-fast
:
false
matrix
:
os
:
-
macos-13
-
macos-15
include
:
-
os
:
macos-13
premake_version
:
5.0.0-beta5
-
os
:
macos-15
premake_version
:
5.0.0-beta5
runs-on
:
${{ matrix.os }}
steps
:
-
name
:
Checkout repository with submodules
uses
:
actions/checkout@v4
with
:
fetch-depth
:
1
submodules
:
true
-
name
:
Update submodules
run
:
|
cd ocgcore
git checkout master
git pull origin master
cd ..
# cd script
# git checkout master
# git pull origin master
# cd ..
# - name: Install dependencies
# run: |
# brew install freetype libevent libx11 sqlite zlib
-
name
:
Download premake
id
:
premake
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/premake/premake-core/releases/download/v${{ matrix.premake_version }}/premake-${{ matrix.premake_version }}-macosx.tar.gz
filename
:
premake5.tar.gz
-
name
:
Extract premake
run
:
|
tar xf ${{ steps.premake.outputs.filepath }}
chmod +x ./premake5
-
name
:
Download lua
id
:
lua
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.lua.org/ftp/lua-5.4.7.tar.gz
-
name
:
Extract lua
run
:
|
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
-
name
:
Download irrlicht
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
-
name
:
Build irrlicht
run
:
|
cd irrlicht/source/Irrlicht/MacOSX
xcodebuild -project MacOSX.xcodeproj
cd ../../../..
-
name
:
Copy premake files
run
:
|
cp -r premake/* .
-
name
:
Use premake to generate make files (Intel)
if
:
runner.arch == 'X64'
run
:
|
./premake5 gmake \
--cc=clang \
--no-use-irrklang \
--freetype-include-dir="/usr/local/include/freetype2" \
--irrlicht-include-dir="../irrlicht/include" \
--irrlicht-lib-dir="../irrlicht/source/Irrlicht/MacOSX/build/Release"
-
name
:
Use premake to generate make files (ARM64)
if
:
runner.arch == 'ARM64'
run
:
|
./premake5 gmake \
--cc=clang \
--no-use-irrklang \
--event-include-dir="/opt/homebrew/include" \
--event-lib-dir="/opt/homebrew/lib" \
--freetype-include-dir="/opt/homebrew/include/freetype2" \
--freetype-lib-dir="/opt/homebrew/lib" \
--sqlite-include-dir="/opt/homebrew/opt/sqlite/include" \
--sqlite-lib-dir="/opt/homebrew/opt/sqlite/lib" \
--irrlicht-include-dir="../irrlicht/include" \
--irrlicht-lib-dir="../irrlicht/source/Irrlicht/MacOSX/build/Release"
-
name
:
Make
run
:
|
cd build
make -j 3 config=release
cd ..
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.os }}
path
:
|
bin/*
premake/irrlicht/premake5.lua
View file @
b1cbe233
...
...
@@ -319,7 +319,7 @@ project "irrlicht"
filter
{
"system:windows"
}
defines
{
"_IRR_WCHAR_FILESYSTEM"
}
includedirs
{
"$(DXSDK_DIR)
i
nclude"
}
includedirs
{
"$(DXSDK_DIR)
I
nclude"
}
libdirs
{
"$(DXSDK_DIR)Lib/x86"
}
links
{
"imm32"
}
...
...
premake5.lua
View file @
b1cbe233
...
...
@@ -49,7 +49,7 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan
newoption
{
trigger
=
'build-ikpmp3'
,
category
=
"YGOPro - irrklang - ikpmp3"
,
description
=
""
}
newoption
{
trigger
=
"winxp-support"
,
category
=
"YGOPro"
,
description
=
""
}
newoption
{
trigger
=
"mac-arm"
,
category
=
"YGOPro"
,
description
=
"
M1
"
}
newoption
{
trigger
=
"mac-arm"
,
category
=
"YGOPro"
,
description
=
"
Cross compile for Apple Silicon
"
}
function
GetParam
(
param
)
return
_OPTIONS
[
param
]
or
os.getenv
(
string.upper
(
string.gsub
(
param
,
"-"
,
"_"
)))
...
...
@@ -63,9 +63,9 @@ end
if
not
BUILD_LUA
then
-- at most times you need to change this if you change BUILD_LUA to false
-- make sure your lua lib is built with C++ and version >= 5.3
LUA_INCLUDE_DIR
=
GetParam
(
"lua-include-dir"
)
or
"/usr/local/include/lua"
LUA_LIB_DIR
=
GetParam
(
"lua-lib-dir"
)
or
"/usr/local/lib"
LUA_LIB_NAME
=
GetParam
(
"lua-lib-name"
)
LUA_INCLUDE_DIR
=
GetParam
(
"lua-include-dir"
)
or
os
.
findheader
(
LUA_LIB_NAME
)
LUA_LIB_DIR
=
GetParam
(
"lua-lib-dir"
)
or
os
.
findlib
(
LUA_LIB_NAME
)
end
if
GetParam
(
"build-event"
)
then
...
...
@@ -74,8 +74,8 @@ elseif GetParam("no-build-event") then
BUILD_EVENT
=
false
end
if
not
BUILD_EVENT
then
EVENT_INCLUDE_DIR
=
GetParam
(
"event-include-dir"
)
or
"/usr/local/include/event2"
EVENT_LIB_DIR
=
GetParam
(
"event-lib-dir"
)
or
"/usr/local/lib"
EVENT_INCLUDE_DIR
=
GetParam
(
"event-include-dir"
)
or
os
.
findheader
(
"event"
)
EVENT_LIB_DIR
=
GetParam
(
"event-lib-dir"
)
or
os
.
findlib
(
"event"
)
end
if
GetParam
(
"build-freetype"
)
then
...
...
@@ -84,13 +84,8 @@ elseif GetParam("no-build-freetype") then
BUILD_FREETYPE
=
false
end
if
not
BUILD_FREETYPE
then
if
os
.
istarget
(
"linux"
)
then
FREETYPE_INCLUDE_DIR
=
"/usr/include/freetype2"
elseif
os
.
istarget
(
"macosx"
)
then
FREETYPE_INCLUDE_DIR
=
"/usr/local/include/freetype2"
end
FREETYPE_INCLUDE_DIR
=
GetParam
(
"freetype-include-dir"
)
or
FREETYPE_INCLUDE_DIR
FREETYPE_LIB_DIR
=
GetParam
(
"freetype-lib-dir"
)
or
"/usr/local/lib"
FREETYPE_INCLUDE_DIR
=
GetParam
(
"freetype-include-dir"
)
or
os
.
findheader
(
"freetype"
)
FREETYPE_LIB_DIR
=
GetParam
(
"freetype-lib-dir"
)
or
os
.
findlib
(
"freetype"
)
end
if
GetParam
(
"build-sqlite"
)
then
...
...
@@ -99,8 +94,8 @@ elseif GetParam("no-build-sqlite") then
BUILD_SQLITE
=
false
end
if
not
BUILD_SQLITE
then
SQLITE_INCLUDE_DIR
=
GetParam
(
"sqlite-include-dir"
)
or
"/usr/local/include"
SQLITE_LIB_DIR
=
GetParam
(
"sqlite-lib-dir"
)
or
"/usr/local/lib"
SQLITE_INCLUDE_DIR
=
GetParam
(
"sqlite-include-dir"
)
or
os
.
findheader
(
"sqlite3"
)
SQLITE_LIB_DIR
=
GetParam
(
"sqlite-lib-dir"
)
or
os
.
findlib
(
"sqlite3"
)
end
if
GetParam
(
"build-irrlicht"
)
then
...
...
@@ -109,8 +104,8 @@ elseif GetParam("no-build-irrlicht") then
BUILD_IRRLICHT
=
false
end
if
not
BUILD_IRRLICHT
then
IRRLICHT_INCLUDE_DIR
=
GetParam
(
"irrlicht-include-dir"
)
or
"/usr/local/include/irrlicht"
IRRLICHT_LIB_DIR
=
GetParam
(
"irrlicht-lib-dir"
)
or
"/usr/local/lib"
IRRLICHT_INCLUDE_DIR
=
GetParam
(
"irrlicht-include-dir"
)
or
os
.
findheader
(
"irrlicht"
)
IRRLICHT_LIB_DIR
=
GetParam
(
"irrlicht-lib-dir"
)
or
os
.
findlib
(
"irrlicht"
)
end
if
GetParam
(
"use-irrklang"
)
then
...
...
@@ -139,7 +134,7 @@ end
if
IRRKLANG_PRO
then
-- irrklang pro can't use the pro lib to debug
IRRKLANG_PRO_RELEASE_LIB_DIR
=
GetParam
(
"irrklang-pro-release-lib-dir"
)
or
"../irrklang/lib/Win32-vs2019"
IRRKLANG_PRO_DEBUG_LIB_DIR
=
GetParam
(
"irrklang-pro-debug-lib-dir"
)
or
"../irrklang/lib/Win32-visualStudio-debug"
IRRKLANG_PRO_DEBUG_LIB_DIR
=
GetParam
(
"irrklang-pro-debug-lib-dir"
)
or
"../irrklang/lib/Win32-visualStudio-debug"
end
BUILD_IKPMP3
=
USE_IRRKLANG
and
(
GetParam
(
"build-ikpmp3"
)
or
IRRKLANG_PRO
)
...
...
@@ -191,7 +186,7 @@ workspace "YGOPro"
targetdir
"bin/debug"
filter
{
"configurations:Release"
,
"action:vs*"
}
flags
{
"LinkTimeOptimization"
}
linktimeoptimization
"On"
staticruntime
"On"
disablewarnings
{
"4244"
,
"4267"
,
"4838"
,
"4577"
,
"4018"
,
"4996"
,
"4477"
,
"4091"
,
"4800"
,
"6011"
,
"6031"
,
"6054"
,
"6262"
}
...
...
@@ -209,7 +204,7 @@ workspace "YGOPro"
vectorextensions
"SSE2"
buildoptions
{
"/utf-8"
}
defines
{
"_CRT_SECURE_NO_WARNINGS"
}
filter
"not action:vs*"
buildoptions
{
"-fno-strict-aliasing"
,
"-Wno-multichar"
,
"-Wno-format-security"
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment