aboutsummaryrefslogtreecommitdiff
path: root/libarchive/module.modulemap
blob: 70f70fc3a1a2dfe5dc7f043c027c688d47291999 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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"
}