--- /dev/null
+from lib.utils import join_path
+import os
+
+class BuildEnvironment:
+ def __init__(self, workspace_dir) -> None:
+ self.__config_provider = None
+ self.__sources = []
+ self.__headers = []
+ self.__inc_dir = []
+ self.__ws_dir = workspace_dir
+
+ def set_config_provider(self, provider):
+ self.__config_provider = provider
+
+ def config_provider(self):
+ return self.__config_provider
+
+ def add_sources(self, sources):
+ self.__sources += sources
+
+ def add_headers(self, sources):
+ for h in sources:
+ if not os.path.isdir(h):
+ self.__headers.append(h)
+ else:
+ self.__inc_dir.append(h)
+
+ def to_wspath(self, file):
+ path = join_path(self.__ws_dir, file)
+ return os.path.relpath(path, self.__ws_dir)
+
+ def export(self, out_dir):
+ path = os.path.join(out_dir, "sources.list")
+ with open(path, "w") as f:
+ f.write("\n".join(self.__sources))
+
+ path = os.path.join(out_dir, "headers.list")
+ with open(path, "w") as f:
+ f.write("\n".join(self.__headers))
+
+ path = os.path.join(out_dir, "includes.list")
+ with open(path, "w") as f:
+ f.write("\n".join(self.__inc_dir))
\ No newline at end of file