Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions docs/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@

(release_0.17.0)=

* Allow building against a system Zlib. Note, this is only required if blosc is still
vendored, and a vendored Zlib is no longer built if blosc is not.
By {user}`Elliott Sales de Andrade <QuLogic>`, {issue}`860`

## 0.17.0

### Breaking changes
Expand Down
6 changes: 4 additions & 2 deletions meson.options
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
option('system_blosc', type: 'feature', value: 'disabled',
description: 'Use system-installed Blosc library')
option('system_zstd', type: 'feature', value: 'disabled',
description: 'Use system-installed Zstandard library')
option('system_lz4', type: 'feature', value: 'disabled',
description: 'Use system-installed LZ4 library')
option('system_zlib', type: 'feature', value: 'disabled',
description: 'Use system-installed Zlib library')
option('system_zstd', type: 'feature', value: 'disabled',
description: 'Use system-installed Zstandard library')
option('sse2', type: 'feature', value: 'auto',
description: 'Enable SSE2 SIMD optimizations')
option('avx2', type: 'feature', value: 'auto',
Expand Down
64 changes: 34 additions & 30 deletions src/numcodecs/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -123,39 +123,43 @@ if not lz4_dep.found()
)
endif

# --- Vendored zlib (always vendored, used by blosc) ---
zlib_sources = files(
'../../c-blosc/internal-complibs/zlib-1.3.1/adler32.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/compress.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/crc32.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/deflate.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzclose.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzlib.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzread.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzwrite.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/infback.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inffast.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inflate.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inftrees.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/trees.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/uncompr.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/zutil.c',
)
zlib_inc = include_directories('../../c-blosc/internal-complibs/zlib-1.3.1')

zlib_lib = static_library('zlib_vendored', zlib_sources,
include_directories: zlib_inc,
c_args: c_args,
)
zlib_dep = declare_dependency(
link_with: zlib_lib,
include_directories: zlib_inc,
)

# --- Vendored blosc ---
blosc_dep = dependency('blosc', required: get_option('system_blosc'))

if not blosc_dep.found()
# --- Vendored zlib ---
zlib_dep = dependency('zlib', required: get_option('system_zlib'))

if not zlib_dep.found()
zlib_sources = files(
'../../c-blosc/internal-complibs/zlib-1.3.1/adler32.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/compress.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/crc32.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/deflate.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzclose.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzlib.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzread.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/gzwrite.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/infback.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inffast.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inflate.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/inftrees.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/trees.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/uncompr.c',
'../../c-blosc/internal-complibs/zlib-1.3.1/zutil.c',
)
zlib_inc = include_directories('../../c-blosc/internal-complibs/zlib-1.3.1')

zlib_lib = static_library('zlib_vendored', zlib_sources,
include_directories: zlib_inc,
c_args: c_args,
)
zlib_dep = declare_dependency(
link_with: zlib_lib,
include_directories: zlib_inc,
)
endif

blosc_sources = files(
'../../c-blosc/blosc/blosc.c',
'../../c-blosc/blosc/blosclz.c',
Expand Down Expand Up @@ -207,7 +211,7 @@ endif
# Extensions with C library dependencies
py.extension_module('blosc',
'blosc.pyx',
dependencies: [blosc_dep, lz4_dep, zlib_dep, zstd_dep],
dependencies: [blosc_dep],
c_args: c_args,
link_args: link_args,
install: true,
Expand Down
Loading