Beispiel #1
0
 def test_link_options_static(self):
     linker = AttrDict(flavor='gcc')
     with mock.patch('bfg9000.shell.execute', mock_execute):
         pkg = PkgConfigPackage(self.tool,
                                'foo',
                                format='elf',
                                kind=PackageKind.static)
         self.assertEqual(pkg.static, True)
         self.assertEqual(
             pkg.link_options(linker),
             opts.option_list('-pthread',
                              opts.lib_dir(Directory(Path('/usr/lib'))),
                              opts.lib_literal('-lfoo'),
                              opts.lib_literal('-lstatic')))
Beispiel #2
0
    def test_link_options_coff(self):
        linker = AttrDict(flavor='gcc', builder=AttrDict(object_format='coff'))
        with mock.patch('bfg9000.shell.execute', mock_execute):
            pkg = PkgConfigPackage('foo', 'elf', SpecifierSet(''),
                                   PackageKind.shared, self.tool)

            self.assertEqual(
                pkg.link_options(linker),
                opts.option_list('-L/usr/lib', opts.lib_literal('-lfoo')))
Beispiel #3
0
    def test_link_options_coff(self):
        linker = AttrDict(flavor='gcc', builder=AttrDict(object_format='coff'))
        with mock.patch('bfg9000.shell.execute', mock_execute):
            pkg = PkgConfigPackage(self.tool, 'foo', format='elf')

            self.assertEqual(
                pkg.link_options(linker),
                opts.option_list('-pthread',
                                 opts.lib_dir(Directory(Path('/usr/lib'))),
                                 opts.lib_literal('-lfoo')))
Beispiel #4
0
 def check_package(self, pkg):
     self.assertEqual(pkg.name, 'foo')
     self.assertEqual(pkg.compile_options(self.compiler), option_list(
         '/DMACRO', opts.include_dir(HeaderDirectory(Path('/path')))
     ))
     self.assertEqual(pkg.link_options(self.linker), option_list(
         '/DEBUG', opts.lib_dir(Directory(Path('/path'))),
         opts.lib_literal('foo.lib'),
         (opts.rpath_dir(Path('/path')) if self.platform_name == 'linux'
          else None)
     ))
Beispiel #5
0
    def test_link_options_elf_uninst(self):
        linker = AttrDict(flavor='gcc', builder=AttrDict(object_format='elf'))
        with mock.patch('bfg9000.shell.execute', mock_execute_uninst):
            pkg = PkgConfigPackage('foo', 'elf', SpecifierSet(''),
                                   PackageKind.shared, self.tool)

            self.assertEqual(
                pkg.link_options(linker),
                opts.option_list(
                    '-L/path/to/build/foo', opts.lib_literal('-lfoo'),
                    opts.rpath_dir(Path('/path/to/build/foo'), 'uninstalled'),
                    opts.rpath_dir(Path('/usr/lib'), 'installed')))
Beispiel #6
0
    def test_link_options_macho_uninst(self):
        linker = AttrDict(flavor='gcc',
                          builder=AttrDict(object_format='mach-o'))
        with mock.patch('bfg9000.shell.execute', mock_execute_uninst):
            pkg = PkgConfigPackage(self.tool, 'foo', format='elf')

            self.assertEqual(
                pkg.link_options(linker),
                opts.option_list(
                    '-pthread',
                    opts.lib_dir(Directory(Path('/path/to/build/foo'))),
                    opts.lib_literal('-lfoo'),
                    opts.install_name_change('/path/to/build/foo/libfoo.dylib',
                                             '/usr/lib/libfoo.dylib')))
Beispiel #7
0
    def test_link_options_macho_requires(self):
        linker = AttrDict(flavor='gcc',
                          builder=AttrDict(object_format='mach-o'))
        with mock.patch('bfg9000.shell.execute', mock_execute_requires):
            pkg = PkgConfigPackage('foo', 'elf', SpecifierSet(''),
                                   PackageKind.shared, self.tool)

            self.assertEqual(
                pkg.link_options(linker),
                opts.option_list(
                    '-L/path/to/build/foo',
                    opts.lib_literal('-lfoo'),
                    opts.install_name_change('/path/to/build/foo/libfoo.dylib',
                                             '/usr/lib/libfoo.dylib'),
                    opts.install_name_change('/path/to/build/bar/libbar.dylib',
                                             '/usr/lib/libbar.dylib'),
                    opts.install_name_change('/path/to/build/baz/libbaz.dylib',
                                             '/usr/lib/libbaz.dylib'),
                ))
Beispiel #8
0
 def test_lib_flags_lib_literal(self):
     self.assertEqual(
         self.linker.lib_flags(opts.option_list(opts.lib_literal('-lfoo'))),
         ['-lfoo'])