diff options
author | Yann Collet <Cyan4973@users.noreply.github.com> | 2024-04-20 20:25:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-20 20:25:19 -0700 |
commit | 1232d4c45d18f124e44fe382b11dee095566b610 (patch) | |
tree | 20c353f0a0ae7467ec9420ad7feb04bffcbeae9b | |
parent | da797d0a4354108f396eb2858479de0704f740ab (diff) | |
parent | 5be2a8721d527ae349539b459b35fb628467e00d (diff) | |
download | zstd-1232d4c45d18f124e44fe382b11dee095566b610.tar.gz |
Merge pull request #3931 from bgilbert/pthread
meson: don't add `-pthread` to static linking flags on Windows
-rw-r--r-- | .github/workflows/dev-short-tests.yml | 44 | ||||
-rw-r--r-- | build/meson/meson.build | 9 | ||||
-rw-r--r-- | build/meson/meson_options.txt | 2 |
3 files changed, 52 insertions, 3 deletions
diff --git a/.github/workflows/dev-short-tests.yml b/.github/workflows/dev-short-tests.yml index 5324b38d..b8afcb76 100644 --- a/.github/workflows/dev-short-tests.yml +++ b/.github/workflows/dev-short-tests.yml @@ -237,6 +237,50 @@ jobs: meson test -C builddir/ --print-errorlogs meson install -C builddir --destdir staging/ + meson-mingw-cross-compilation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # tag=v4.1.1 + - name: Install packages + run: | + sudo apt-get -qqq update + sudo apt-get -y install build-essential python3-pip ninja-build {gcc,g++}-mingw-w64-x86-64 + pip install --pre meson + - name: Build with Meson + run: | + cat > cross.ini <<EOF + [binaries] + ar = 'x86_64-w64-mingw32-ar' + c = 'x86_64-w64-mingw32-gcc' + cpp = 'x86_64-w64-mingw32-g++' + ld = 'x86_64-w64-mingw32-ld' + objcopy = 'x86_64-w64-mingw32-objcopy' + objdump = 'x86_64-w64-mingw32-objdump' + strip = 'x86_64-w64-mingw32-strip' + windres = 'x86_64-w64-mingw32-windres' + + [host_machine] + system = 'windows' + endian = 'little' + cpu_family = 'x86_64' + cpu = 'x86_64' + EOF + + # pzstd doesn't build; skip -Dbin_contrib=true + meson setup \ + --buildtype=debugoptimized \ + --cross-file=cross.ini \ + -Db_lundef=false \ + -Dbin_programs=true \ + -Dbin_tests=true \ + -Ddefault_library=both \ + build/meson builddir + ninja -C builddir/ + if grep -- -pthread builddir/meson-private/libzstd.pc; then + echo "Error: found stray pthread dependency" + exit 1 + fi + meson-windows: runs-on: windows-latest steps: diff --git a/build/meson/meson.build b/build/meson/meson.build index 15c56c2b..7ddca2e7 100644 --- a/build/meson/meson.build +++ b/build/meson/meson.build @@ -88,8 +88,13 @@ feature_lz4 = get_option('lz4') # ============================================================================= libm_dep = cc.find_library('m', required: false) -thread_dep = dependency('threads', required: feature_multi_thread) -use_multi_thread = thread_dep.found() +if host_machine_os == os_windows + thread_dep = dependency('', required: false) + use_multi_thread = not feature_multi_thread.disabled() +else + thread_dep = dependency('threads', required: feature_multi_thread) + use_multi_thread = thread_dep.found() +endif # Arguments in dependency should be equivalent to those passed to pkg-config zlib_dep = dependency('zlib', required: feature_zlib) use_zlib = zlib_dep.found() diff --git a/build/meson/meson_options.txt b/build/meson/meson_options.txt index f35cd5fc..47051782 100644 --- a/build/meson/meson_options.txt +++ b/build/meson/meson_options.txt @@ -27,7 +27,7 @@ option('bin_contrib', type: 'boolean', value: false, description: 'Enable contrib build') option('multi_thread', type: 'feature', value: 'enabled', - description: 'Enable multi-threading when pthread is detected') + description: 'Enable multi-threading when pthread or Windows is detected') option('zlib', type: 'feature', value: 'auto', description: 'Enable zlib support') option('lzma', type: 'feature', value: 'auto', |