diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 362d89d0..daaef6bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -63,3 +63,31 @@ jobs: if-no-files-found: 'error' retention-days: 1 compression-level: 0 + + freebsd_builds: + runs-on: ubuntu-latest + strategy: + matrix: + freebsd_arch: [aarch64, amd64] + steps: + - uses: actions/checkout@v4 + + - name: Build freebsd-${{ matrix.freebsd_arch }} Prebuild + uses: vmactions/freebsd-vm@v1 + with: + arch: ${{ matrix.freebsd_arch }} + usesh: true + prepare: | + pkg install -y krb5 node npm pkgconf + run: | + node .github/scripts/build.mjs + + - id: upload + name: Upload prebuild + uses: actions/upload-artifact@v4 + with: + name: build-freebsd-${{ matrix.freebsd_arch }} + path: prebuilds/ + if-no-files-found: 'error' + retention-days: 1 + compression-level: 0 diff --git a/binding.gyp b/binding.gyp index 050ee707..646836cf 100644 --- a/binding.gyp +++ b/binding.gyp @@ -54,14 +54,14 @@ ] } }], - ['OS=="mac" or OS=="linux"', { + ['OS=="mac" or OS=="linux" or OS=="freebsd"', { 'sources': [ 'src/unix/base64.cc', 'src/unix/kerberos_gss.cc', 'src/unix/kerberos_unix.cc' ] }], - ['(OS=="mac") or (OS=="linux" and kerberos_use_rtld!="true")', { + ['(OS=="mac") or ((OS=="linux" or OS=="freebsd") and kerberos_use_rtld!="true")', { 'link_settings': { 'libraries': [ '-lkrb5', @@ -78,7 +78,7 @@ }] ] }], - ['(OS=="linux") and (kerberos_use_rtld=="true")', { + ['(OS=="linux" or OS=="freebsd") and (kerberos_use_rtld=="true")', { 'defines': ['KERBEROS_USE_RTLD=1'], 'link_settings': { 'libraries': [ @@ -86,6 +86,16 @@ ] }, }], + ['OS=="freebsd"', { + 'include_dirs+': [ + '