diff --git a/scripts/IosSteps.txt b/scripts/IosSteps.txt index 920d338..16383c3 100644 --- a/scripts/IosSteps.txt +++ b/scripts/IosSteps.txt @@ -1,3 +1,5 @@ +sh echo '{@builder_path}' + sh echo hello from '{@author}' diff --git a/scripts/TouchinBuild/taskRunner.py b/scripts/TouchinBuild/taskRunner.py index 5fcc12a..0985a88 100755 --- a/scripts/TouchinBuild/taskRunner.py +++ b/scripts/TouchinBuild/taskRunner.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import os import argparse from Core.FileContentProvider import FileContentProvider from Core.LineConveyor.CommentRemover import CommentRemover @@ -9,6 +10,7 @@ from Core.LineConveyor.Stripper import Stripper from Core.LineConveyor.TextInclude import TextInclude from commands.ValueProvider import ValueProvider from utils.BuildConfigProvider.BuildConfigProvider import BuildConfigProvider +from utils.BuildConfigProvider.PredefinedMacrosBuildConfigProvider import PredefinedMacrosBuildConfigProvider from utils.BuildConfigProvider.ResolvedBuildConfigProvider import ResolvedBuildConfigProvider from utils.IncludeProcessor import IncludeProcessor from utils.MacroProcessor import MacroProcessor @@ -16,11 +18,10 @@ from utils.SettingsProvider.CmdArgsOverriderSettingsProvider import CmdArgsOverr from utils.SettingsProvider.FromFileSettingsProvider import FromFileSettingsProvider from Core.StepsRunner import StepsRunner -#scriptFilePath = os.path.abspath(__file__) -# -#scriptDir = os.path.dirname(scriptFilePath) +scriptFilePath = os.path.abspath(__file__) +scriptDir = os.path.dirname(scriptFilePath) + #baseDir = os.path.join(scriptDir, os.pardir) -# #os.chdir(baseDir) @@ -85,12 +86,15 @@ if __name__ == "__main__": # TODO: перенести в корень комапановки fromFileSettingsProvider = FromFileSettingsProvider() overrideWithCmdSetProvider = CmdArgsOverriderSettingsProvider(fromFileSettingsProvider, overrideArgs) - #resolvedSettingsProvider = ResolvedSettingsProvider(CmdArgsOverriderSettingsProvider) fContentProvider = FileContentProvider() buildConfigProvider = BuildConfigProvider() - resolvedBuildConfigProvider = ResolvedBuildConfigProvider(buildConfigProvider) + predefineBuildConfigProvider = PredefinedMacrosBuildConfigProvider(buildConfigProvider) + predefineBuildConfigProvider.addPredefineMacro('builder_path', scriptDir) + + resolvedBuildConfigProvider = ResolvedBuildConfigProvider(predefineBuildConfigProvider) + runner = TaskRunner(overrideWithCmdSetProvider, fContentProvider, resolvedBuildConfigProvider) runner.run() \ No newline at end of file diff --git a/scripts/TouchinBuild/utils/BuildConfigProvider/PredefinedMacrosBuildConfigProvider.py b/scripts/TouchinBuild/utils/BuildConfigProvider/PredefinedMacrosBuildConfigProvider.py new file mode 100644 index 0000000..2b4d0b3 --- /dev/null +++ b/scripts/TouchinBuild/utils/BuildConfigProvider/PredefinedMacrosBuildConfigProvider.py @@ -0,0 +1,29 @@ +from Core.BuildConfigProviderBase import BuildConfigProviderBase + + +class PredefinedMacrosBuildConfigProvider(BuildConfigProviderBase): + def __init__(self, buildConfigProvider): + BuildConfigProviderBase.__init__(self) + assert buildConfigProvider is not None + + self.inner = buildConfigProvider + self.predefine = {} + + def getConfigs(self, rootConfig): + configsWithoutPreDef = self.inner.getConfigs(rootConfig) + configsWithPreDef = [] + + for bc in configsWithoutPreDef: + for key in self.predefine: + if key not in bc: + bc[key] = self.predefine[key] + + configsWithPreDef.append(bc) + + return configsWithPreDef + + def addPredefineMacro(self, key, value): + assert key is not None + assert value is not None + + self.predefine[key] = value