mirror of
https://github.com/nlohmann/json.git
synced 2026-10-22 14:08:13 +00:00
Limit Natvis namespace variants to two ABI tags (#5877)
The generator wrote a namespace entry for every combination of ABI tags, so nlohmann_json.natvis doubled with each new tag. With the 12 tags on develop it had reached 57.9 MB, and one more tag would push it past GitHub's 100 MB file limit. It now covers the default namespace, every single tag, and every pair of tags (versioned and unversioned), which is 158 entries / 1 MB with 12 tags. Taken over from #5868. Refs #5863. Signed-off-by: Kartikey <kg704925@gmail.com> Signed-off-by: Niels Lohmann <mail@nlohmann.me> Co-authored-by: Kartikey <kg704925@gmail.com>
This commit is contained in:
1 parent
ef3d350639
commit
3f8677d028
4 files changed
+10
-594519
No files matched your search
@@ -1,6 +1,10 @@
|
||||
# generate_natvis.py
|
||||
|
||||
Generate the Natvis debugger visualization file for all supported namespace combinations.
|
||||
Generate the Natvis debugger visualization file for namespace combinations with up to two ABI tags.
|
||||
|
||||
The checked-in `nlohmann_json.natvis` covers the default namespace (no ABI tags), every single ABI tag, and every pair
|
||||
of ABI tags, with both versioned and unversioned namespace variants. Configurations that enable three or more ABI tags
|
||||
are not covered by this reduced file.
|
||||
|
||||
The ABI tag list and the library version are parsed from
|
||||
`include/nlohmann/detail/abi_macros.hpp`, so this script must be re-run (via
|
||||
|
||||
@@ -78,8 +78,8 @@ if __name__ == '__main__':
|
||||
version = '_v' + (args.version or derived_version).replace('.', '_')
|
||||
inline_namespaces = []
|
||||
|
||||
# generate all combinations of inline namespace names
|
||||
for n in range(0, len(abi_tags) + 1):
|
||||
# generate namespace names for up to two ABI tags
|
||||
for n in range(0, min(len(abi_tags), 2) + 1):
|
||||
for tags in itertools.combinations(abi_tags, n):
|
||||
ns = abi_prefix + ''.join(tags)
|
||||
inline_namespaces += [ns, ns + version]
|
||||
|
||||
Reference in new issue
Block a user