コード例 #1
0
    def _process_props(self, global_variables):
        # Processing of file data
        props = self.raw_props

        # May need to reset the prefix variable
        if sys.platform == 'win32' and \
                not Options().get_option('dont_define_prefix'):
            # Use the location of the .pc file to guess a suitable value for
            # the prefix variable. Start by checking if the absolute .pc
            # location ends with '\lib\pkgconfig'.
            abs_loc = dirname(abspath(self.filename))
            if Options().get_option('normalise_paths'):
                abs_loc = normpath(abs_loc)
            else:
                # If not normalising paths, then all paths should be in /
                # format for consistency
                abs_loc = abs_loc.replace('\\', '/')
            if abs_loc.endswith('\\lib\\pkgconfig'):
                self.variables[Options().get_option('prefix_variable')] = \
                        abs_loc.rstrip('\\lib\\pkgconfig')
                ErrorPrinter().debug_print('Replaced {0} with \
{1}'.format(Options().get_option('prefix_variable'),
                self.variables[Options().get_option('prefix_variable')]))

        # Perform substitutions
        for key in props:
            props[key] = substitute(props[key], self.variables,
                                    global_variables)

        # Parse the data
        self.properties = deepcopy(empty_processed_props)
        self.properties['name'] = props['name']
        if props['description']:
            self.properties['description'] = props['description']
        if props['version']:
            try:
                self.properties['version'] = Version(props['version'])
            except BadVersionFormatError as e:
                raise BadVersionFormatError(e.versionstring, props['name'])
        self.properties['requires'] = \
                parse_package_spec_list(props['requires'])
        self.properties['requires.private'] = \
            parse_package_spec_list(props['requires.private']) + \
            self.properties['requires']
        self.properties['conflicts'] = \
                parse_package_spec_list(props['conflicts'])
        self._parse_cflags(props['cflags'], global_variables)
        self._parse_libs(props['libs'], global_variables)
        self._parse_libs(props['libs.private'],
                         global_variables,
                         dest='private.')
コード例 #2
0
ファイル: package.py プロジェクト: apaprocki/bde-tools
    def _process_props(self, global_variables):
        # Processing of file data
        props = self.raw_props

        # May need to reset the prefix variable
        if sys.platform == 'win32' and \
                not Options().get_option('dont_define_prefix'):
            # Use the location of the .pc file to guess a suitable value for
            # the prefix variable. Start by checking if the absolute .pc 
            # location ends with '\lib\pkgconfig'.
            abs_loc = dirname(abspath(self.filename))
            if Options().get_option('normalise_paths'):
                abs_loc = normpath(abs_loc)
            else:
                # If not normalising paths, then all paths should be in /
                # format for consistency
                abs_loc = abs_loc.replace('\\', '/')
            if abs_loc.endswith('\\lib\\pkgconfig'):
                self.variables[Options().get_option('prefix_variable')] = \
                        abs_loc.rstrip('\\lib\\pkgconfig')
                ErrorPrinter().debug_print('Replaced {0} with \
{1}'.format(Options().get_option('prefix_variable'),
            self.variables[Options().get_option('prefix_variable')]))

        # Perform substitutions
        for key in props:
            props[key] = substitute(props[key], self.variables,
                    global_variables)

        # Parse the data
        self.properties = deepcopy(empty_processed_props)
        self.properties['name'] = props['name']
        if props['description']:
            self.properties['description'] = props['description']
        if props['version']:
            try:
                self.properties['version'] = Version(props['version'])
            except BadVersionFormatError as e:
                raise BadVersionFormatError(e.versionstring, props['name'])
        self.properties['requires'] = \
                parse_package_spec_list(props['requires'])
        self.properties['requires.private'] = \
            parse_package_spec_list(props['requires.private']) + \
            self.properties['requires']
        self.properties['conflicts'] = \
                parse_package_spec_list(props['conflicts'])
        self._parse_cflags(props['cflags'])
        self._parse_libs(props['libs'])
        self._parse_libs(props['libs.private'], dest='private.')
コード例 #3
0
ファイル: result.py プロジェクト: exg77/bde-tools
    def find_packages(self, pkglist, recurse):
        """Find all packages specified in pkglist, which must be a
        textual list of package specifications in the form
        'package operator version' (where operator is a comparison
        operator such as <= or ==).

        """
        self.searched_packages = parse_package_spec_list(pkglist)
        if not self.searched_packages:
            raise NoPackagesSpecifiedError
        self._load_dependencies(self.searched_packages, recurse)
コード例 #4
0
ファイル: result.py プロジェクト: prebuilder/pykg-config
    def find_packages(self, pkglist, recurse):
        """Find all packages specified in pkglist, which must be a
        textual list of package specifications in the form
        'package operator version' (where operator is a comparison
        operator such as <= or ==).

        """
        self.searched_packages = parse_package_spec_list(pkglist)
        if not self.searched_packages:
            raise NoPackagesSpecifiedError
        self._load_dependencies(self.searched_packages, recurse)
コード例 #5
0
 def test_parse_package_spec_list(self):
     parsed = packagespeclist.parse_package_spec_list(
         "blag < 2.3, \
             blerg>=5-svn blork, bleck = 15"
     )
     expected = [
         dependency.Dependency("blag", dependency.LESS_THAN, version.Version("2.3")),
         dependency.Dependency("blerg", dependency.GREATER_THAN_EQUAL, version.Version("5-svn")),
         dependency.Dependency("blork", dependency.ALWAYS_MATCH, version.Version()),
         dependency.Dependency("bleck", dependency.EQUAL, version.Version("15")),
     ]
     self.assertEqual(parsed, expected)
コード例 #6
0
ファイル: test_unittests.py プロジェクト: JPEWdev/pykg-config
 def test_parse_package_spec_list(self):
     parsed = packagespeclist.parse_package_spec_list('blag < 2.3, \
             blerg>=5-svn blork, bleck = 15')
     expected = [dependency.Dependency('blag', dependency.LESS_THAN,
                                       version.Version('2.3')),
                 dependency.Dependency('blerg', dependency.GREATER_THAN_EQUAL,
                                       version.Version('5-svn')),
                 dependency.Dependency('blork', dependency.ALWAYS_MATCH,
                                       version.Version()),
                 dependency.Dependency('bleck', dependency.EQUAL,
                                       version.Version('15'))]
     self.assertEqual(parsed, expected)
コード例 #7
0
 def test_parse_package_spec_list(self):
     parsed = packagespeclist.parse_package_spec_list('blag < 2.3, \
             blerg>=5-svn blork, bleck = 15')
     expected = [
         dependency.Dependency('blag', dependency.LESS_THAN,
                               version.Version('2.3')),
         dependency.Dependency('blerg', dependency.GREATER_THAN_EQUAL,
                               version.Version('5-svn')),
         dependency.Dependency('blork', dependency.ALWAYS_MATCH,
                               version.Version()),
         dependency.Dependency('bleck', dependency.EQUAL,
                               version.Version('15'))
     ]
     self.assertEqual(parsed, expected)