Implement the ability to disable classes

* This PR adds the ability to disable classes when building.
* For now it's only possible to do this via command like:
  `scons disable_classes=RayCast2D,Area3D`
* Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
This commit is contained in:
reduz 2021-07-11 19:30:33 -03:00
parent fc00a83901
commit 5ad4f26659
44 changed files with 789 additions and 757 deletions

View file

@ -231,6 +231,18 @@ def is_module(path):
return True
def write_disabled_classes(class_list):
f = open("core/disabled_classes.gen.h", "w")
f.write("/* THIS FILE IS GENERATED DO NOT EDIT */\n")
f.write("#ifndef DISABLED_CLASSES_GEN_H\n")
f.write("#define DISABLED_CLASSES_GEN_H\n\n")
for c in class_list:
cs = c.strip()
if cs != "":
f.write("#define ClassDB_Disable_" + cs + " 1\n")
f.write("\n#endif\n")
def write_modules(modules):
includes_cpp = ""
preregister_cpp = ""