From 2c66d906267b41f0c85e6c7f6297878e8973bbce Mon Sep 17 00:00:00 2001
From: Max Kellermann <max.kellermann@gmail.com>
Date: Mon, 6 Mar 2023 19:30:31 +0100
Subject: [PATCH] fs/io: move to separate library

To eliminate the libio.a dependency.
---
 meson.build             |  1 +
 src/fs/glue/meson.build |  1 +
 src/fs/io/meson.build   | 18 ++++++++++++++++++
 src/fs/meson.build      |  3 ---
 test/meson.build        |  1 +
 5 files changed, 21 insertions(+), 3 deletions(-)
 create mode 100644 src/fs/io/meson.build

diff --git a/meson.build b/meson.build
index 147f596b0..31b45bf66 100644
--- a/meson.build
+++ b/meson.build
@@ -425,6 +425,7 @@ subdir('src/lib/crypto')
 subdir('src/zeroconf')
 
 subdir('src/fs')
+subdir('src/fs/io')
 subdir('src/fs/glue')
 subdir('src/config')
 subdir('src/tag')
diff --git a/src/fs/glue/meson.build b/src/fs/glue/meson.build
index b880fec05..a4d24bc20 100644
--- a/src/fs/glue/meson.build
+++ b/src/fs/glue/meson.build
@@ -5,6 +5,7 @@ fs_glue = static_library(
   include_directories: inc,
   dependencies: [
     fs_dep,
+    fs_io_dep,
     fmt_dep,
     log_dep,
     util_dep,
diff --git a/src/fs/io/meson.build b/src/fs/io/meson.build
new file mode 100644
index 000000000..c411f7b08
--- /dev/null
+++ b/src/fs/io/meson.build
@@ -0,0 +1,18 @@
+fs_io = static_library(
+  'fs_io',
+  'TextFile.cxx',
+  include_directories: inc,
+  dependencies: [
+    fs_dep,
+    io_dep,
+    system_dep,
+    zlib_dep,
+  ],
+)
+
+fs_io_dep = declare_dependency(
+  link_with: fs_io,
+  dependencies: [
+    io_dep,
+  ],
+)
diff --git a/src/fs/meson.build b/src/fs/meson.build
index 25b73dade..e19fd2426 100644
--- a/src/fs/meson.build
+++ b/src/fs/meson.build
@@ -12,7 +12,6 @@ fs_sources = [
   'List.cxx',
   'LookupFile.cxx',
   'DirectoryReader.cxx',
-  'io/TextFile.cxx',
 ]
 
 if is_windows
@@ -26,7 +25,6 @@ fs = static_library(
   fs_sources,
   include_directories: inc,
   dependencies: [
-    zlib_dep,
     shlwapi_dep,
     system_dep,
     icu_dep,
@@ -36,6 +34,5 @@ fs = static_library(
 fs_dep = declare_dependency(
   link_with: fs,
   dependencies: [
-    io_dep,
   ],
 )
diff --git a/test/meson.build b/test/meson.build
index a19cdc3bc..20c88e0ab 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -177,6 +177,7 @@ if zlib_dep.found()
     include_directories: inc,
     dependencies: [
       fs_dep,
+      zlib_dep,
     ],
   )
 endif