godotengine/platform/platform_builders.py

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

45 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""Functions used to generate source files during build time"""
from pathlib import Path
import methods
def export_icon_builder(target, source, env):
src_path = Path(str(source[0]))
src_name = src_path.stem
platform = src_path.parent.parent.stem
with open(str(source[0]), "r") as file:
svg = file.read()
with methods.generated_wrapper(str(target[0])) as file:
file.write(
f"""\
inline constexpr const char *_{platform}_{src_name}_svg = {methods.to_raw_cstring(svg)};
"""
)
def register_platform_apis_builder(target, source, env):
platforms = source[0].read()
api_inc = "\n".join([f'#include "{p}/api/api.h"' for p in platforms])
api_reg = "\n\t".join([f"register_{p}_api();" for p in platforms])
api_unreg = "\n\t".join([f"unregister_{p}_api();" for p in platforms])
with methods.generated_wrapper(str(target[0])) as file:
file.write(
f"""\
#include "register_platform_apis.h"
{api_inc}
void register_platform_apis() {{
{api_reg}
}}
void unregister_platform_apis() {{
{api_unreg}
}}
"""
)