Beispiel #1
0
    def __parse_phony(self, target_name, it):
        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename), self.name, target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(
                        common_parameters, token, it):
                    pass
                elif token.content == "artefacts":
                    common_parameters.artefacts = self.__parse_list(it)
                elif token.content == "prerequisites":
                    common_parameters.prerequisites = self.__parse_list(it)
                else:
                    ui.parse_error(token)

            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.Phony(common_parameters)
        targets.add_target(target)
Beispiel #2
0
    def __parse_application_target(self, target_name, it):
        link_with = variables.Variable()
        library_dirs = variables.Variable()

        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename), self.name, target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(
                        common_parameters, token, it):
                    pass
                elif self.__try_parse_cxx_parameters(cxx_parameters, token,
                                                     it):
                    pass
                elif token.content == "link_with":
                    link_with = self.__parse_list(it)
                elif token.content == "library_dirs":
                    library_dirs = self.__parse_list(it)
                else:
                    ui.parse_error(token)
            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.Application(common_parameters, cxx_parameters,
                                     link_with, library_dirs)
        targets.add_target(target)
Beispiel #3
0
    def __parse_application_target(self, target_name, it):
        link_with = variables.Variable()
        library_dirs = variables.Variable()

        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename),
            self.name,
            target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(common_parameters, token, it): pass
                elif self.__try_parse_cxx_parameters(cxx_parameters, token, it): pass
                elif token.content == "link_with": link_with = self.__parse_list(it)
                elif token.content == "library_dirs": library_dirs = self.__parse_list(it)
                else: ui.parse_error(token)
            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.Application(common_parameters, cxx_parameters, link_with, library_dirs)
        targets.add_target(target)
Beispiel #4
0
    def __parse_static_library(self, target_name, it):
        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename),
            self.name,
            target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(common_parameters, token, it): pass
                elif self.__try_parse_cxx_parameters(cxx_parameters, token, it): pass
                else: ui.parse_error(token)
            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.StaticLibrary(common_parameters, cxx_parameters)
        targets.add_target(target)
Beispiel #5
0
    def __parse_phony(self, target_name, it):
        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename),
            self.name,
            target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(common_parameters, token, it): pass
                elif token.content == "artefacts": common_parameters.artefacts = self.__parse_list(it)
                elif token.content == "prerequisites": common_parameters.prerequisites = self.__parse_list(it)
                else: ui.parse_error(token)

            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.Phony(common_parameters)
        targets.add_target(target)
Beispiel #6
0
    def __parse_static_library(self, target_name, it):
        common_parameters = CommonTargetParameters(
            os.path.dirname(self.filename), self.name, target_name)

        cxx_parameters = CxxParameters()

        while True:
            token = it.next()
            if token == lexer.Token.LITERAL:
                if self.__try_parse_target_common_parameters(
                        common_parameters, token, it):
                    pass
                elif self.__try_parse_cxx_parameters(cxx_parameters, token,
                                                     it):
                    pass
                else:
                    ui.parse_error(token)
            elif token == lexer.Token.NEWLINE:
                break
            else:
                ui.parse_error(token)

        target = targets.StaticLibrary(common_parameters, cxx_parameters)
        targets.add_target(target)