pygame / config_darwin.py

pygame 2137ff8 

pygame 2d06a10 
pygame 2137ff8 
pygame 86649d3 
tanoku 0d661c0 
pygame 2137ff8 
illume d916b64 






pygame 2137ff8 
illume 402d695 
illume 3b0f4cc 
pygame 2137ff8 


illume 3b0f4cc 
pygame 2137ff8 
bob 123e718 
pygame 2137ff8 

pygame 6607139 
pygame 2137ff8 
illume d916b64 
zeroth f6c4846 
pygame 2137ff8 
illume d916b64 








pygame 2137ff8 




pygame 6607139 
pygame 2137ff8 
zeroth f6c4846 
pygame 2137ff8 

zeroth f6c4846 
pygame 2137ff8 


bob 123e718 


illume 3b0f4cc 

zeroth f6c4846 
bob 123e718 


illume 3b0f4cc 
bob 123e718 
illume 3b0f4cc 

bob 123e718 
zeroth f6c4846 
pygame 2137ff8 
pygame e881b3e 





illume 3b0f4cc 
pygame e881b3e 




illume 402d695 
pygame e881b3e 









illume 402d695 
pygame e881b3e 


zeroth f6c4846 
pygame e881b3e 
zeroth f6c4846 
pygame e881b3e 
pygame 2137ff8 
illume 402d695 

illume d916b64 
illume 402d695 
illume d916b64 
illume 402d695 
illume d916b64 
illume 402d695 


illume d916b64 
ab3 4acd76a 
illume 3b0f4cc 

brian 7879caa 
illume 7573f7c 
illume 5e23694 
illume 5c23ddd 


pygame 2137ff8 




pygame 6607139 
zeroth f6c4846 
illume 402d695 




pygame 2137ff8 
illume d916b64 






illume 402d695 









bob 6e27a08 
pygame 2137ff8 

pygame 6607139 
pygame 2137ff8 
zeroth f6c4846 
"""Config on Darwin w/ frameworks"""

import os, sys, string
from glob import glob
from distutils.sysconfig import get_python_inc
from config_unix import DependencyProg


try:
    basestring_ = basestring
except NameError:
    #python 3.
    basestring_ = str

class Dependency:
    libext = '.dylib'
    def __init__(self, name, checkhead, checklib, libs):
        self.name = name
        self.inc_dir = None
        self.lib_dir = None
        self.libs = libs
        self.found = 0
        self.checklib = checklib + self.libext
        self.checkhead = checkhead
        self.cflags = ''

    def configure(self, incdirs, libdirs):
        incnames = self.checkhead
        libnames = self.checklib, self.name.lower()
        for dir in incdirs:
            if isinstance(incnames, basestring_):
                incnames = [incnames]

            for incname in incnames:
                path = os.path.join(dir, incname)
                if os.path.isfile(path):
                    self.inc_dir = os.path.dirname(path)
                    break

        for dir in libdirs:
            for name in libnames:
                path = os.path.join(dir, name)
                if os.path.isfile(path):
                    self.lib_dir = dir
                    break
        if self.lib_dir and self.inc_dir:
            print (self.name + '        '[len(self.name):] + ': found')
            self.found = 1
        else:
            print (self.name + '        '[len(self.name):] + ': not found')

class FrameworkDependency(Dependency):
    def configure(self, incdirs, libdirs):
        BASE_DIRS = '/', os.path.expanduser('~/'), '/System/'
        for n in BASE_DIRS:
            n += 'Library/Frameworks/'
            fmwk = n + self.libs + '.framework/Versions/Current/'
            if os.path.isfile(fmwk + self.libs):
                print ('Framework ' + self.libs + ' found')
                self.found = 1
                self.inc_dir = fmwk + 'Headers'
                self.cflags = (
                    '-Xlinker "-framework" -Xlinker "' + self.libs + '"' +
                    ' -Xlinker "-F' + n + '"')
                self.origlib = self.libs
                self.libs = ''
                return
        print ('Framework ' + self.libs + ' not found')


class DependencyPython:
    def __init__(self, name, module, header):
        self.name = name
        self.lib_dir = ''
        self.inc_dir = ''
        self.libs = []
        self.cflags = ''
        self.found = 0
        self.ver = '0'
        self.module = module
        self.header = header
 
    def configure(self, incdirs, libdirs):
        self.found = 1
        if self.module:
            try:
                self.ver = __import__(self.module).__version__
            except ImportError:
                self.found = 0
        if self.found and self.header:
            fullpath = os.path.join(get_python_inc(0), self.header)
            if not os.path.isfile(fullpath):
                self.found = 0
            else:
                self.inc_dir = os.path.split(fullpath)[0]
        if self.found:
            print (self.name + '        '[len(self.name):] + ': found', self.ver)
        else:
            print (self.name + '        '[len(self.name):] + ': not found')

DEPS = [
    [DependencyProg('SDL', 'SDL_CONFIG', 'sdl-config', '1.2', ['sdl']),
         FrameworkDependency('SDL', 'SDL.h', 'libSDL', 'SDL')],
    [Dependency('FONT', ['SDL_ttf.h', 'SDL/SDL_ttf.h'], 'libSDL_ttf', ['SDL_ttf']),
         FrameworkDependency('FONT', 'SDL_ttf.h', 'libSDL_ttf', 'SDL_ttf')],     
    [Dependency('IMAGE', ['SDL_image.h', 'SDL/SDL_image.h'], 'libSDL_image', ['SDL_image']),
         FrameworkDependency('IMAGE', 'SDL_image.h', 'libSDL_image', 'SDL_image')],
    [Dependency('MIXER', ['SDL_mixer.h', 'SDL/SDL_mixer.h'], 'libSDL_mixer', ['SDL_mixer']),
         FrameworkDependency('MIXER', 'SDL_mixer.h', 'libSDL_mixer', 'SDL_mixer')],
    [DependencyProg('SMPEG', 'SMPEG_CONFIG', 'smpeg-config', '0.4.3', ['smpeg']),
         FrameworkDependency('SMPEG', 'smpeg.h', 'libsmpeg', 'smpeg')],
    FrameworkDependency('PORTTIME', 'CoreMidi.h', 'CoreMidi', 'CoreMIDI'),
    FrameworkDependency('QUICKTIME', 'QuickTime.h', 'QuickTime', 'QuickTime'),
    Dependency('PNG', 'png.h', 'libpng', ['png']),
    Dependency('JPEG', 'jpeglib.h', 'libjpeg', ['jpeg']),
    Dependency('SCRAP', '','',[]),
    Dependency('PORTMIDI', 'portmidi.h', 'libportmidi', ['portmidi']),
    DependencyProg('FREETYPE', 'FREETYPE_CONFIG', '/usr/X11R6/bin/freetype-config', '2.0',
                   ['freetype'], '--ftversion'),
    Dependency('AVFORMAT', '','',[]),
    Dependency('SWSCALE', '','',[]),
]


def main():
    global DEPS

    print ('Hunting dependencies...')
    incdirs = ['/usr/local/include', '/usr/local/include/SDL', 
                '/usr/X11/include', '/opt/local/include', 
                '/opt/local/include/freetype2/freetype']
    libdirs = ['/usr/local/lib', '/usr/X11/lib', '/opt/local/lib']

    for d in DEPS:
        if isinstance(d, (list, tuple)):
            for deptype in d:
                deptype.configure(incdirs, libdirs)
        else:
            d.configure(incdirs, libdirs)

    for d in DEPS:
        if type(d)==list:
            found = False
            for deptype in d:
                if deptype.found:
                    found = True
                    DEPS[DEPS.index(d)] = deptype
                    break
            if not found:
                DEPS[DEPS.index(d)] = d[0]
    
    DEPS[0].cflags = '-Ddarwin '+ DEPS[0].cflags
    return DEPS


if __name__ == '__main__':
    print ("""This is the configuration subscript for OSX Darwin.
             Please run "config.py" for full configuration.""")
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.