]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Merge pull request #2738 from cmcgee1024/add_clang_module_map
authorTim Kientzle <kientzle@acm.org>
Mon, 17 Nov 2025 00:17:54 +0000 (16:17 -0800)
committerMartin Matuska <martin@matuska.de>
Mon, 17 Nov 2025 19:21:15 +0000 (20:21 +0100)
Add a clang module map for libarchive

(cherry picked from commit c2333a511dd81de1f8a1c60fe131c9615f4d9277)

libarchive/module.modulemap [new file with mode: 0644]

diff --git a/libarchive/module.modulemap b/libarchive/module.modulemap
new file mode 100644 (file)
index 0000000..70f70fc
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Clang Module Map for libarchive
+ *
+ * What this is:
+ * This file tells the Clang compiler how to treat libarchive as a "module" -
+ * a self-contained unit of code that can be imported all at once instead of
+ * including individual header files. Think of it like a package definition.
+ *
+ * How it works:
+ * - When you write `@import CArchive` (Objective-C) or `import CArchive` (Swift),
+ *   the compiler uses this file to know which headers belong to libarchive
+ * - Instead of processing each #include separately, the compiler can load a
+ *   pre-compiled version of the entire library, making builds faster
+ * - This also provides better dependency tracking and can catch issues like
+ *   conflicting macro definitions between libraries
+ *
+ * When to update:
+ * Update this file whenever:
+ * - New public header files are added to libarchive's libarchive/ directory
+ * - Public headers are removed or renamed
+ * - The library's API structure changes significantly
+ *
+ * You typically don't need to update this for:
+ * - Internal implementation changes
+ * - Private/internal header modifications
+ * - Documentation updates
+ *
+ * NOTE: This only affects projects using Clang with modules enabled. Traditional
+ * #include-based builds will continue to work normally with or without this file.
+ */
+module CArchive {
+  header "archive.h"
+  header "archive_entry.h"
+}