build: simplify workflow

linux; switch to gcc to support older hlds builds as well
win32: switch to clang as default compiler
This commit is contained in:
dmitry 2021-09-12 13:04:05 +03:00
commit 28e9f44dee
No known key found for this signature in database
GPG key ID: 8297CE728B7A7E37
8 changed files with 72 additions and 120 deletions

View file

@ -12,21 +12,26 @@ on:
types: [published] types: [published]
jobs: jobs:
build: builds:
strategy: strategy:
matrix: matrix:
include: include:
- os: windows-latest - type: windows
bin: yapb.dll bin: yapb.dll
name: windows opts: meson setup build --cross-file=x86-windows
- os: ubuntu-latest - type: linux
bin: yapb.so bin: yapb.so
name: linux opts: CXX=gcc-11 CXX_LD=gold meson setup build
clang: 12
name: ${{ matrix.name }} - type: macos
runs-on: ${{ matrix.os }} bin: yapb.dylib
opts: meson setup build --cross-file=x86-darwin
name: ${{ matrix.type }}
runs-on: ubuntu-latest
container: j4sdk/x86-buildtools:latest
steps: steps:
- name: Checkout Repository - name: Checkout Repository
@ -35,36 +40,9 @@ jobs:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
- name: Setup Windows x86
if: startsWith (runner.os, 'windows')
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
- name: Setup Linux x86
if: startsWith (runner.os, 'linux')
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
gcc-multilib g++-multilib libstdc++6 lib32stdc++6 \
libc6-dev libc6-dev-i386 linux-libc-dev linux-libc-dev:i386
echo "CXX=clang-${{ matrix.clang }}" >> $GITHUB_ENV
echo "CXX_LD=lld-${{ matrix.clang }}" >> $GITHUB_ENV
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Setup Meson
run: |
python -m pip install --upgrade meson ninja
- name: Configure Build - name: Configure Build
run: | run: |
meson setup build ${{ matrix.opts }}
- name: Compile Source - name: Compile Source
run: | run: |
@ -75,32 +53,6 @@ jobs:
with: with:
name: ${{ matrix.bin }} name: ${{ matrix.bin }}
path: build/${{ matrix.bin }} path: build/${{ matrix.bin }}
macos:
name: macos
runs-on: ubuntu-latest
container: j4sdk/macross-x86:latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: true
- name: Configure Build
run: |
CXX_LD=/opt/osxcross/target/bin/i386-apple-darwin15-ld meson setup build --cross-file=x86-darwin
- name: Compile Source
run: |
meson compile -v -C build
- name: Upload Artifacts
uses: actions/upload-artifact@v2
with:
name: yapb.dylib
path: build/yapb.dylib
publish: publish:
if: | if: |
@ -109,7 +61,7 @@ jobs:
name: publish name: publish
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [build, macos] needs: [builds]
steps: steps:
- name: Checkout Repository - name: Checkout Repository

@ -1 +1 @@
Subproject commit 0252d7bd8561047a70ebd6cec421af7d9e1cc9c7 Subproject commit 26f99881d660fb86e7ef377cf2e6ee615be30cea

View file

@ -24,8 +24,8 @@ typedef vec_t vec4_t[4];
typedef int qboolean; typedef int qboolean;
typedef unsigned char byte; typedef unsigned char byte;
#include <crlib/cr-vector.h> #include <crlib/vector.h>
#include <crlib/cr-string.h> #include <crlib/string.h>
// idea from regamedll // idea from regamedll
class string_t final : public cr::DenyCopying { class string_t final : public cr::DenyCopying {

View file

@ -10,7 +10,7 @@
#include <hlsdk/extdll.h> #include <hlsdk/extdll.h>
#include <hlsdk/metamod.h> #include <hlsdk/metamod.h>
#include <crlib/cr-complete.h> #include <crlib/crlib.h>
// use all the cr-library // use all the cr-library
using namespace cr; using namespace cr;

View file

@ -34,7 +34,7 @@ find_program ('hostname', required: true)
cpp = meson.get_compiler ('cpp') cpp = meson.get_compiler ('cpp')
sys = host_machine.system () sys = host_machine.system ()
target = build_machine.cpu_family () target = host_machine.cpu_family ()
version = meson.project_version () version = meson.project_version ()
count = run_command ('git', 'rev-list', '--count', 'HEAD').stdout ().strip () count = run_command ('git', 'rev-list', '--count', 'HEAD').stdout ().strip ()

View file

@ -1039,4 +1039,4 @@ void EntityLinkage::initialize () {
#include "android.cpp" #include "android.cpp"
// override new/delete globally, need to be included in .cpp file // override new/delete globally, need to be included in .cpp file
#include <crlib/cr-override.h> #include <crlib/override.h>

View file

@ -11,30 +11,30 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\ext\crlib\crlib\cr-array.h" /> <ClInclude Include="..\ext\crlib\crlib\array.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-basic.h" /> <ClInclude Include="..\ext\crlib\crlib\basic.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-binheap.h" /> <ClInclude Include="..\ext\crlib\crlib\binheap.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-color.h" /> <ClInclude Include="..\ext\crlib\crlib\color.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-complete.h" /> <ClInclude Include="..\ext\crlib\crlib\crlib.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-deque.h" /> <ClInclude Include="..\ext\crlib\crlib\deque.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-detour.h" /> <ClInclude Include="..\ext\crlib\crlib\detour.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-files.h" /> <ClInclude Include="..\ext\crlib\crlib\files.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-hashmap.h" /> <ClInclude Include="..\ext\crlib\crlib\hashmap.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-http.h" /> <ClInclude Include="..\ext\crlib\crlib\http.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-lambda.h" /> <ClInclude Include="..\ext\crlib\crlib\lambda.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-library.h" /> <ClInclude Include="..\ext\crlib\crlib\library.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-logger.h" /> <ClInclude Include="..\ext\crlib\crlib\logger.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-math.h" /> <ClInclude Include="..\ext\crlib\crlib\math.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-memory.h" /> <ClInclude Include="..\ext\crlib\crlib\memory.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-movable.h" /> <ClInclude Include="..\ext\crlib\crlib\movable.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-override.h" /> <ClInclude Include="..\ext\crlib\crlib\override.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-platform.h" /> <ClInclude Include="..\ext\crlib\crlib\platform.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-random.h" /> <ClInclude Include="..\ext\crlib\crlib\random.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-string.h" /> <ClInclude Include="..\ext\crlib\crlib\string.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-twin.h" /> <ClInclude Include="..\ext\crlib\crlib\twin.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-ulz.h" /> <ClInclude Include="..\ext\crlib\crlib\ulz.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-uniqueptr.h" /> <ClInclude Include="..\ext\crlib\crlib\uniqueptr.h" />
<ClInclude Include="..\ext\crlib\crlib\cr-vector.h" /> <ClInclude Include="..\ext\crlib\crlib\vector.h" />
<ClInclude Include="..\ext\hlsdk\const.h" /> <ClInclude Include="..\ext\hlsdk\const.h" />
<ClInclude Include="..\ext\hlsdk\eiface.h" /> <ClInclude Include="..\ext\hlsdk\eiface.h" />
<ClInclude Include="..\ext\hlsdk\extdll.h" /> <ClInclude Include="..\ext\hlsdk\extdll.h" />

View file

@ -78,83 +78,80 @@
<ClInclude Include="..\inc\module.h"> <ClInclude Include="..\inc\module.h">
<Filter>inc</Filter> <Filter>inc</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-array.h"> <ClInclude Include="..\ext\crlib\crlib\array.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-basic.h"> <ClInclude Include="..\ext\crlib\crlib\basic.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-binheap.h"> <ClInclude Include="..\ext\crlib\crlib\binheap.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-color.h"> <ClInclude Include="..\ext\crlib\crlib\color.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-complete.h"> <ClInclude Include="..\ext\crlib\crlib\crlib.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-deque.h"> <ClInclude Include="..\ext\crlib\crlib\deque.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-detour.h"> <ClInclude Include="..\ext\crlib\crlib\detour.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-files.h"> <ClInclude Include="..\ext\crlib\crlib\files.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-hashmap.h"> <ClInclude Include="..\ext\crlib\crlib\hashmap.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-http.h"> <ClInclude Include="..\ext\crlib\crlib\http.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-lambda.h"> <ClInclude Include="..\ext\crlib\crlib\lambda.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-library.h"> <ClInclude Include="..\ext\crlib\crlib\library.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-logger.h"> <ClInclude Include="..\ext\crlib\crlib\logger.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-math.h"> <ClInclude Include="..\ext\crlib\crlib\math.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-memory.h"> <ClInclude Include="..\ext\crlib\crlib\memory.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-movable.h"> <ClInclude Include="..\ext\crlib\crlib\movable.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-override.h"> <ClInclude Include="..\ext\crlib\crlib\override.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-platform.h"> <ClInclude Include="..\ext\crlib\crlib\platform.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-random.h"> <ClInclude Include="..\ext\crlib\crlib\random.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-string.h"> <ClInclude Include="..\ext\crlib\crlib\string.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-twin.h"> <ClInclude Include="..\ext\crlib\crlib\twin.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-ulz.h"> <ClInclude Include="..\ext\crlib\crlib\ulz.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-uniqueptr.h"> <ClInclude Include="..\ext\crlib\crlib\uniqueptr.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\ext\crlib\crlib\cr-vector.h"> <ClInclude Include="..\ext\crlib\crlib\vector.h">
<Filter>inc\ext\crlib</Filter> <Filter>inc\ext\crlib</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\src\android.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\src\botlib.cpp"> <ClCompile Include="..\src\botlib.cpp">
<Filter>src</Filter> <Filter>src</Filter>
</ClCompile> </ClCompile>
@ -194,6 +191,9 @@
<ClCompile Include="..\src\module.cpp"> <ClCompile Include="..\src\module.cpp">
<Filter>src</Filter> <Filter>src</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\android.cpp">
<Filter>src</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="yapb.rc"> <ResourceCompile Include="yapb.rc">