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
cc9e0a00
Commit
cc9e0a00
authored
May 26, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'patch-build-all' of github.com:mercury233/ygopro into develop-static-build
parents
2eee6be7
2d86d0c3
Pipeline
#36817
failed with stages
in 3 minutes and 4 seconds
Changes
10
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
410 additions
and
165 deletions
+410
-165
.ci/build-opus.sh
.ci/build-opus.sh
+0
-41
.ci/configure-libevent.sh
.ci/configure-libevent.sh
+8
-0
.ci/exec-macos-platform.sh
.ci/exec-macos-platform.sh
+3
-16
.ci/libevent-prebuild.sh
.ci/libevent-prebuild.sh
+0
-20
.github/workflows/build.yml
.github/workflows/build.yml
+292
-34
.gitlab-ci.yml
.gitlab-ci.yml
+20
-18
gframe/premake5.lua
gframe/premake5.lua
+5
-2
premake/event/premake5.lua
premake/event/premake5.lua
+6
-0
premake/miniaudio/premake5.lua
premake/miniaudio/premake5.lua
+18
-9
premake5.lua
premake5.lua
+58
-25
No files found.
.ci/build-opus.sh
deleted
100755 → 0
View file @
2eee6be7
#!/bin/sh
set
-x
set
-o
errexit
if
[
-n
"
$NO_AUDIO
"
]
;
then
echo
"Skipping opus build because NO_AUDIO is set"
exit
0
fi
cd
miniaudio
external_built_dir
=
"
$PWD
/external-built"
is_macos
=
false
if
[
"
$(
uname
)
"
=
"Darwin"
]
;
then
is_macos
=
true
fi
maybe_patch_configure
()
{
if
$is_macos
;
then
sed
-i
.bak
's/-force_cpusubtype_ALL//g'
configure
*
fi
}
build_single_thing
()
{
lib_name
=
"
$1
"
cd
"external/
$lib_name
"
shift
maybe_patch_configure
PKG_CONFIG_PATH
=
"
$external_built_dir
/lib/pkgconfig"
CFLAGS
=
"
$OPUS_FLAGS
"
CXXFLAGS
=
"
$OPUS_FLAGS
"
./configure
--prefix
=
"
$external_built_dir
"
--enable-static
=
yes
--enable-shared
=
no
"
$@
"
make
-j
$(
nproc
)
make
install
cd
../..
}
build_single_thing ogg
build_single_thing opus
build_single_thing opusfile
--disable-examples
--disable-http
build_single_thing vorbis
--with-ogg
=
"
$external_built_dir
"
cd
..
.ci/configure-libevent.sh
0 → 100755
View file @
cc9e0a00
#!/bin/sh
set
-x
set
-o
errexit
cd
event
./configure
--disable-openssl
--enable-static
=
yes
--enable-shared
=
no
sed
-f
make-event-config.sed < config.h
>
./include/event2/event-config.h
cd
..
.ci/exec-macos-platform.sh
View file @
cc9e0a00
...
@@ -4,25 +4,12 @@ set -o errexit
...
@@ -4,25 +4,12 @@ set -o errexit
TARGET_PLATFORM
=
$(
arch
)
TARGET_PLATFORM
=
$(
arch
)
TARGET_YGOPRO_BINARY_PATH
=
./ygopro-platforms/ygopro-platform-
$TARGET_PLATFORM
TARGET_YGOPRO_BINARY_PATH
=
./ygopro-platforms/ygopro-platform-
$TARGET_PLATFORM
export
EVENT_INCLUDE_DIR
=
$PWD
/libevent-stable/include
export
EVENT_LIB_DIR
=
$PWD
/libevent-stable/lib
./.ci/configure-libevent.sh
export
OPUS_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include/opus
export
OPUS_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
export
OPUSFILE_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include/opus
export
OPUSFILE_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
export
VORBIS_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include
export
VORBIS_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
export
OGG_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include
export
OGG_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
export
ACLOCAL
=
aclocal
export
AUTOMAKE
=
automake
./.ci/libevent-prebuild.sh
./.ci/build-opus.sh
rm
-rf
sqlite3/VERSION
rm
-rf
sqlite3/VERSION
./premake5 gmake
--cc
=
clang
--build-freetype
--build-sqlite
./premake5 gmake
--cc
=
clang
cd
build
cd
build
make
config
=
release
-j
$(
sysctl
-n
hw.ncpu
)
make
config
=
release
-j
$(
sysctl
-n
hw.ncpu
)
...
...
.ci/libevent-prebuild.sh
deleted
100755 → 0
View file @
2eee6be7
#!/bin/sh
set
-x
set
-o
errexit
# PROCESSOR_COUNT=4
if
[
-d
"libevent-stable"
]
;
then
rm
-rf
libevent-stable
fi
if
[
!
-d
"libevent-2.1.12-stable"
]
;
then
wget
-O
- https://cdn02.moecube.com:444/ygopro-build-materials/libevent-2.1.12-stable.tar.gz |
tar
zfx -
fi
install_path
=
"
$PWD
/libevent-stable"
cd
libevent-2.1.12-stable
./configure
"--prefix=
$install_path
"
--disable-openssl
--enable-static
=
yes
--enable-shared
=
no
"
$@
"
make
-j
$(
nproc
)
make
install
cd
..
.github/workflows/build.yml
View file @
cc9e0a00
...
@@ -94,7 +94,7 @@ jobs:
...
@@ -94,7 +94,7 @@ jobs:
id
:
freetype
id
:
freetype
uses
:
mercury233/action-cache-download-file@v1.0.0
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
with
:
url
:
http://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.gz
url
:
http
s
://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.gz
-
name
:
Extract freetype
-
name
:
Extract freetype
run
:
|
run
:
|
...
@@ -254,17 +254,21 @@ jobs:
...
@@ -254,17 +254,21 @@ jobs:
strategy
:
strategy
:
fail-fast
:
false
fail-fast
:
false
matrix
:
matrix
:
os
:
name
:
# - ubuntu-20.04
-
ubuntu-22
-
ubuntu-2
2.0
4
-
ubuntu-24
-
ubuntu-
24.04
-
ubuntu-
static-link
include
:
include
:
# - os: ubuntu-20.04
-
name
:
ubuntu-22
# premake_version: 5.0.0-beta2
os
:
ubuntu-22.04
-
os
:
ubuntu-22.04
premake-version
:
5.0.0-beta4
premake_version
:
5.0.0-beta4
-
name
:
ubuntu-24
-
os
:
ubuntu-24.04
os
:
ubuntu-24.04
premake_version
:
5.0.0-beta5
premake-version
:
5.0.0-beta6
-
name
:
ubuntu-static-link
os
:
ubuntu-22.04
premake-version
:
5.0.0-beta4
static-link
:
true
runs-on
:
${{ matrix.os }}
runs-on
:
${{ matrix.os }}
...
@@ -289,13 +293,18 @@ jobs:
...
@@ -289,13 +293,18 @@ jobs:
-
name
:
Install dependencies
-
name
:
Install dependencies
run
:
|
run
:
|
sudo apt-get update
sudo apt-get update
sudo apt-get install -y libevent-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libsqlite3-dev libxxf86vm-dev libopusfile-dev libvorbis-dev
sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libxxf86vm-dev
-
name
:
Install dependencies (dynamic link)
if
:
matrix.static-link !=
true
run
:
|
sudo apt-get install -y libevent-dev libfreetype6-dev libsqlite3-dev libopusfile-dev libvorbis-dev
-
name
:
Download premake
-
name
:
Download premake
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/v${{ matrix.premake
_version }}/premake-${{ matrix.premake_
version }}-linux.tar.gz
url
:
https://github.com/premake/premake-core/releases/download/v${{ matrix.premake
-version }}/premake-${{ matrix.premake-
version }}-linux.tar.gz
filename
:
premake5.tar.gz
filename
:
premake5.tar.gz
-
name
:
Extract premake
-
name
:
Extract premake
...
@@ -303,6 +312,41 @@ jobs:
...
@@ -303,6 +312,41 @@ jobs:
tar xf ${{ steps.premake.outputs.filepath }}
tar xf ${{ steps.premake.outputs.filepath }}
chmod +x ./premake5
chmod +x ./premake5
-
name
:
Download libevent
if
:
matrix.static-link ==
true
id
:
libevent
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
filename
:
libevent.tar.gz
-
name
:
Extract libevent
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.libevent.outputs.filepath }}
mv libevent-2.1.12-stable event
-
name
:
Configure libevent
if
:
matrix.static-link ==
true
run
:
|
cd event
./configure --disable-openssl --enable-static=yes --enable-shared=no
sed -f make-event-config.sed < config.h > ./include/event2/event-config.h
cd ..
-
name
:
Download freetype
if
:
matrix.static-link ==
true
id
:
freetype
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.gz
-
name
:
Extract freetype
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.freetype.outputs.filepath }}
mv freetype-2.13.3 freetype
-
name
:
Download lua
-
name
:
Download lua
id
:
lua
id
:
lua
uses
:
mercury233/action-cache-download-file@v1.0.0
uses
:
mercury233/action-cache-download-file@v1.0.0
...
@@ -314,6 +358,19 @@ jobs:
...
@@ -314,6 +358,19 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
mv lua-5.4.7 lua
-
name
:
Download sqlite
if
:
matrix.static-link ==
true
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
if
:
matrix.static-link ==
true
run
:
|
7z x ${{ steps.sqlite.outputs.filepath }}
mv sqlite-amalgamation-3490100 sqlite3
-
name
:
Download miniaudio
-
name
:
Download miniaudio
run
:
|
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
...
@@ -321,6 +378,65 @@ jobs:
...
@@ -321,6 +378,65 @@ jobs:
cp extras/miniaudio_split/miniaudio.* .
cp extras/miniaudio_split/miniaudio.* .
cd ..
cd ..
-
name
:
Download ogg
if
:
matrix.static-link ==
true
id
:
ogg
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/ogg/releases/download/v1.3.5/libogg-1.3.5.tar.gz
-
name
:
Extract ogg
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.ogg.outputs.filepath }}
mv libogg-1.3.5 miniaudio/external/ogg
-
name
:
Configure ogg
if
:
matrix.static-link ==
true
run
:
|
cd miniaudio/external/ogg
./configure
cd ../../..
-
name
:
Download opus
if
:
matrix.static-link ==
true
id
:
opus
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opus/releases/download/v1.5.2/opus-1.5.2.tar.gz
-
name
:
Extract opus
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.opus.outputs.filepath }}
mv opus-1.5.2 miniaudio/external/opus
-
name
:
Download opusfile
if
:
matrix.static-link ==
true
id
:
opusfile
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opusfile/releases/download/v0.12/opusfile-0.12.tar.gz
-
name
:
Extract opusfile
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.opusfile.outputs.filepath }}
mv opusfile-0.12 miniaudio/external/opusfile
-
name
:
Download vorbis
if
:
matrix.static-link ==
true
id
:
vorbis
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/vorbis/releases/download/v1.3.7/libvorbis-1.3.7.tar.gz
-
name
:
Extract vorbis
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.vorbis.outputs.filepath }}
mv libvorbis-1.3.7 miniaudio/external/vorbis
-
name
:
Download irrlicht
-
name
:
Download irrlicht
run
:
|
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
git clone --depth=1 https://github.com/mercury233/irrlicht
...
@@ -330,20 +446,36 @@ jobs:
...
@@ -330,20 +446,36 @@ jobs:
cp -r premake/* .
cp -r premake/* .
cp -r resource/* .
cp -r resource/* .
-
name
:
Use premake to generate make files
-
name
:
Use premake to generate make files (apt packages)
if
:
matrix.static-link !=
true
run
:
|
run
:
|
./premake5 gmake
./premake5 gmake
-
name
:
Use premake to generate make files (static link)
if
:
matrix.static-link ==
true
run
:
|
./premake5 gmake \
--build-event \
--build-freetype \
--build-sqlite \
--build-opus-vorbis
-
name
:
Make
-
name
:
Make
run
:
|
run
:
|
cd build
cd build
make -j 4 config=release
make -j 4 config=release
cd ..
cd ..
-
name
:
Strip symbols
run
:
|
cd bin/release
strip YGOPro
cd ../..
-
name
:
Upload build artifacts
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
uses
:
actions/upload-artifact@v4
with
:
with
:
name
:
YGOPro-${{ matrix.
os
}}
name
:
YGOPro-${{ matrix.
name
}}
path
:
|
path
:
|
bin/release/YGOPro
bin/release/YGOPro
...
@@ -351,14 +483,36 @@ jobs:
...
@@ -351,14 +483,36 @@ jobs:
strategy
:
strategy
:
fail-fast
:
false
fail-fast
:
false
matrix
:
matrix
:
os
:
name
:
-
macos-13
-
macos-13-intel
-
macos-15
-
macos-13-arm-cross-compile-static-link
-
macos-13-universal-static-link
-
macos-15-arm
-
macos-15-intel-cross-compile-static-link
-
macos-15-universal-static-link
include
:
include
:
-
os
:
macos-13
-
name
:
macos-13-intel
premake_version
:
5.0.0-beta5
os
:
macos-13
-
os
:
macos-15
-
name
:
macos-13-arm-cross-compile-static-link
premake_version
:
5.0.0-beta5
os
:
macos-13
cross-build-arm
:
true
static-link
:
true
-
name
:
macos-13-universal-static-link
os
:
macos-13
cross-build-intel
:
true
cross-build-arm
:
true
static-link
:
true
-
name
:
macos-15-arm
os
:
macos-15
-
name
:
macos-15-intel-cross-compile-static-link
os
:
macos-15
cross-build-intel
:
true
static-link
:
true
-
name
:
macos-15-universal-static-link
os
:
macos-15
cross-build-intel
:
true
cross-build-arm
:
true
static-link
:
true
runs-on
:
${{ matrix.os }}
runs-on
:
${{ matrix.os }}
...
@@ -381,20 +535,49 @@ jobs:
...
@@ -381,20 +535,49 @@ jobs:
# cd ..
# cd ..
-
name
:
Install dependencies
-
name
:
Install dependencies
if
:
matrix.static-link !=
true
run
:
|
run
:
|
brew install freetype libevent libx11 sqlite opus opusfile libvorbis
brew install opus opusfile libvorbis
# brew install sqlite libx11 freetype libevent
-
name
:
Download premake
-
name
:
Install premake
id
:
premake
run
:
|
brew install premake
-
name
:
Download libevent
if
:
matrix.static-link ==
true
id
:
libevent
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/v${{ matrix.premake_version }}/premake-${{ matrix.premake_version }}-macosx
.tar.gz
url
:
https://github.com/
libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable
.tar.gz
filename
:
premake5
.tar.gz
filename
:
libevent
.tar.gz
-
name
:
Extract premake
-
name
:
Extract libevent
if
:
matrix.static-link ==
true
run
:
|
run
:
|
tar xf ${{ steps.premake.outputs.filepath }}
tar xf ${{ steps.libevent.outputs.filepath }}
chmod +x ./premake5
mv libevent-2.1.12-stable event
-
name
:
Configure libevent
if
:
matrix.static-link ==
true
run
:
|
cd event
./configure --disable-openssl --enable-static=yes --enable-shared=no
sed -f make-event-config.sed < config.h > ./include/event2/event-config.h
cd ..
-
name
:
Download freetype
if
:
matrix.static-link ==
true
id
:
freetype
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://downloads.sourceforge.net/freetype/freetype-2.13.3.tar.gz
-
name
:
Extract freetype
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.freetype.outputs.filepath }}
mv freetype-2.13.3 freetype
-
name
:
Download lua
-
name
:
Download lua
id
:
lua
id
:
lua
...
@@ -407,6 +590,19 @@ jobs:
...
@@ -407,6 +590,19 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
mv lua-5.4.7 lua
-
name
:
Download sqlite
if
:
matrix.static-link ==
true
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
if
:
matrix.static-link ==
true
run
:
|
7z x ${{ steps.sqlite.outputs.filepath }}
mv sqlite-amalgamation-3490100 sqlite3
-
name
:
Download miniaudio
-
name
:
Download miniaudio
run
:
|
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
...
@@ -414,6 +610,58 @@ jobs:
...
@@ -414,6 +610,58 @@ jobs:
cp extras/miniaudio_split/miniaudio.* .
cp extras/miniaudio_split/miniaudio.* .
cd ..
cd ..
-
name
:
Download ogg
if
:
matrix.static-link ==
true
id
:
ogg
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/ogg/releases/download/v1.3.5/libogg-1.3.5.tar.gz
-
name
:
Extract ogg
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.ogg.outputs.filepath }}
mv libogg-1.3.5 miniaudio/external/ogg
-
name
:
Download opus
if
:
matrix.static-link ==
true
id
:
opus
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opus/releases/download/v1.5.2/opus-1.5.2.tar.gz
-
name
:
Extract opus
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.opus.outputs.filepath }}
mv opus-1.5.2 miniaudio/external/opus
-
name
:
Download opusfile
if
:
matrix.static-link ==
true
id
:
opusfile
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opusfile/releases/download/v0.12/opusfile-0.12.tar.gz
-
name
:
Extract opusfile
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.opusfile.outputs.filepath }}
mv opusfile-0.12 miniaudio/external/opusfile
-
name
:
Download vorbis
if
:
matrix.static-link ==
true
id
:
vorbis
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/vorbis/releases/download/v1.3.7/libvorbis-1.3.7.tar.gz
-
name
:
Extract vorbis
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.vorbis.outputs.filepath }}
mv libvorbis-1.3.7 miniaudio/external/vorbis
-
name
:
Download irrlicht
-
name
:
Download irrlicht
run
:
|
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
git clone --depth=1 https://github.com/mercury233/irrlicht
...
@@ -423,9 +671,19 @@ jobs:
...
@@ -423,9 +671,19 @@ jobs:
cp -r premake/* .
cp -r premake/* .
cp -r resource/* .
cp -r resource/* .
-
name
:
Use premake to generate make files
-
name
:
Use premake to generate make files (Homebrew packages)
if
:
matrix.static-link !=
true
run
:
|
run
:
|
DYLD_LIBRARY_PATH=$(brew --prefix)/lib ./premake5 gmake --cc=clang
DYLD_LIBRARY_PATH=$(brew --prefix)/lib premake5 gmake
-
name
:
Use premake to generate make files (static link)
if
:
matrix.static-link ==
true
run
:
|
premake5 gmake ${{ matrix.cross-build-intel == true && '--mac-intel' || '' }} ${{ matrix.cross-build-arm == true && '--mac-arm' || '' }} \
--build-event \
--build-freetype \
--build-sqlite \
--build-opus-vorbis
-
name
:
Make
-
name
:
Make
run
:
|
run
:
|
...
@@ -436,6 +694,6 @@ jobs:
...
@@ -436,6 +694,6 @@ jobs:
-
name
:
Upload build artifacts
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
uses
:
actions/upload-artifact@v4
with
:
with
:
name
:
YGOPro-${{ matrix.
os
}}
name
:
YGOPro-${{ matrix.
name
}}
path
:
|
path
:
|
bin/
*
bin/
release/YGOPro.app
.gitlab-ci.yml
View file @
cc9e0a00
...
@@ -22,6 +22,9 @@ mat_common:
...
@@ -22,6 +22,9 @@ mat_common:
# freetype
# freetype
-
wget -O - https://cdn02.moecube.com:444/ygopro-build-materials/freetype-2.13.3.tar.gz | tar zfx -
-
wget -O - https://cdn02.moecube.com:444/ygopro-build-materials/freetype-2.13.3.tar.gz | tar zfx -
-
mv freetype-2.13.3 freetype
-
mv freetype-2.13.3 freetype
# event
-
wget -O - https://cdn02.moecube.com:444/ygopro-build-materials/libevent-2.1.12-stable.tar.gz | tar zfx -
-
mv libevent-2.1.12-stable event
# irrlicht
# irrlicht
-
./.ci/prepare-irrlicht.sh
-
./.ci/prepare-irrlicht.sh
# miniaudio
# miniaudio
...
@@ -83,9 +86,6 @@ mat_windows:
...
@@ -83,9 +86,6 @@ mat_windows:
# premake5.exe
# premake5.exe
-
wget https://cdn02.moecube.com:444/ygopro-build-materials/premake-5.0.0-beta6-windows.zip
-
wget https://cdn02.moecube.com:444/ygopro-build-materials/premake-5.0.0-beta6-windows.zip
-
7z x -y premake-5.0.0-beta6-windows.zip
-
7z x -y premake-5.0.0-beta6-windows.zip
# event
-
wget -O - https://cdn02.moecube.com:444/ygopro-build-materials/libevent-2.1.12-stable.tar.gz | tar zfx -
-
mv libevent-2.1.12-stable event
artifacts
:
artifacts
:
paths
:
paths
:
-
premake5.exe
-
premake5.exe
...
@@ -118,8 +118,22 @@ exec_windows:
...
@@ -118,8 +118,22 @@ exec_windows:
paths
:
paths
:
-
ygopro.exe
-
ygopro.exe
.exec_
linu
x
:
.exec_
uni
x
:
extends
:
._exec_build
extends
:
._exec_build
variables
:
BUILD_FREETYPE
:
'
1'
BUILD_SQLITE
:
'
1'
BUILD_IRRLICHT
:
'
1'
BUILD_EVENT
:
'
1'
BUILD_OPUS_VORBIS
:
'
1'
AUDIO_LIB
:
'
miniaudio'
MINIAUDIO_SUPPORT_OPUS_VORBIS
:
'
1'
MINIAUDIO_BUILD_OPUS_VORBIS
:
'
1'
before_script
:
-
./.ci/configure-libevent.sh
.exec_linux
:
extends
:
.exec_unix
tags
:
tags
:
-
linux
-
linux
image
:
git-registry.moenext.com/mycard/docker-ygopro-builder
image
:
git-registry.moenext.com/mycard/docker-ygopro-builder
...
@@ -127,20 +141,8 @@ exec_windows:
...
@@ -127,20 +141,8 @@ exec_windows:
-
mat_common
-
mat_common
#- mat_linux
#- mat_linux
-
mat_submodules
-
mat_submodules
variables
:
EVENT_INCLUDE_DIR
:
/usr/share/libevent-stable/include
EVENT_LIB_DIR
:
/usr/share/libevent-stable/lib
OPUS_INCLUDE_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/include/opus
OPUS_LIB_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/lib
OPUSFILE_INCLUDE_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/include/opus
OPUSFILE_LIB_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/lib
VORBIS_INCLUDE_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/include
VORBIS_LIB_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/lib
OGG_INCLUDE_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/include
OGG_LIB_DIR
:
$CI_PROJECT_DIR/miniaudio/external-built/lib
script
:
script
:
-
./.ci/build-opus.sh
-
premake5 gmake
-
premake5 gmake --build-freetype --build-sqlite
-
cd build
-
cd build
-
make config=release -j$(nproc)
-
make config=release -j$(nproc)
-
cd ..
-
cd ..
...
@@ -163,7 +165,7 @@ exec_linuxarm:
...
@@ -163,7 +165,7 @@ exec_linuxarm:
image
:
git-registry.moenext.com/mycard/docker-ygopro-builder:fpic
# use a special docker image for arm build, which has fPIC enabled by default
image
:
git-registry.moenext.com/mycard/docker-ygopro-builder:fpic
# use a special docker image for arm build, which has fPIC enabled by default
._exec_macos_platform
:
._exec_macos_platform
:
extends
:
.
_exec_build
extends
:
.
exec_unix
dependencies
:
dependencies
:
-
mat_macos
-
mat_macos
-
mat_common
-
mat_common
...
...
gframe/premake5.lua
View file @
cc9e0a00
...
@@ -16,6 +16,7 @@ project "YGOPro"
...
@@ -16,6 +16,7 @@ project "YGOPro"
else
else
includedirs
{
EVENT_INCLUDE_DIR
}
includedirs
{
EVENT_INCLUDE_DIR
}
libdirs
{
EVENT_LIB_DIR
}
libdirs
{
EVENT_LIB_DIR
}
links
{
"event_pthreads"
}
end
end
if
BUILD_IRRLICHT
then
if
BUILD_IRRLICHT
then
...
@@ -83,15 +84,17 @@ project "YGOPro"
...
@@ -83,15 +84,17 @@ project "YGOPro"
end
end
end
end
filter
"not system:windows"
filter
"not system:windows"
links
{
"
event_pthreads"
,
"
dl"
,
"pthread"
,
"resolv"
}
links
{
"dl"
,
"pthread"
,
"resolv"
}
filter
"system:macosx"
filter
"system:macosx"
openmp
"Off"
openmp
"Off"
links
{
"z"
}
links
{
"z"
}
defines
{
"GL_SILENCE_DEPRECATION"
}
defines
{
"GL_SILENCE_DEPRECATION"
}
if
MAC_ARM
then
if
MAC_ARM
then
buildoptions
{
"--target=arm64-apple-macos12"
}
linkoptions
{
"-arch arm64"
}
linkoptions
{
"-arch arm64"
}
end
end
if
MAC_INTEL
then
linkoptions
{
"-arch x86_64"
}
end
if
USE_AUDIO
and
AUDIO_LIB
==
"irrklang"
then
if
USE_AUDIO
and
AUDIO_LIB
==
"irrklang"
then
links
{
"irrklang"
}
links
{
"irrklang"
}
end
end
...
...
premake/event/premake5.lua
View file @
cc9e0a00
...
@@ -17,3 +17,9 @@ project "event"
...
@@ -17,3 +17,9 @@ project "event"
"xcopy /E /Y $(ProjectDir)..\\event\\WIN32-Code\\nmake $(ProjectDir)..\\event\\include"
}
"xcopy /E /Y $(ProjectDir)..\\event\\WIN32-Code\\nmake $(ProjectDir)..\\event\\include"
}
files
{
"win32select.c"
,
"evthread_win32.c"
,
"buffer_iocp.c"
,
"event_iocp.c"
,
"bufferevent_async.c"
}
files
{
"win32select.c"
,
"evthread_win32.c"
,
"buffer_iocp.c"
,
"event_iocp.c"
,
"bufferevent_async.c"
}
defines
{
"UINT32_MAX=0xffffffffui32"
}
-- quirk of libevent 2.1.2
defines
{
"UINT32_MAX=0xffffffffui32"
}
-- quirk of libevent 2.1.2
filter
"system:linux"
files
{
"evthread_pthread.c"
,
"epoll.c"
,
"epoll_sub.c"
,
"poll.c"
,
"select.c"
}
filter
"system:macosx"
files
{
"evthread_pthread.c"
,
"kqueue.c"
,
"poll.c"
,
"select.c"
}
premake/miniaudio/premake5.lua
View file @
cc9e0a00
...
@@ -33,12 +33,6 @@ project "miniaudio"
...
@@ -33,12 +33,6 @@ project "miniaudio"
"external/opus/celt/rate.c"
,
"external/opus/celt/rate.c"
,
"external/opus/celt/vq.c"
,
"external/opus/celt/vq.c"
,
"external/opus/celt/x86/pitch_avx.c"
,
"external/opus/celt/x86/pitch_sse.c"
,
"external/opus/celt/x86/vq_sse2.c"
,
"external/opus/celt/x86/x86_celt_map.c"
,
"external/opus/celt/x86/x86cpu.c"
,
"external/opus/silk/bwexpander.c"
,
"external/opus/silk/bwexpander.c"
,
"external/opus/silk/bwexpander_32.c"
,
"external/opus/silk/bwexpander_32.c"
,
"external/opus/silk/CNG.c"
,
"external/opus/silk/CNG.c"
,
...
@@ -118,10 +112,25 @@ project "miniaudio"
...
@@ -118,10 +112,25 @@ project "miniaudio"
"external/vorbis/include"
,
"external/vorbis/include"
,
}
}
defines
{
defines
{
"OPUS_BUILD"
,
"USE_ALLOCA"
,
"HAVE_LRINTF"
,
"OP_HAVE_LRINTF"
,
"OPUS_BUILD"
,
"OPUS_X86_PRESUME_SSE"
,
"OPUS_X86_PRESUME_SSE2"
,
"USE_ALLOCA"
,
"OPUS_HAVE_RTCD"
,
"OPUS_X86_MAY_HAVE_SSE"
,
"OPUS_X86_MAY_HAVE_SSE4_1"
,
"OPUS_X86_MAY_HAVE_AVX2"
,
"HAVE_LRINTF"
,
"OP_HAVE_LRINTF"
,
}
}
if
not
TARGET_MAC_ARM
then
files
{
"external/opus/celt/x86/pitch_avx.c"
,
"external/opus/celt/x86/pitch_sse.c"
,
"external/opus/celt/x86/vq_sse2.c"
,
"external/opus/celt/x86/x86_celt_map.c"
,
"external/opus/celt/x86/x86cpu.c"
,
}
defines
{
"OPUS_HAVE_RTCD"
,
"CPU_INFO_BY_ASM"
,
"OPUS_X86_PRESUME_SSE"
,
"OPUS_X86_PRESUME_SSE2"
,
"OPUS_X86_MAY_HAVE_SSE"
,
"OPUS_X86_MAY_HAVE_SSE4_1"
,
"OPUS_X86_MAY_HAVE_AVX2"
,
}
end
else
else
includedirs
{
OPUS_INCLUDE_DIR
,
OPUSFILE_INCLUDE_DIR
,
VORBIS_INCLUDE_DIR
,
OGG_INCLUDE_DIR
}
includedirs
{
OPUS_INCLUDE_DIR
,
OPUSFILE_INCLUDE_DIR
,
VORBIS_INCLUDE_DIR
,
OGG_INCLUDE_DIR
}
end
end
...
...
premake5.lua
View file @
cc9e0a00
-- default global settings
-- Supported systems: Windows, Linux, MacOS
-- Global settings
-- Default: Build Lua, Irrlicht from source on all systems.
-- Don't build event, freetype, sqlite, opus, vorbis on Linux or MacOS, use apt or homebrew,
-- but build them on Windows, due to the lack of package manager on Windows.
BUILD_LUA
=
true
BUILD_LUA
=
true
LUA_LIB_NAME
=
"lua"
LUA_LIB_NAME
=
"lua"
-- change this if you don't build Lua
BUILD_EVENT
=
os
.
istarget
(
"windows"
)
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
-- modified Irrlicht is required, can't use the official one
USE_DXSDK
=
true
USE_DXSDK
=
true
USE_AUDIO
=
true
USE_AUDIO
=
true
AUDIO_LIB
=
"miniaudio"
AUDIO_LIB
=
"miniaudio"
-- can be "miniaudio" or "irrklang"
-- BUILD_MINIAUDIO is always true
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
true
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
true
MINIAUDIO_BUILD_OPUS_VORBIS
=
os
.
istarget
(
"windows"
)
MINIAUDIO_BUILD_OPUS_VORBIS
=
os
.
istarget
(
"windows"
)
-- BUILD_IRRKLANG is impossible because irrKlang is not open source
IRRKLANG_PRO
=
false
IRRKLANG_PRO
=
false
IRRKLANG_PRO_BUILD_IKPMP3
=
false
IRRKLANG_PRO_BUILD_IKPMP3
=
false
--
r
ead settings from command line or environment variables
--
R
ead settings from command line or environment variables
newoption
{
trigger
=
"build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
newoption
{
trigger
=
"build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
newoption
{
trigger
=
"no-build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
newoption
{
trigger
=
"no-build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
...
@@ -74,7 +82,8 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan
...
@@ -74,7 +82,8 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan
newoption
{
trigger
=
'build-ikpmp3'
,
category
=
"YGOPro - irrklang - ikpmp3"
,
description
=
""
}
newoption
{
trigger
=
'build-ikpmp3'
,
category
=
"YGOPro - irrklang - ikpmp3"
,
description
=
""
}
newoption
{
trigger
=
"winxp-support"
,
category
=
"YGOPro"
,
description
=
""
}
newoption
{
trigger
=
"winxp-support"
,
category
=
"YGOPro"
,
description
=
""
}
newoption
{
trigger
=
"mac-arm"
,
category
=
"YGOPro"
,
description
=
"Cross compile for Apple Silicon"
}
newoption
{
trigger
=
"mac-arm"
,
category
=
"YGOPro"
,
description
=
"Compile for Apple Silicon Mac"
}
newoption
{
trigger
=
"mac-intel"
,
category
=
"YGOPro"
,
description
=
"Compile for Intel Mac"
}
-- koishipro specific
-- koishipro specific
...
@@ -136,9 +145,9 @@ elseif GetParam("no-build-lua") then
...
@@ -136,9 +145,9 @@ elseif GetParam("no-build-lua") then
BUILD_LUA
=
false
BUILD_LUA
=
false
end
end
if
not
BUILD_LUA
then
if
not
BUILD_LUA
then
-- at most times you need to change th
is
if you change BUILD_LUA to false
-- at most times you need to change th
ose
if you change BUILD_LUA to false
-- make sure your lua lib is built with C++ and version >= 5.3
-- make sure your lua lib is built with C++ and version >= 5.3
LUA_LIB_NAME
=
GetParam
(
"lua-lib-name"
)
LUA_LIB_NAME
=
GetParam
(
"lua-lib-name"
)
or
LUA_LIB_NAME
LUA_INCLUDE_DIR
=
GetParam
(
"lua-include-dir"
)
or
os
.
findheader
(
"lua.h"
)
LUA_INCLUDE_DIR
=
GetParam
(
"lua-include-dir"
)
or
os
.
findheader
(
"lua.h"
)
LUA_LIB_DIR
=
GetParam
(
"lua-lib-dir"
)
or
os
.
findlib
(
LUA_LIB_NAME
)
LUA_LIB_DIR
=
GetParam
(
"lua-lib-dir"
)
or
os
.
findlib
(
LUA_LIB_NAME
)
end
end
...
@@ -164,7 +173,7 @@ if GetParam("lua-deb") then
...
@@ -164,7 +173,7 @@ if GetParam("lua-deb") then
end
end
if
GetParam
(
"build-event"
)
then
if
GetParam
(
"build-event"
)
then
BUILD_EVENT
=
os
.
istarget
(
"windows"
)
-- only on windows for now
BUILD_EVENT
=
true
elseif
GetParam
(
"no-build-event"
)
then
elseif
GetParam
(
"no-build-event"
)
then
BUILD_EVENT
=
false
BUILD_EVENT
=
false
end
end
...
@@ -305,8 +314,9 @@ function spawn(cmd)
...
@@ -305,8 +314,9 @@ function spawn(cmd)
end
end
function
isRunningUnderRosetta
()
function
isRunningUnderRosetta
()
local
rosetta_result
=
spawn
(
"sysctl -n sysctl.proc_translated 2>/dev/null"
)
local
uname
=
os
.
outputof
(
"uname -m"
)
return
tonumber
(
rosetta_result
)
==
1
local
proctranslated
=
os
.
outputof
(
"sysctl sysctl.proc_translated"
)
return
uname
:
find
(
"arm"
)
or
proctranslated
end
end
function
IsRunningUnderARM
()
function
IsRunningUnderARM
()
...
@@ -348,8 +358,25 @@ function isARM()
...
@@ -348,8 +358,25 @@ function isARM()
return
false
return
false
end
end
IS_ARM
=
isARM
()
or
GetParam
(
"mac-arm"
)
-- detect if the current system is ARM
IS_ARM
=
isARM
()
MAC_ARM
=
os
.
istarget
(
"macosx"
)
and
IS_ARM
if
os
.
istarget
(
"macosx"
)
then
if
GetParam
(
"mac-arm"
)
then
MAC_ARM
=
true
end
if
GetParam
(
"mac-intel"
)
then
MAC_INTEL
=
true
end
if
MAC_ARM
then
TARGET_MAC_ARM
=
true
elseif
not
MAC_INTEL
then
-- automatic target arm64, need extra detect
if
isRunningUnderRosetta
()
then
TARGET_MAC_ARM
=
true
end
end
end
workspace
"YGOPro"
workspace
"YGOPro"
location
"build"
location
"build"
...
@@ -388,7 +415,13 @@ workspace "YGOPro"
...
@@ -388,7 +415,13 @@ workspace "YGOPro"
filter
"system:macosx"
filter
"system:macosx"
libdirs
{
"/usr/local/lib"
}
libdirs
{
"/usr/local/lib"
}
if
MAC_ARM
then
if
MAC_ARM
then
buildoptions
{
"--target=arm64-apple-macos12"
}
buildoptions
{
"-arch arm64"
}
end
if
MAC_INTEL
then
buildoptions
{
"-arch x86_64"
,
"-mavx"
,
"-mfma"
}
end
if
MAC_ARM
and
MAC_INTEL
then
architecture
"universal"
end
end
links
{
"OpenGL.framework"
,
"Cocoa.framework"
,
"IOKit.framework"
}
links
{
"OpenGL.framework"
,
"Cocoa.framework"
,
"IOKit.framework"
}
...
@@ -428,17 +461,6 @@ workspace "YGOPro"
...
@@ -428,17 +461,6 @@ workspace "YGOPro"
filter
{
"configurations:Release"
,
"not action:vs*"
}
filter
{
"configurations:Release"
,
"not action:vs*"
}
symbols
"On"
symbols
"On"
defines
"NDEBUG"
defines
"NDEBUG"
if
not
IS_ARM
then
buildoptions
"-march=native"
end
if
IS_ARM
and
not
MAC_ARM
then
buildoptions
{
"-march=armv8-a"
,
"-mtune=cortex-a72"
,
"-Wno-psabi"
}
pic
"On"
end
filter
{
"configurations:Debug"
,
"action:vs*"
}
filter
{
"configurations:Debug"
,
"action:vs*"
}
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
...
@@ -454,6 +476,17 @@ workspace "YGOPro"
...
@@ -454,6 +476,17 @@ workspace "YGOPro"
filter
"not action:vs*"
filter
"not action:vs*"
buildoptions
{
"-fno-strict-aliasing"
,
"-Wno-multichar"
,
"-Wno-format-security"
}
buildoptions
{
"-fno-strict-aliasing"
,
"-Wno-multichar"
,
"-Wno-format-security"
}
if
not
IS_ARM
and
not
MAC_INTEL
then
buildoptions
"-march=native"
end
if
IS_ARM
and
not
MAC_ARM
then
buildoptions
{
"-march=armv8-a"
,
"-mtune=cortex-a72"
,
"-Wno-psabi"
}
pic
"On"
end
filter
{}
filter
{}
...
...
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