Fixed meson for static build on windows
authorJohan Mabille <johan.mabille@gmail.com>
Thu, 15 Sep 2022 08:18:35 +0000 (10:18 +0200)
committerJohan Mabille <johan.mabille@gmail.com>
Thu, 15 Sep 2022 08:18:35 +0000 (10:18 +0200)
src/lib/meson.build
src/meson.build

index 261981afa163b303934002aaca0d191926719122..393b26851c04303d241b25448afc0d084b4ab97a 100644 (file)
@@ -7,19 +7,27 @@ subdir('dl')
 lib_sources += files('zck.c', 'header.c', 'io.c', 'log.c', 'compint.c', 'error.c')
 
 extra_c_args = []
+lib_suffix = []
+
 if host_machine.system() != 'windows'
     extra_c_args += ['-fvisibility=hidden']
 else
     lib_sources += files(['win32/regerror.c', 'win32/regcomp.c', 'win32/regexec.c', 'win32/tre-mem.c'])
-    extra_c_args += ['-DZCHUNK_EXPORTS=1']
+    if get_option('default_library') == 'shared'
+        extra_c_args += ['-DZCHUNK_EXPORTS=1']
+    else
+        extra_c_args += ['-DZCHUNK_STATIC_LIB']
+        lib_suffix = 'lib'
+    endif
 endif
 
 zcklib = library('zck',
-                        lib_sources,
-                        # in meson 0.48, use `gnu_symbol_visibility: 'hidden'` kwarg
-                        c_args: extra_c_args,
-                        include_directories: inc,
-                        dependencies: [zstd_dep, openssl_dep],
-                        install: true,
-                        version: meson.project_version(),
-                        soversion: so_version)
+                 lib_sources,
+                 # in meson 0.48, use `gnu_symbol_visibility: 'hidden'` kwarg
+                 c_args: extra_c_args,
+                 include_directories: inc,
+                 dependencies: [zstd_dep, openssl_dep],
+                 install: true,
+                 version: meson.project_version(),
+                 soversion: so_version,
+                 name_suffix: lib_suffix)
index 5a2d62519b67c53f1351bd01f01585b53e834b64..215b6d3e0ac9c8ce71ba8874be4e05c871e8f9e4 100644 (file)
@@ -1,7 +1,11 @@
 subdir('lib')
 
+preprocessor_defines = []
 if host_machine.system() == 'windows'
     extra_win_src = ['lib/win32/basename.c', 'lib/win32/ftruncate.c']
+    if get_option('default_library') == 'static'
+        preprocessor_defines = '-DZCHUNK_STATIC_LIB=1'
+    endif
 else
     extra_win_src = []
 endif
@@ -12,7 +16,8 @@ zck = executable(
     include_directories: inc,
     dependencies: argplib,
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )
 unzck = executable(
     'unzck',
@@ -20,7 +25,8 @@ unzck = executable(
     include_directories: inc,
     dependencies: argplib,
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )
 zck_gen_zdict = executable(
     'zck_gen_zdict',
@@ -28,7 +34,8 @@ zck_gen_zdict = executable(
     include_directories: inc,
     dependencies: argplib,
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )
 zck_read_header = executable(
     'zck_read_header',
@@ -36,7 +43,8 @@ zck_read_header = executable(
     include_directories: inc,
     dependencies: argplib,
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )
 zck_delta_size = executable(
     'zck_delta_size',
@@ -44,7 +52,8 @@ zck_delta_size = executable(
     include_directories: inc,
     dependencies: argplib,
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )
 zckdl = executable(
     'zckdl',
@@ -52,5 +61,6 @@ zckdl = executable(
     include_directories: inc,
     dependencies: [argplib, curl_dep],
     link_with: zcklib,
-    install: true
+    install: true,
+    c_args: preprocessor_defines
 )