Files
godot/editor/icons/editor_icons_builders.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.4 KiB
Python
Raw Normal View History

"""Functions used to generate source files during build time"""
import os
import methods
# See also `scene/theme/icons/default_theme_icons_builders.py`.
def make_editor_icons_action(target, source, env):
icons_names = []
icons_raw = []
icons_med = []
icons_big = []
for idx, svg in enumerate(source):
path = str(svg)
with open(path, encoding="utf-8", newline="\n") as file:
icons_raw.append(methods.to_raw_cstring(file.read()))
name = os.path.splitext(os.path.basename(path))[0]
icons_names.append(f'"{name}"')
if name.endswith("MediumThumb"):
icons_med.append(str(idx))
elif name.endswith(("BigThumb", "GodotFile")):
icons_big.append(str(idx))
icons_names_str = ",\n\t".join(icons_names)
icons_raw_str = ",\n\t".join(icons_raw)
with methods.generated_wrapper(str(target[0])) as file:
file.write(f"""\
inline constexpr int editor_icons_count = {len(icons_names)};
inline constexpr const char *editor_icons_sources[] = {{
{icons_raw_str}
}};
inline constexpr const char *editor_icons_names[] = {{
{icons_names_str}
}};
inline constexpr int editor_md_thumbs_count = {len(icons_med)};
inline constexpr int editor_md_thumbs_indices[] = {{ {", ".join(icons_med)} }};
inline constexpr int editor_bg_thumbs_count = {len(icons_big)};
inline constexpr int editor_bg_thumbs_indices[] = {{ {", ".join(icons_big)} }};
""")