Example #1
0
    def _write_link_options(self, element, options):
        element.append(E.OutputFile('$(TargetPath)'))

        if options.get('import_lib'):
            element.append(E.ImportLibrary(textify(options['import_lib'])))

        if options.get('extra'):
            element.append(
                E.AdditionalOptions(' '.join(
                    chain(textify_each(options['extra'], quoted=True),
                          ['%(AdditionalOptions)']))))

        if options.get('libs'):
            element.append(
                E.AdditionalDependencies(';'.join(
                    chain(textify_each(options['libs']),
                          ['%(AdditionalDependencies)']))))
Example #2
0
    def _write_compile_options(self, element, options):
        warnings = options.get('warnings', {})
        if warnings.get('level') is not None:
            element.append(E.WarningLevel(
                self._warning_levels[warnings['level']]
            ))
        if warnings.get('as_error') is not None:
            element.append(E.TreatWarningAsError(
                'true' if warnings['as_error'] else 'false'
            ))

        if options.get('includes'):
            element.append(E.AdditionalIncludeDirectories( ';'.join(chain(
                textify_each(options['includes']),
                ['%(AdditionalIncludeDirectories)']
            )) ))

        if options.get('defines'):
            element.append(E.PreprocessorDefinitions( ';'.join(chain(
                textify_each(options['defines']),
                ['%(PreprocessorDefinitions)']
            )) ))

        pch = options.get('pch', {})
        if pch.get('create') is not None:
            element.append(E.PrecompiledHeader('Create'))
            element.append(E.PrecompiledHeaderFile(pch['create']))
        elif pch.get('use') is not None:
            element.append(E.PrecompiledHeader('Use'))
            element.append(E.PrecompiledHeaderFile(pch['use']))

        if options.get('extra'):
            element.append(E.AdditionalOptions( ' '.join(chain(
                textify_each(options['extra'], quoted=True),
                ['%(AdditionalOptions)']
            )) ))