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')))
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')))
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')))
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) ))
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')))
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')))
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'), ))
def test_lib_flags_lib_literal(self): self.assertEqual( self.linker.lib_flags(opts.option_list(opts.lib_literal('-lfoo'))), ['-lfoo'])