godot/platform/SCsub
Riteo a5cf92664d SCons: unify code generations routine and minimize timestamp changes
Previously, all of the code generation routines would just needlessly
write the same files over and over, even when not needed.

This became a problem with the advent of the experimental ninja backend
for SCons, which can be trivially enabled with a few lines of code and
relies on timestamp changes, making it thus impractical.
2024-03-15 15:43:53 +01:00

27 lines
912 B
Python

#!/usr/bin/env python
import methods
Import("env")
env.platform_sources = []
# Register platform-exclusive APIs
reg_apis_inc = '#include "register_platform_apis.h"\n'
reg_apis = "void register_platform_apis() {\n"
unreg_apis = "void unregister_platform_apis() {\n"
for platform in env.platform_apis:
platform_dir = env.Dir(platform)
env.add_source_files(env.platform_sources, platform + "/api/api.cpp")
reg_apis += "\tregister_" + platform + "_api();\n"
unreg_apis += "\tunregister_" + platform + "_api();\n"
reg_apis_inc += '#include "' + platform + '/api/api.h"\n'
reg_apis_inc += "\n"
reg_apis += "}\n\n"
unreg_apis += "}\n"
methods.write_file_if_needed("register_platform_apis.gen.cpp", reg_apis_inc + reg_apis + unreg_apis)
env.add_source_files(env.platform_sources, "register_platform_apis.gen.cpp")
lib = env.add_library("platform", env.platform_sources)
env.Prepend(LIBS=[lib])