diff --git a/.github/workflows/afs-cmd-ci.yml b/.github/workflows/afs-cmd-ci.yml index 08a2278..5f88cad 100644 --- a/.github/workflows/afs-cmd-ci.yml +++ b/.github/workflows/afs-cmd-ci.yml @@ -1,42 +1,33 @@ -name: afs.cmd +name: Build afs.cmd on: - push: - branches: [ "master" ] - paths: - - 'AssFontSubset.Core/**.cs' - - 'AssFontSubset.Core/**.csproj' - - 'AssFontSubset.Console/**.cs' - - 'AssFontSubset.Console/**.csproj' - pull_request: - branches: [ "master" ] - paths: - - 'AssFontSubset.Core/**.cs' - - 'AssFontSubset.Core/**.csproj' - - 'AssFontSubset.Console/**.cs' - - 'AssFontSubset.Console/**.csproj' + workflow_run: + workflows: ["Build hb-subset"] + types: + - completed workflow_dispatch: -env: - hb_ver: 10.1.0 - jobs: build: + name: build-${{ matrix.target }}-${{ matrix.arch }} + runs-on: ${{ matrix.os }} + #if: ${{ github.event.workflow_run.conclusion == 'success' }} + env: + identifier: ${{ matrix.target }}-${{ matrix.arch }} strategy: matrix: - env: + harfbuzz_ver: ['10.1.0'] + target: [win, linux-musl, osx] + arch: [x64, arm64] + include: + - os: windows-latest + target: win - os: windows-latest - identifier: win - # - os: macos-latest - # identifier: osx - # - os: ubuntu-latest - # identifier: linux - arch: ['x64'] # 'arm64' + target: linux-musl + - os: macos-latest + target: osx dotnet_version: ['8.x'] - name: build-${{ matrix.env.os }}-${{ matrix.arch }} - runs-on: ${{ matrix.env.os }} - steps: - name: Setup .NET @@ -58,35 +49,34 @@ jobs: dotnet test cd .. - # - name: Install linux arm64 prereqs - # # copy from https://github.com/dn-vm/dnvm - # if: matrix.env.identifier == 'linux' && matrix.arch == 'arm64' - # run: | - # sudo dpkg --add-architecture arm64 - # sudo bash -c 'cat > /etc/apt/sources.list.d/arm64.list < - + - + diff --git a/HarfBuzzBinding/scripts/linux-musl-arm64.ini b/HarfBuzzBinding/scripts/linux-musl-arm64.ini new file mode 100644 index 0000000..53d9573 --- /dev/null +++ b/HarfBuzzBinding/scripts/linux-musl-arm64.ini @@ -0,0 +1,13 @@ +[built-in options] +c_args = ['-target', 'aarch64-linux-musl'] +cpp_args = ['-target', 'aarch64-linux-musl'] +c_link_args = ['-target', 'aarch64-linux-musl'] +cpp_link_args = ['-target', 'aarch64-linux-musl'] + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'aarch64' +endian = 'little' + +; meson --native-file .\build_scripts\zig.ini --cross-file .\build_scripts\zig.ini --cross-file .\build_scripts\linux-musl-arm64.ini -Ddefault_library=static ./build/linux-arm64-static-musl \ No newline at end of file diff --git a/HarfBuzzBinding/scripts/linux-musl-x64.ini b/HarfBuzzBinding/scripts/linux-musl-x64.ini new file mode 100644 index 0000000..a06fb4a --- /dev/null +++ b/HarfBuzzBinding/scripts/linux-musl-x64.ini @@ -0,0 +1,11 @@ +[built-in options] +c_args = ['-target', 'x86_64-linux-musl'] +cpp_args = ['-target', 'x86_64-linux-musl'] +c_link_args = ['-target', 'x86_64-linux-musl'] +cpp_link_args = ['-target', 'x86_64-linux-musl'] + +[host_machine] +system = 'linux' +cpu_family = 'x86_64' +cpu = 'x86_64' +endian = 'little' \ No newline at end of file diff --git a/HarfBuzzBinding/scripts/osx-x64.ini b/HarfBuzzBinding/scripts/osx-x64.ini new file mode 100644 index 0000000..bbbc4a8 --- /dev/null +++ b/HarfBuzzBinding/scripts/osx-x64.ini @@ -0,0 +1,13 @@ +[binaries] +c = ['clang'] +cpp = ['clang'] + +[built-in options] +c_args = ['-target', 'x86_64-apple-darwin'] +cpp_args = ['-target', 'x86_64-apple-darwin'] + +[host_machine] +system = 'darwin' +cpu_family = 'x86_64' +cpu = 'x86_64' +endian = 'little' diff --git a/HarfBuzzBinding/scripts/project.ini b/HarfBuzzBinding/scripts/project.ini new file mode 100644 index 0000000..9f7bfb3 --- /dev/null +++ b/HarfBuzzBinding/scripts/project.ini @@ -0,0 +1,16 @@ +[project options] +glib='disabled' +gobject='disabled' +cairo='disabled' +chafa='disabled' +icu='disabled' +freetype='disabled' +tests='disabled' +introspection='disabled' +docs='disabled' +doc_tests=false +utilities='disabled' +experimental_api=true + +[built-in options] +buildtype='release' \ No newline at end of file diff --git a/HarfBuzzBinding/scripts/win-arm64.ini b/HarfBuzzBinding/scripts/win-arm64.ini new file mode 100644 index 0000000..adb5865 --- /dev/null +++ b/HarfBuzzBinding/scripts/win-arm64.ini @@ -0,0 +1,12 @@ +[binaries] +c = ['cl'] +cpp = ['cl'] + +[host_machine] +system = 'windows' +cpu_family = 'aarch64' +cpu = 'aarch64' +endian = 'little' + +; vcvarsall.bat x64_arm64 +; meson --cross-file .\build_scripts\project.ini --cross-file .\build_scripts\win-arm64.ini -Ddefault_library=static -Db_vscrt=static_from_buildtype ./build/win-arm64-static \ No newline at end of file diff --git a/HarfBuzzBinding/scripts/zig.ini b/HarfBuzzBinding/scripts/zig.ini new file mode 100644 index 0000000..563c07a --- /dev/null +++ b/HarfBuzzBinding/scripts/zig.ini @@ -0,0 +1,10 @@ +[binaries] +c = ['zig', 'cc'] +cpp = ['zig', 'c++'] +ar = ['zig', 'ar'] +ranlib = ['zig', 'ranlib'] +lib = ['zig', 'lib'] +dlltool = ['zig', 'dlltool'] + +[built-in options] +cpp_std = ['c++14'] \ No newline at end of file