diff --git a/meson.build b/meson.build index 5aefd0725..147f596b0 100644 --- a/meson.build +++ b/meson.build @@ -425,6 +425,7 @@ subdir('src/lib/crypto') subdir('src/zeroconf') subdir('src/fs') +subdir('src/fs/glue') subdir('src/config') subdir('src/tag') subdir('src/neighbor') diff --git a/src/CommandLine.cxx b/src/CommandLine.cxx index 198857783..bc410f53a 100644 --- a/src/CommandLine.cxx +++ b/src/CommandLine.cxx @@ -20,7 +20,7 @@ #include "fs/NarrowPath.hxx" #include "fs/Traits.hxx" #include "fs/FileSystem.hxx" -#include "fs/StandardDirectory.hxx" +#include "fs/glue/StandardDirectory.hxx" #include "event/Features.h" #include "io/uring/Features.h" #include "cmdline/OptionDef.hxx" diff --git a/src/Listen.cxx b/src/Listen.cxx index b9479579b..1bb8e8a7b 100644 --- a/src/Listen.cxx +++ b/src/Listen.cxx @@ -17,7 +17,7 @@ #include "net/SocketUtil.hxx" #include "system/Error.hxx" #include "fs/AllocatedPath.hxx" -#include "fs/StandardDirectory.hxx" +#include "fs/glue/StandardDirectory.hxx" #include "fs/XDG.hxx" #include "util/Domain.hxx" diff --git a/src/Mapper.cxx b/src/Mapper.cxx index 9ee017b1f..37cf20fd9 100644 --- a/src/Mapper.cxx +++ b/src/Mapper.cxx @@ -8,7 +8,7 @@ #include "config.h" #include "Mapper.hxx" #include "fs/AllocatedPath.hxx" -#include "fs/CheckFile.hxx" +#include "fs/glue/CheckFile.hxx" #include "util/StringCompare.hxx" #ifdef ENABLE_DATABASE diff --git a/src/config/Path.cxx b/src/config/Path.cxx index 073c269f4..a10439ba9 100644 --- a/src/config/Path.cxx +++ b/src/config/Path.cxx @@ -5,7 +5,7 @@ #include "Data.hxx" #include "fs/AllocatedPath.hxx" #include "fs/Traits.hxx" -#include "fs/StandardDirectory.hxx" +#include "fs/glue/StandardDirectory.hxx" #include "lib/fmt/RuntimeError.hxx" #include "util/StringSplit.hxx" diff --git a/src/config/meson.build b/src/config/meson.build index 92d8bd080..696f3af14 100644 --- a/src/config/meson.build +++ b/src/config/meson.build @@ -15,12 +15,13 @@ config = static_library( dependencies: [ log_dep, fmt_dep, + fs_dep, + fs_glue_dep, ], ) config_dep = declare_dependency( link_with: config, dependencies: [ - fs_dep, ], ) diff --git a/src/db/Configured.cxx b/src/db/Configured.cxx index 3954a26b1..7c6864eb8 100644 --- a/src/db/Configured.cxx +++ b/src/db/Configured.cxx @@ -9,7 +9,7 @@ #include "config/Block.hxx" #include "fs/AllocatedPath.hxx" #include "fs/FileSystem.hxx" -#include "fs/StandardDirectory.hxx" +#include "fs/glue/StandardDirectory.hxx" #include "lib/fmt/RuntimeError.hxx" DatabasePtr diff --git a/src/db/meson.build b/src/db/meson.build index 0cf4af270..0eb63b632 100644 --- a/src/db/meson.build +++ b/src/db/meson.build @@ -55,6 +55,7 @@ db_glue = static_library( dependencies: [ fmt_dep, log_dep, + fs_glue_dep, ], ) diff --git a/src/fs/CheckFile.cxx b/src/fs/glue/CheckFile.cxx similarity index 89% rename from src/fs/CheckFile.cxx rename to src/fs/glue/CheckFile.cxx index cf93a0596..d70d2d4f8 100644 --- a/src/fs/CheckFile.cxx +++ b/src/fs/glue/CheckFile.cxx @@ -5,10 +5,10 @@ #include "Log.hxx" #include "lib/fmt/PathFormatter.hxx" #include "config/Domain.hxx" -#include "FileInfo.hxx" -#include "Path.hxx" -#include "AllocatedPath.hxx" -#include "DirectoryReader.hxx" +#include "fs/FileInfo.hxx" +#include "fs/Path.hxx" +#include "fs/AllocatedPath.hxx" +#include "fs/DirectoryReader.hxx" #include "system/Error.hxx" void diff --git a/src/fs/CheckFile.hxx b/src/fs/glue/CheckFile.hxx similarity index 78% rename from src/fs/CheckFile.hxx rename to src/fs/glue/CheckFile.hxx index 3a1545c8b..865f56ac8 100644 --- a/src/fs/CheckFile.hxx +++ b/src/fs/glue/CheckFile.hxx @@ -1,8 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later // Copyright The Music Player Daemon Project -#ifndef MPD_FS_CHECK_FILE_HXX -#define MPD_FS_CHECK_FILE_HXX +#pragma once class Path; @@ -12,5 +11,3 @@ class Path; */ void CheckDirectoryReadable(Path path_fs); - -#endif diff --git a/src/fs/StandardDirectory.cxx b/src/fs/glue/StandardDirectory.cxx similarity index 99% rename from src/fs/StandardDirectory.cxx rename to src/fs/glue/StandardDirectory.cxx index d227a58e9..be295df75 100644 --- a/src/fs/StandardDirectory.cxx +++ b/src/fs/glue/StandardDirectory.cxx @@ -6,8 +6,9 @@ #endif #include "StandardDirectory.hxx" -#include "FileSystem.hxx" -#include "XDG.hxx" +#include "fs/AllocatedPath.hxx" +#include "fs/FileSystem.hxx" +#include "fs/XDG.hxx" #include "config.h" #include "util/StringSplit.hxx" diff --git a/src/fs/StandardDirectory.hxx b/src/fs/glue/StandardDirectory.hxx similarity index 92% rename from src/fs/StandardDirectory.hxx rename to src/fs/glue/StandardDirectory.hxx index 1cfe8b684..df154efd5 100644 --- a/src/fs/StandardDirectory.hxx +++ b/src/fs/glue/StandardDirectory.hxx @@ -1,10 +1,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later // Copyright The Music Player Daemon Project -#ifndef MPD_FS_STANDARD_DIRECTORY_HXX -#define MPD_FS_STANDARD_DIRECTORY_HXX +#pragma once -#include "AllocatedPath.hxx" +class AllocatedPath; /** * Obtains configuration directory for the current user. @@ -83,5 +82,3 @@ AllocatedPath GetHomeDir(const char *user_name) noexcept; #endif - -#endif diff --git a/src/fs/glue/meson.build b/src/fs/glue/meson.build new file mode 100644 index 000000000..b880fec05 --- /dev/null +++ b/src/fs/glue/meson.build @@ -0,0 +1,16 @@ +fs_glue = static_library( + 'fs_glue', + 'StandardDirectory.cxx', + 'CheckFile.cxx', + include_directories: inc, + dependencies: [ + fs_dep, + fmt_dep, + log_dep, + util_dep, + ], +) + +fs_glue_dep = declare_dependency( + link_with: fs_glue, +) diff --git a/src/fs/meson.build b/src/fs/meson.build index 5be31cf6a..0fa610796 100644 --- a/src/fs/meson.build +++ b/src/fs/meson.build @@ -10,8 +10,6 @@ fs_sources = [ 'NarrowPath.cxx', 'FileSystem.cxx', 'List.cxx', - 'StandardDirectory.cxx', - 'CheckFile.cxx', 'LookupFile.cxx', 'DirectoryReader.cxx', 'io/TextFile.cxx', @@ -29,7 +27,6 @@ fs = static_library( include_directories: inc, dependencies: [ zlib_dep, - log_dep, ], ) diff --git a/src/storage/Configured.cxx b/src/storage/Configured.cxx index 28e9e77ea..3e6593c6e 100644 --- a/src/storage/Configured.cxx +++ b/src/storage/Configured.cxx @@ -6,8 +6,9 @@ #include "StorageInterface.hxx" #include "plugins/LocalStorage.hxx" #include "config/Data.hxx" -#include "fs/StandardDirectory.hxx" -#include "fs/CheckFile.hxx" +#include "fs/AllocatedPath.hxx" +#include "fs/glue/StandardDirectory.hxx" +#include "fs/glue/CheckFile.hxx" #include "lib/fmt/RuntimeError.hxx" #include "util/UriExtract.hxx" diff --git a/src/storage/meson.build b/src/storage/meson.build index 4ca1715bd..2e523cb44 100644 --- a/src/storage/meson.build +++ b/src/storage/meson.build @@ -20,6 +20,7 @@ storage_glue = static_library( include_directories: inc, dependencies: [ log_dep, + fs_glue_dep, ], )