mirror of
https://github.com/nillerusr/source-engine.git
synced 2025-04-22 02:47:24 +00:00
Merge 6ea7368483
into b8558de63e
This commit is contained in:
commit
656354575b
198
.github/workflows/build.yml
vendored
198
.github/workflows/build.yml
vendored
@ -1,111 +1,119 @@
|
|||||||
name: Build
|
name: Build
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
env:
|
||||||
|
WAF_FLAGS: -T debug --disable-warns --prefix=build_hl2
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux-i386:
|
build-linux:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
bits: ['', '--64bits']
|
||||||
|
android: ['']
|
||||||
|
flags: ['', '-d']
|
||||||
|
include:
|
||||||
|
- os: ubuntu-20.04
|
||||||
|
bits: ''
|
||||||
|
android: '--android=armeabi-v7a-hard,4.9,21 --togles'
|
||||||
|
flags: ''
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
DEPS: libopenal-dev libpng-dev libjpeg-dev libfreetype6-dev libfontconfig1-dev libcurl4-gnutls-dev libsdl2-dev zlib1g-dev libbz2-dev libedit-dev
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Build linux-i386
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install common dependencies
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y g++-multilib gcc-multilib
|
||||||
|
- name: Install 32bit dependencies
|
||||||
|
if: ${{ matrix.bits == '' && !matrix.android }}
|
||||||
run: |
|
run: |
|
||||||
scripts/build-ubuntu-i386.sh
|
sudo dpkg --add-architecture i386
|
||||||
|
sudo apt-get update
|
||||||
build-linux-amd64:
|
sudo apt-get install -y aptitude
|
||||||
runs-on: ubuntu-20.04
|
sudo aptitude install -y $(echo $DEPS | sed -r 's/[a-z0-9_\-]+/&:i386/g')
|
||||||
|
echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig" >> $GITHUB_ENV
|
||||||
steps:
|
- name: Install 64bit dependencies
|
||||||
- uses: actions/checkout@v2
|
if: ${{ matrix.bits != '' }}
|
||||||
- name: Build linux-amd64
|
|
||||||
run: |
|
run: |
|
||||||
scripts/build-ubuntu-amd64.sh
|
sudo apt-get install -y $DEPS
|
||||||
|
- name: Install Android dependencies
|
||||||
build-android-armv7a:
|
if: ${{ matrix.android != '' }}
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build android-armv7a
|
|
||||||
run: |
|
run: |
|
||||||
scripts/build-android-armv7a.sh
|
wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip -o /dev/null
|
||||||
|
unzip android-ndk-r10e-linux-x86_64.zip
|
||||||
|
export NDK_HOME=$PWD/android-ndk-r10e/
|
||||||
|
echo "NDK_HOME=$NDK_HOME" >> $GITHUB_ENV
|
||||||
|
echo "ANDROID_NDK_HOME=$NDK_HOME" >> $GITHUB_ENV
|
||||||
|
|
||||||
build-windows-i386:
|
- name: Configure
|
||||||
runs-on: windows-2019
|
run: ./waf configure ${{ matrix.bits }} ${{ matrix.android }} ${{ matrix.flags }} $WAF_FLAGS
|
||||||
|
- name: Build ${{ matrix.os }}
|
||||||
|
run: ./waf install --strip-to-file
|
||||||
|
- name: Upload build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: linux${{matrix.bits}}${{matrix.flags}}${{matrix.android}}
|
||||||
|
path: |
|
||||||
|
build_hl2
|
||||||
|
!build_hl2/**/*.debug
|
||||||
|
- name: Upload debug symbols
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: debug-Linux${{matrix.bits}}${{matrix.flags}}${{matrix.android}}
|
||||||
|
path: |
|
||||||
|
build_hl2/**/*.debug
|
||||||
|
|
||||||
steps:
|
build-macos:
|
||||||
- uses: actions/checkout@v2
|
strategy:
|
||||||
- name: Build windows-i386
|
fail-fast: false
|
||||||
run: |
|
matrix:
|
||||||
git submodule init && git submodule update
|
flags: ['', '-d']
|
||||||
./waf.bat configure -T debug
|
|
||||||
./waf.bat build
|
|
||||||
|
|
||||||
build-windows-amd64:
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build windows-amd64
|
|
||||||
run: |
|
|
||||||
git submodule init && git submodule update
|
|
||||||
./waf.bat configure -T debug -8
|
|
||||||
./waf.bat build
|
|
||||||
|
|
||||||
build-dedicated-windows-i386:
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build dedicated windows-i386
|
|
||||||
run: |
|
|
||||||
git submodule init && git submodule update
|
|
||||||
./waf.bat configure -T debug -d
|
|
||||||
./waf.bat build
|
|
||||||
|
|
||||||
build-dedicated-windows-amd64:
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build dedicated windows-amd64
|
|
||||||
run: |
|
|
||||||
git submodule init && git submodule update
|
|
||||||
./waf.bat configure -T debug -d -8
|
|
||||||
./waf.bat build
|
|
||||||
|
|
||||||
build-dedicated-linux-i386:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build dedicated linux-i386
|
|
||||||
run: |
|
|
||||||
scripts/build-ubuntu-i386.sh -d
|
|
||||||
|
|
||||||
build-dedicated-linux-amd64:
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Build dedicated linux-amd64
|
|
||||||
run: |
|
|
||||||
scripts/build-ubuntu-amd64.sh -d
|
|
||||||
|
|
||||||
build-macos-amd64:
|
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: brew install sdl2
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: ./waf configure --64bits ${{ matrix.flags }} $WAF_FLAGS
|
||||||
- name: Build macos-amd64
|
- name: Build macos-amd64
|
||||||
run: |
|
run: ./waf install --strip-to-file
|
||||||
scripts/build-macos-amd64.sh
|
- name: Upload build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
build-dedicated-macos-amd64:
|
with:
|
||||||
runs-on: macos-latest
|
name: macOS--64bits${{matrix.flags}}${{matrix.android}}
|
||||||
|
path: |
|
||||||
|
build_hl2
|
||||||
|
!build_hl2/**/*.dSYM
|
||||||
|
- name: Upload debug symbols
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: debug-macOS--64bits${{matrix.flags}}${{matrix.android}}
|
||||||
|
path: |
|
||||||
|
build_hl2/**/*.dSYM
|
||||||
|
|
||||||
|
build-windows:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [windows-2019]
|
||||||
|
bits: ['', '--64bits']
|
||||||
|
flags: ['', '-d']
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Build dedicated macos-amd64
|
with:
|
||||||
run: |
|
submodules: recursive
|
||||||
scripts/build-macos-amd64.sh -d
|
|
||||||
|
- name: Configure
|
||||||
|
run: ./waf configure ${{ matrix.bits }} ${{ matrix.flags }} ${{ env.WAF_FLAGS }}
|
||||||
|
- name: Build ${{ matrix.os }}
|
||||||
|
run: ./waf install
|
||||||
|
|
||||||
|
106
.github/workflows/tests.yml
vendored
106
.github/workflows/tests.yml
vendored
@ -1,59 +1,83 @@
|
|||||||
name: Tests
|
name: Tests
|
||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
env:
|
||||||
|
WAF_FLAGS: -T release --disable-warns --prefix=build_tests --tests --sanitize=address,undefined
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests-linux-i386:
|
tests-linux:
|
||||||
runs-on: ubuntu-20.04
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, ubuntu-20.04]
|
||||||
|
bits: ['', '--64bits']
|
||||||
|
android: ['']
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
DEPS: libbz2-dev
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Run tests linux-i386
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install common dependencies
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y g++-multilib gcc-multilib
|
||||||
|
- name: Install 32bit dependencies
|
||||||
|
if: ${{ matrix.bits == '' && !matrix.android }}
|
||||||
run: |
|
run: |
|
||||||
scripts/tests-ubuntu-i386.sh
|
sudo dpkg --add-architecture i386
|
||||||
|
sudo apt-get update
|
||||||
tests-linux-amd64:
|
sudo apt-get install aptitude
|
||||||
runs-on: ubuntu-20.04
|
sudo aptitude install -y $(echo $DEPS | sed -r 's/[a-z0-9_\-]+/&:i386/g')
|
||||||
|
echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig" >> $GITHUB_ENV
|
||||||
steps:
|
- name: Install 64bit dependencies
|
||||||
- uses: actions/checkout@v2
|
if: ${{ matrix.bits != '' }}
|
||||||
- name: Run tests linux-amd64
|
|
||||||
run: |
|
run: |
|
||||||
scripts/tests-ubuntu-amd64.sh
|
sudo apt-get install -y $DEPS
|
||||||
|
|
||||||
tests-macos-amd64:
|
- name: Configure
|
||||||
|
run: ./waf configure ${{ matrix.bits }} $WAF_FLAGS
|
||||||
|
- name: Build ${{ matrix.os }}
|
||||||
|
run: ./waf install
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
cd build_tests
|
||||||
|
LD_LIBRARY_PATH=bin/ ./unittest
|
||||||
|
|
||||||
|
tests-macos:
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Run tests macos-amd64
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: ./waf configure --64bits $WAF_FLAGS
|
||||||
|
- name: Build macos-amd64
|
||||||
|
run: ./waf install
|
||||||
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
scripts/tests-macos-amd64.sh
|
cd build_tests
|
||||||
|
DYLD_LIBRARY_PATH=bin/ ./unittest
|
||||||
tests-windows-i386:
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
|
tests-windows:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [windows-2019]
|
||||||
|
bits: ['', '--64bits']
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Run tests windows-i386
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Configure
|
||||||
|
run: ./waf configure ${{ matrix.bits }} ${{ env.WAF_FLAGS }}
|
||||||
|
|
||||||
|
- name: Build ${{ matrix.os }}
|
||||||
|
run: ./waf install
|
||||||
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
git submodule init && git submodule update
|
cd build_tests
|
||||||
./waf.bat configure -T release --tests --prefix=out/
|
|
||||||
./waf.bat install
|
|
||||||
cd out
|
|
||||||
$env:Path = "bin";
|
$env:Path = "bin";
|
||||||
./unittest.exe
|
./unittest.exe
|
||||||
|
|
||||||
tests-windows-amd64:
|
|
||||||
runs-on: windows-2019
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Run tests windows-amd64
|
|
||||||
run: |
|
|
||||||
git submodule init && git submodule update
|
|
||||||
./waf.bat configure -T release --tests --prefix=out/ -8
|
|
||||||
./waf.bat install
|
|
||||||
cd out
|
|
||||||
$env:Path = "bin";
|
|
||||||
./unittest.exe
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip -o /dev/null
|
|
||||||
unzip android-ndk-r10e-linux-x86_64.zip
|
|
||||||
export ANDROID_NDK_HOME=$PWD/android-ndk-r10e/
|
|
||||||
export NDK_HOME=$PWD/android-ndk-r10e/
|
|
||||||
./waf configure -T debug --android=armeabi-v7a-hard,4.9,21 --togles --disable-warns &&
|
|
||||||
./waf build
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
|
|
||||||
brew install sdl2
|
|
||||||
|
|
||||||
./waf configure -T debug --64bits --disable-warns $* &&
|
|
||||||
./waf build
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -f -y libopenal-dev g++-multilib gcc-multilib libpng-dev libjpeg-dev libfreetype6-dev libfontconfig1-dev libcurl4-gnutls-dev libsdl2-dev zlib1g-dev libbz2-dev libedit-dev
|
|
||||||
|
|
||||||
./waf configure -T debug --64bits --disable-warns $* &&
|
|
||||||
./waf build
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y aptitude
|
|
||||||
sudo aptitude install -y libopenal-dev:i386 g++-multilib gcc-multilib libpng-dev:i386 libjpeg-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcurl4-gnutls-dev:i386 libsdl2-dev:i386 zlib1g-dev:i386 libbz2-dev:i386 libedit-dev:i386
|
|
||||||
|
|
||||||
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig ./waf configure -T debug --disable-warns $* &&
|
|
||||||
./waf build
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
./waf configure -T release --sanitize=address,undefined --disable-warns --tests -8 --prefix=out/ $* &&
|
|
||||||
./waf install &&
|
|
||||||
cd out &&
|
|
||||||
DYLD_LIBRARY_PATH=bin/ ./unittest || exit 1
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y libbz2-dev
|
|
||||||
|
|
||||||
./waf configure -T release --sanitize=address,undefined --disable-warns --tests --prefix=out/ --64bits $* &&
|
|
||||||
./waf install &&
|
|
||||||
cd out &&
|
|
||||||
LD_LIBRARY_PATH=bin/ ./unittest
|
|
@ -1,11 +0,0 @@
|
|||||||
install#!/bin/sh
|
|
||||||
|
|
||||||
git submodule init && git submodule update
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y g++-multilib gcc-multilib libbz2-dev:i386
|
|
||||||
|
|
||||||
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig ./waf configure -T release --sanitize=address,undefined --disable-warns --tests --prefix=out/ $* &&
|
|
||||||
./waf install &&
|
|
||||||
cd out &&
|
|
||||||
LD_LIBRARY_PATH=bin/ ./unittest
|
|
@ -25,6 +25,8 @@ def configure(conf):
|
|||||||
|
|
||||||
if conf.env.DEST_BINFMT == 'mac-o':
|
if conf.env.DEST_BINFMT == 'mac-o':
|
||||||
conf.env.STRIPFLAGS += ['-x']
|
conf.env.STRIPFLAGS += ['-x']
|
||||||
|
conf.find_program('dsymutil', var='DSYMUTIL')
|
||||||
|
conf.env.STRIPFLAGS += ['-S'] # we will use .dSYM instead
|
||||||
return # macOS don't have objcopy
|
return # macOS don't have objcopy
|
||||||
|
|
||||||
# a1ba: I am lazy to add `export OBJCOPY=` everywhere in my scripts
|
# a1ba: I am lazy to add `export OBJCOPY=` everywhere in my scripts
|
||||||
@ -56,11 +58,18 @@ def copy_fun(self, src, tgt):
|
|||||||
c3 = Logs.colors.YELLOW
|
c3 = Logs.colors.YELLOW
|
||||||
c4 = Logs.colors.BLUE
|
c4 = Logs.colors.BLUE
|
||||||
try:
|
try:
|
||||||
if self.generator.bld.options.strip_to_file and self.env.DEST_BINFMT == 'elf':
|
if self.generator.bld.options.strip_to_file:
|
||||||
|
if self.env.DEST_BINFMT == 'elf':
|
||||||
ocopy_cmd = self.env.OBJCOPY + ['--only-keep-debug', tgt, tgt_debug]
|
ocopy_cmd = self.env.OBJCOPY + ['--only-keep-debug', tgt, tgt_debug]
|
||||||
self.generator.bld.cmd_and_log(ocopy_cmd, output=Context.BOTH, quiet=Context.BOTH)
|
self.generator.bld.cmd_and_log(ocopy_cmd, output=Context.BOTH, quiet=Context.BOTH)
|
||||||
if not self.generator.bld.progress_bar:
|
if not self.generator.bld.progress_bar:
|
||||||
Logs.info('%s+ objcopy --only-keep-debug %s%s%s %s%s%s', c1, c4, tgt, c1, c3, tgt_debug, c1)
|
Logs.info('%s+ objcopy --only-keep-debug %s%s%s %s%s%s', c1, c4, tgt, c1, c3, tgt_debug, c1)
|
||||||
|
elif self.env.DEST_BINFMT == 'mac-o':
|
||||||
|
tgt_debug = os.path.splitext(tgt)[0] + '.dSYM'
|
||||||
|
dsymutil_cmd = self.env.DSYMUTIL + [tgt, '-o', tgt_debug]
|
||||||
|
self.generator.bld.cmd_and_log(dsymutil_cmd, output=Context.BOTH, quiet=Context.BOTH)
|
||||||
|
if not self.generator.bld.progress_bar:
|
||||||
|
Logs.info('%s+ dsymutil %s%s%s -o %s%s%s', c1, c4, tgt, c1, c3, tgt_debug, c1)
|
||||||
|
|
||||||
strip_cmd = self.env.STRIP + self.env.STRIPFLAGS + [tgt]
|
strip_cmd = self.env.STRIP + self.env.STRIPFLAGS + [tgt]
|
||||||
self.generator.bld.cmd_and_log(strip_cmd, output=Context.BOTH, quiet=Context.BOTH)
|
self.generator.bld.cmd_and_log(strip_cmd, output=Context.BOTH, quiet=Context.BOTH)
|
||||||
|
@ -211,6 +211,11 @@ class Android:
|
|||||||
return 'llvm-strip'
|
return 'llvm-strip'
|
||||||
return os.path.join(self.gen_binutils_path(), 'strip')
|
return os.path.join(self.gen_binutils_path(), 'strip')
|
||||||
|
|
||||||
|
def objcopy(self):
|
||||||
|
if self.is_host():
|
||||||
|
return 'llvm-objcopy'
|
||||||
|
return os.path.join(self.gen_binutils_path(), 'objcopy')
|
||||||
|
|
||||||
def system_stl(self):
|
def system_stl(self):
|
||||||
# TODO: proper STL support
|
# TODO: proper STL support
|
||||||
return [
|
return [
|
||||||
@ -341,6 +346,7 @@ def configure(conf):
|
|||||||
conf.environ['CC'] = android.cc()
|
conf.environ['CC'] = android.cc()
|
||||||
conf.environ['CXX'] = android.cxx()
|
conf.environ['CXX'] = android.cxx()
|
||||||
conf.environ['STRIP'] = android.strip()
|
conf.environ['STRIP'] = android.strip()
|
||||||
|
conf.environ['OBJCOPY'] = android.objcopy()
|
||||||
conf.env.CFLAGS += android.cflags()
|
conf.env.CFLAGS += android.cflags()
|
||||||
conf.env.CXXFLAGS += android.cflags(True)
|
conf.env.CXXFLAGS += android.cflags(True)
|
||||||
conf.env.LINKFLAGS += android.linkflags()
|
conf.env.LINKFLAGS += android.linkflags()
|
||||||
|
Loading…
Reference in New Issue
Block a user