Remove ProjectAsLibBuilder's singleton

This commit is contained in:
Ivan Kravets
2022-06-25 20:53:08 +03:00
parent 655eedd7b0
commit 284ccc9e8a

View File

@@ -332,7 +332,9 @@ class LibBuilderBase:
if not LibBuilderBase._INCLUDE_DIRS_CACHE: if not LibBuilderBase._INCLUDE_DIRS_CACHE:
LibBuilderBase._INCLUDE_DIRS_CACHE = [ LibBuilderBase._INCLUDE_DIRS_CACHE = [
self.env.Dir(d) self.env.Dir(d)
for d in ProjectAsLibBuilder.get_instance().get_include_dirs() for d in ProjectAsLibBuilder(
self.envorigin, "$PROJECT_DIR"
).get_include_dirs()
] ]
for lb in self.env.GetLibBuilders(): for lb in self.env.GetLibBuilders():
LibBuilderBase._INCLUDE_DIRS_CACHE.extend( LibBuilderBase._INCLUDE_DIRS_CACHE.extend(
@@ -859,9 +861,6 @@ class PlatformIOLibBuilder(LibBuilderBase):
class ProjectAsLibBuilder(LibBuilderBase): class ProjectAsLibBuilder(LibBuilderBase):
_INSTANCE = None
def __init__(self, env, *args, **kwargs): def __init__(self, env, *args, **kwargs):
# backup original value, will be reset in base.__init__ # backup original value, will be reset in base.__init__
project_src_filter = env.get("SRC_FILTER") project_src_filter = env.get("SRC_FILTER")
@@ -870,12 +869,6 @@ class ProjectAsLibBuilder(LibBuilderBase):
if "test" in self.env.GetBuildType(): if "test" in self.env.GetBuildType():
self.env.ConfigureTestTarget() self.env.ConfigureTestTarget()
@classmethod
def get_instance(cls, *args, **kwargs):
if not cls._INSTANCE:
cls._INSTANCE = ProjectAsLibBuilder(*args, **kwargs)
return cls._INSTANCE
@property @property
def include_dir(self): def include_dir(self):
include_dir = self.env.subst("$PROJECT_INCLUDE_DIR") include_dir = self.env.subst("$PROJECT_INCLUDE_DIR")
@@ -1138,7 +1131,7 @@ def ConfigureProjectLibBuilder(env):
if lb.depbuilders: if lb.depbuilders:
_print_deps_tree(lb, level + 1) _print_deps_tree(lb, level + 1)
project = ProjectAsLibBuilder.get_instance(env, "$PROJECT_DIR") project = ProjectAsLibBuilder(env, "$PROJECT_DIR")
env.Export(dict(projenv=project.env)) env.Export(dict(projenv=project.env))
ldf_mode = LibBuilderBase.lib_ldf_mode.fget(project) # pylint: disable=no-member ldf_mode = LibBuilderBase.lib_ldf_mode.fget(project) # pylint: disable=no-member