diff --git a/bzlib.h b/bzlib.h index 77e8a02..04d9711 100644 --- a/bzlib.h +++ b/bzlib.h @@ -81,6 +81,9 @@ typedef /* windows.h define small to char */ # undef small # endif +# ifndef WINAPI +# define WINAPI +# endif # ifdef BZ_EXPORT # define BZ_API(func) WINAPI func # define BZ_EXTERN extern diff --git a/libbz2.def b/libbz2.def index 2dc0dd8..80fc2d1 100644 --- a/libbz2.def +++ b/libbz2.def @@ -1,5 +1,5 @@ -LIBRARY LIBBZ2 -DESCRIPTION "libbzip2: library for data compression" +LIBRARY bz2-1 +DESCRIPTION "bz2: library for data compression" EXPORTS BZ2_bzCompressInit BZ2_bzCompress diff --git a/meson.build b/meson.build index e06b169..3ea9e86 100644 --- a/meson.build +++ b/meson.build @@ -24,14 +24,27 @@ if cc.has_function_attribute('visibility') c_args += '-DBZ_EXTERN=__attribute__((__visibility__("default")))' endif -libbzip2 = library( - 'bzip2', - ['blocksort.c', 'huffman.c', 'crctable.c', 'randtable.c', 'compress.c', 'decompress.c', 'bzlib.c'], - c_args : c_args, - gnu_symbol_visibility : 'hidden', - version : meson.project_version(), - install : true, -) +bz_sources = ['blocksort.c', 'huffman.c', 'crctable.c', 'randtable.c', 'compress.c', 'decompress.c', 'bzlib.c'] + +if ['msvc', 'clang-cl', 'intel-cl'].contains(cc.get_id()) + libbzip2 = library( + 'bz2', + bz_sources, + c_args : c_args, + vs_module_defs : 'libbz2.def', + version : meson.project_version(), + install : true, + ) +else + libbzip2 = library( + 'bz2', + bz_sources, + c_args : c_args, + gnu_symbol_visibility : 'hidden', + version : meson.project_version(), + install : true, + ) +endif bzip2 = executable( 'bzip2', @@ -66,4 +79,4 @@ install_headers('bzlib.h') subdir('man') subdir('docs') -subdir('tests') \ No newline at end of file +subdir('tests')