Exemplo n.º 1
0
    def test_link_options(self):
        solution = Solution(mock.MagicMock())
        self.context['global_link_options'](opts.debug())

        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable'](
                'exe', src, link_options=['/FOO'], libs='libfoo'
            )

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].link_options, {
            'debug': True,
        })
Exemplo n.º 2
0
    def test_local_options(self):
        solution = Solution(mock.MagicMock())
        self.context['global_options'](opts.debug(), lang='c++')
        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable']('exe', src)

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].compile_options, {
            'debug': 'pdb',
            'runtime': None,
        })
        self.assertSubdict(solution[result].files[0]['options'], {
            'debug': None,
            'runtime': 'dynamic-debug',
        })
Exemplo n.º 3
0
    def test_compile_options(self):
        solution = Solution(mock.MagicMock())
        self.context['global_options'](opts.define('FOO'), lang='c++')
        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable']('exe', src, compile_options=[
                opts.define('BAR', 'bar'), '/DBAZ'
            ])

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].compile_options, {
            'defines': ['FOO'],
            'includes': [],
            'extra': [],
        })
        self.assertSubdict(solution[result].files[0]['options'], {
            'defines': ['BAR=bar', 'BAZ'],
            'includes': [],
            'extra': [],
        })
Exemplo n.º 4
0
    def test_simple(self):
        solution = Solution(mock.MagicMock())
        with mock.patch('logging.log'):
            src = self.context['source_file']('main.cpp')
            result = self.context['executable']('exe', src)

        link.msbuild_link(result.creator, self.build, solution, self.env)
        self.assertSubdict(solution[result].compile_options, {
            'defines': [],
            'includes': [],
            'extra': [],
        })
        self.assertEqual(solution[result].files[0]['name'], src)
        self.assertSubdict(solution[result].files[0]['options'], {
            'defines': [],
            'includes': [],
            'extra': [],
        })

        libs = self.env.builder('c++').linker('executable').always_libs(True)
        self.assertSubdict(solution[result].link_options, {
            'debug': None,
            'libs': [i.library for i in libs],
        })