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
Show 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
TARGET_PLATFORM
=
$(
arch
)
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
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
./.ci/configure-libevent.sh
rm
-rf
sqlite3/VERSION
./premake5 gmake
--cc
=
clang
--build-freetype
--build-sqlite
./premake5 gmake
--cc
=
clang
cd
build
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:
id
:
freetype
uses
:
mercury233/action-cache-download-file@v1.0.0
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
run
:
|
...
...
@@ -254,17 +254,21 @@ jobs:
strategy
:
fail-fast
:
false
matrix
:
os
:
# - ubuntu-20.04
-
ubuntu-2
2.0
4
-
ubuntu-
24.04
name
:
-
ubuntu-22
-
ubuntu-24
-
ubuntu-
static-link
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
-
name
:
ubuntu-22
os
:
ubuntu-22.04
premake-version
:
5.0.0-beta4
-
name
:
ubuntu-24
os
:
ubuntu-24.04
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 }}
...
...
@@ -289,13 +293,18 @@ jobs:
-
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 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
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
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
...
...
@@ -303,6 +312,41 @@ jobs:
tar xf ${{ steps.premake.outputs.filepath }}
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
id
:
lua
uses
:
mercury233/action-cache-download-file@v1.0.0
...
...
@@ -314,6 +358,19 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
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
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
...
...
@@ -321,6 +378,65 @@ jobs:
cp extras/miniaudio_split/miniaudio.* .
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
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
...
...
@@ -330,20 +446,36 @@ jobs:
cp -r premake/* .
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
:
|
./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
run
:
|
cd build
make -j 4 config=release
cd ..
-
name
:
Strip symbols
run
:
|
cd bin/release
strip YGOPro
cd ../..
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.
os
}}
name
:
YGOPro-${{ matrix.
name
}}
path
:
|
bin/release/YGOPro
...
...
@@ -351,14 +483,36 @@ jobs:
strategy
:
fail-fast
:
false
matrix
:
os
:
-
macos-13
-
macos-15
name
:
-
macos-13-intel
-
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
:
-
os
:
macos-13
premake_version
:
5.0.0-beta5
-
os
:
macos-15
premake_version
:
5.0.0-beta5
-
name
:
macos-13-intel
os
:
macos-13
-
name
:
macos-13-arm-cross-compile-static-link
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 }}
...
...
@@ -381,20 +535,49 @@ jobs:
# cd ..
-
name
:
Install dependencies
if
:
matrix.static-link !=
true
run
:
|
brew install freetype libevent libx11 sqlite opus opusfile libvorbis
brew install opus opusfile libvorbis
# brew install sqlite libx11 freetype libevent
-
name
:
Download premake
id
:
premake
-
name
:
Install premake
run
:
|
brew install premake
-
name
:
Download libevent
if
:
matrix.static-link ==
true
id
:
libevent
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
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 premake
-
name
:
Extract libevent
if
:
matrix.static-link ==
true
run
:
|
tar xf ${{ steps.premake.outputs.filepath }}
chmod +x ./premake5
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
id
:
lua
...
...
@@ -407,6 +590,19 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
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
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
...
...
@@ -414,6 +610,58 @@ jobs:
cp extras/miniaudio_split/miniaudio.* .
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
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
...
...
@@ -423,9 +671,19 @@ jobs:
cp -r premake/* .
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
:
|
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
run
:
|
...
...
@@ -436,6 +694,6 @@ jobs:
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.
os
}}
name
:
YGOPro-${{ matrix.
name
}}
path
:
|
bin/
*
bin/
release/YGOPro.app
.gitlab-ci.yml
View file @
cc9e0a00
...
...
@@ -22,6 +22,9 @@ mat_common:
# freetype
-
wget -O - https://cdn02.moecube.com:444/ygopro-build-materials/freetype-2.13.3.tar.gz | tar zfx -
-
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
-
./.ci/prepare-irrlicht.sh
# miniaudio
...
...
@@ -83,9 +86,6 @@ mat_windows:
# premake5.exe
-
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
# 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
:
paths
:
-
premake5.exe
...
...
@@ -118,8 +118,22 @@ exec_windows:
paths
:
-
ygopro.exe
.exec_
linu
x
:
.exec_
uni
x
:
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
:
-
linux
image
:
git-registry.moenext.com/mycard/docker-ygopro-builder
...
...
@@ -127,20 +141,8 @@ exec_windows:
-
mat_common
#- mat_linux
-
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
:
-
./.ci/build-opus.sh
-
premake5 gmake --build-freetype --build-sqlite
-
premake5 gmake
-
cd build
-
make config=release -j$(nproc)
-
cd ..
...
...
@@ -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
._exec_macos_platform
:
extends
:
.
_exec_build
extends
:
.
exec_unix
dependencies
:
-
mat_macos
-
mat_common
...
...
gframe/premake5.lua
View file @
cc9e0a00
...
...
@@ -16,6 +16,7 @@ project "YGOPro"
else
includedirs
{
EVENT_INCLUDE_DIR
}
libdirs
{
EVENT_LIB_DIR
}
links
{
"event_pthreads"
}
end
if
BUILD_IRRLICHT
then
...
...
@@ -83,15 +84,17 @@ project "YGOPro"
end
end
filter
"not system:windows"
links
{
"
event_pthreads"
,
"
dl"
,
"pthread"
,
"resolv"
}
links
{
"dl"
,
"pthread"
,
"resolv"
}
filter
"system:macosx"
openmp
"Off"
links
{
"z"
}
defines
{
"GL_SILENCE_DEPRECATION"
}
if
MAC_ARM
then
buildoptions
{
"--target=arm64-apple-macos12"
}
linkoptions
{
"-arch arm64"
}
end
if
MAC_INTEL
then
linkoptions
{
"-arch x86_64"
}
end
if
USE_AUDIO
and
AUDIO_LIB
==
"irrklang"
then
links
{
"irrklang"
}
end
...
...
premake/event/premake5.lua
View file @
cc9e0a00
...
...
@@ -17,3 +17,9 @@ project "event"
"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"
}
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"
"external/opus/celt/rate.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_32.c"
,
"external/opus/silk/CNG.c"
,
...
...
@@ -118,10 +112,25 @@ project "miniaudio"
"external/vorbis/include"
,
}
defines
{
"OPUS_BUILD"
,
"USE_ALLOCA"
,
"HAVE_LRINTF"
,
"OP_HAVE_LRINTF"
,
"OPUS_BUILD"
,
"USE_ALLOCA"
,
"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_HAVE_RTCD"
,
"OPUS_X86_MAY_HAVE_SSE"
,
"OPUS_X86_MAY_HAVE_SSE4_1"
,
"OPUS_X86_MAY_HAVE_AVX2"
,
"OPUS_X86_MAY_HAVE_SSE"
,
"OPUS_X86_MAY_HAVE_SSE4_1"
,
"OPUS_X86_MAY_HAVE_AVX2"
,
}
end
else
includedirs
{
OPUS_INCLUDE_DIR
,
OPUSFILE_INCLUDE_DIR
,
VORBIS_INCLUDE_DIR
,
OGG_INCLUDE_DIR
}
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
LUA_LIB_NAME
=
"lua"
LUA_LIB_NAME
=
"lua"
-- change this if you don't build Lua
BUILD_EVENT
=
os
.
istarget
(
"windows"
)
BUILD_FREETYPE
=
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_AUDIO
=
true
AUDIO_LIB
=
"miniaudio"
AUDIO_LIB
=
"miniaudio"
-- can be "miniaudio" or "irrklang"
-- BUILD_MINIAUDIO is always true
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
true
MINIAUDIO_BUILD_OPUS_VORBIS
=
os
.
istarget
(
"windows"
)
-- BUILD_IRRKLANG is impossible because irrKlang is not open source
IRRKLANG_PRO
=
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
=
"no-build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
...
...
@@ -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
=
"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
...
...
@@ -136,9 +145,9 @@ elseif GetParam("no-build-lua") then
BUILD_LUA
=
false
end
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
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_LIB_DIR
=
GetParam
(
"lua-lib-dir"
)
or
os
.
findlib
(
LUA_LIB_NAME
)
end
...
...
@@ -164,7 +173,7 @@ if GetParam("lua-deb") then
end
if
GetParam
(
"build-event"
)
then
BUILD_EVENT
=
os
.
istarget
(
"windows"
)
-- only on windows for now
BUILD_EVENT
=
true
elseif
GetParam
(
"no-build-event"
)
then
BUILD_EVENT
=
false
end
...
...
@@ -305,8 +314,9 @@ function spawn(cmd)
end
function
isRunningUnderRosetta
()
local
rosetta_result
=
spawn
(
"sysctl -n sysctl.proc_translated 2>/dev/null"
)
return
tonumber
(
rosetta_result
)
==
1
local
uname
=
os
.
outputof
(
"uname -m"
)
local
proctranslated
=
os
.
outputof
(
"sysctl sysctl.proc_translated"
)
return
uname
:
find
(
"arm"
)
or
proctranslated
end
function
IsRunningUnderARM
()
...
...
@@ -348,8 +358,25 @@ function isARM()
return
false
end
IS_ARM
=
isARM
()
or
GetParam
(
"mac-arm"
)
-- detect if the current system is ARM
MAC_ARM
=
os
.
istarget
(
"macosx"
)
and
IS_ARM
IS_ARM
=
isARM
()
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"
location
"build"
...
...
@@ -388,7 +415,13 @@ workspace "YGOPro"
filter
"system:macosx"
libdirs
{
"/usr/local/lib"
}
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
links
{
"OpenGL.framework"
,
"Cocoa.framework"
,
"IOKit.framework"
}
...
...
@@ -428,17 +461,6 @@ workspace "YGOPro"
filter
{
"configurations:Release"
,
"not action:vs*"
}
symbols
"On"
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*"
}
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
...
...
@@ -454,6 +476,17 @@ workspace "YGOPro"
filter
"not action:vs*"
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
{}
...
...
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