Source

pygame / config / clangccompiler.py

Full commit
marcus a2d9a07 
marcus b5101c2 
marcus a2d9a07 
marcus 13d60fe 



marcus b943e15 
marcus 13d60fe 
marcus b943e15 
marcus 13d60fe 







marcus b943e15 
marcus b5101c2 
marcus b943e15 

marcus b5101c2 

marcus 13d60fe 
marcus b5101c2 





marcus 13d60fe 
marcus b5101c2 
marcus 13d60fe 
"""A simple LLVM C compiler class for Unix-based systems."""
import os

from distutils.unixccompiler import UnixCCompiler
import distutils.sysconfig  as sysconfig

class ClangCCompiler(UnixCCompiler):
    """ClangCCompiler (verbose=0, dry_run=0, force=0) -> ClangCCompiler
    
    A simple compiler class for the clang frontend of the LLVM Compiler
    infrastructure.
    """
    compiler_type = 'clang'

    def __init__ (self, verbose=0, dry_run=0, force=0):
        UnixCCompiler.__init__ (self, verbose, dry_run, force)
        cc = 'clang'

        cflags = sysconfig.get_config_var ('CFLAGS') or ""
        cflags += os.getenv('CFLAGS', '')
        cshared = sysconfig.get_config_var ('CCSHARED') or ""
        ldflags = sysconfig.get_config_var ('LDFLAGS') or ""
        ldflags += os.getenv('LDFLAGS', '')
        cppflags = os.getenv ('CPPFLAGS', '')

        cargs = ' ' + cflags + ' ' + cppflags
        soargs = ' ' + cflags + ' ' + cshared
        ldargs = ' ' + ldflags
        
        self.set_executables(compiler=cc + cargs,
                             compiler_so=cc + soargs,
                             compiler_cxx=cc,
                             linker_exe=cc + ldflags,
                             linker_so=cc + ' -shared')