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
0
Merge Requests
0
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
YGOPRO-520DIY
ygopro
Commits
14e743ce
Commit
14e743ce
authored
May 26, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'patch-build-all' of
https://github.com/mercury233/ygopro
into develop
parents
1f4aad3e
2d86d0c3
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
371 additions
and
79 deletions
+371
-79
.ci/exec-macos-platform.sh
.ci/exec-macos-platform.sh
+6
-19
.github/workflows/build.yml
.github/workflows/build.yml
+292
-34
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
+44
-15
No files found.
.ci/exec-macos-platform.sh
View file @
14e743ce
...
@@ -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-audio.sh
export
OPUS_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include/opus
export
OPUS_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
rm
-rf
sqlite3/VERSION sqlite3/version
export
OPUSFILE_INCLUDE_DIR
=
$PWD
/miniaudio/external-built/include/opus
export
OPUSFILE_LIB_DIR
=
$PWD
/miniaudio/external-built/lib
./premake5 gmake
--cc
=
clang
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
./premake5 gmake
--cc
=
clang
--build-freetype
--build-sqlite
cd
build
cd
build
make
config
=
release
-j
$(
sysctl
-n
hw.ncpu
)
make
config
=
release
-j
$(
sysctl
-n
hw.ncpu
)
...
...
.github/workflows/build.yml
View file @
14e743ce
...
@@ -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
gframe/premake5.lua
View file @
14e743ce
...
@@ -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"
}
links
{
"dl"
,
"pthread"
}
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 @
14e743ce
...
@@ -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 @
14e743ce
...
@@ -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"
,
"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_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
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 @
14e743ce
-- 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
=
""
}
...
@@ -73,7 +81,8 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan
...
@@ -73,7 +81,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"
}
function
GetParam
(
param
)
function
GetParam
(
param
)
return
_OPTIONS
[
param
]
or
os.getenv
(
string.upper
(
string.gsub
(
param
,
"-"
,
"_"
)))
return
_OPTIONS
[
param
]
or
os.getenv
(
string.upper
(
string.gsub
(
param
,
"-"
,
"_"
)))
...
@@ -93,15 +102,15 @@ elseif GetParam("no-build-lua") then
...
@@ -93,15 +102,15 @@ 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
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
...
@@ -224,12 +233,26 @@ end
...
@@ -224,12 +233,26 @@ end
if
GetParam
(
"winxp-support"
)
and
os
.
istarget
(
"windows"
)
then
if
GetParam
(
"winxp-support"
)
and
os
.
istarget
(
"windows"
)
then
WINXP_SUPPORT
=
true
WINXP_SUPPORT
=
true
end
end
if
os
.
istarget
(
"macosx"
)
then
if
os
.
istarget
(
"macosx"
)
then
MAC_ARM
=
false
if
GetParam
(
"mac-arm"
)
then
if
GetParam
(
"mac-arm"
)
then
MAC_ARM
=
true
MAC_ARM
=
true
end
end
ON_MAC_ARM
=
MAC_ARM
or
os
.
outputof
(
"arch"
)
==
"arm64"
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
local
uname
=
os
.
outputof
(
"uname -m"
)
local
proctranslated
=
os
.
outputof
(
"sysctl sysctl.proc_translated"
)
if
uname
:
find
(
"arm"
)
or
proctranslated
then
print
(
"Detected Apple Silicon Mac"
)
TARGET_MAC_ARM
=
true
end
end
end
end
workspace
"YGOPro"
workspace
"YGOPro"
...
@@ -259,7 +282,13 @@ workspace "YGOPro"
...
@@ -259,7 +282,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"
}
...
@@ -299,9 +328,6 @@ workspace "YGOPro"
...
@@ -299,9 +328,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
MAC_ARM
then
buildoptions
"-march=native"
end
filter
{
"configurations:Debug"
,
"action:vs*"
}
filter
{
"configurations:Debug"
,
"action:vs*"
}
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
...
@@ -317,6 +343,9 @@ workspace "YGOPro"
...
@@ -317,6 +343,9 @@ 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
MAC_ARM
and
not
MAC_INTEL
then
buildoptions
"-march=native"
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