Добавил возможности определения предопределенных макросов
This commit is contained in:
parent
4ae8ef30c7
commit
e40ca7a120
|
|
@ -1,3 +1,5 @@
|
|||
sh echo '{@builder_path}'
|
||||
|
||||
<include 'scripts/{@setup_steps}'>
|
||||
|
||||
sh echo hello from '{@author}'
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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
|
||||
Loading…
Reference in New Issue