#!/usr/bin/env python """ A Python binding for OpenSceneGraph """ """ PyOSG distutils setup script. On Apple Mac OS X run with: python setup.py bdist_mpkg On Windows run with python setup.py bdist_wininst to generate an installer package. """ import os, shutil, sys from distutils.core import setup, Extension from versions_default import * from glob import glob from os.path import isfile import modules try: buildno = int(open('buildno.h').read().split()[2]) + 1 except: buildno = 1 # XXX remove me when checking in # open('buildno.h', 'wa').write("#define BUILDNO %d\n" % buildno) try: from PyOSG.__init__ import __version__ except: __version__ = "Unknown" PYOSG_CLASSIFIERS = """\ Development Status :: 5 - Beta Intended Audience :: Developers License :: OSI Approved :: BSD License Programming Language :: Python Topic :: Software Development :: Libraries :: Python Modules Topic :: Multimedia :: Graphics Topic :: Multimedia :: Graphics :: 3D Rendering Operating System :: Unix Operating System :: MacOS :: MacOS X Operating System :: Microsoft :: Windows """ # patch distutils if it can't cope with the "classifiers" or # "download_url" keywords if sys.version < '2.2.3': from distutils.dist import DistributionMetadata DistributionMetadata.classifiers = None DistributionMetadata.download_url = None define_macros=[('VERSION','"'+__version__+'"')] library_dirs = [] extra_link_args = [] libraries=['OpenThreads','Producer']+modules.ext_modules libraries.append('osgText') # currently not being built data_files = [] if sys.platform == 'darwin': ## data_files = [ ## ('/usr/local/lib', ['/usr/local/lib/libboost_python-' + boost_version_default + '.dylib']) ## ] if 'osgSound' in modules.ext_modules: data_files.append( ('/usr/local/lib', ['/usr/local/lib/libfmodex.dylib']) ) package_data = {} #define_macros.append( ('__USE_OSX_CGL_IMPLEMENTATION__',None ) ) # prevent building OSG glx version define_macros.append( ('__USE_OSX_AGL_IMPLEMENTATION__',None ) ) # prevent building OSG glx version library_dirs.append( os.path.join(sys.prefix,'lib') ) for lib in libraries: extra_link_args.append('-framework') extra_link_args.append(lib) libraries=[] # overwrite elif sys.platform == 'win32': data_files.extend([ ('.' , [boost_root_default + '\\lib\\' + 'boost_python-vc71-mt-' + boost_version_default + '.dll']) ]) if 'osgSound' in modules.ext_modules: data_files.append( ('.', ['\\gideon\\bin\\fmodex.dll']) ) data_files.append( ('.', ['\\gideon\\bin\\osgsound.dll']) ) package_data = {} else: package_data = {} libraries.insert(0,'boost_python') extensions = [] for libname in modules.ext_modules: cppfiles = [] for file in os.listdir(libname): if file.endswith('.cpp'): cppfile = os.path.join(libname, file) cppfiles.append(cppfile) extensions.append(Extension("PyOSG." + '_' + libname, cppfiles, include_dirs=['include'], define_macros=define_macros, library_dirs=library_dirs, libraries=libraries, extra_link_args=extra_link_args, )) scriptfiles = filter(isfile, glob('applications/*')) setup(name = "PyOSG", version = __version__ + "-%d" % buildno, description = "A Python binding for OpenSceneGraph", author = "Gideon May", author_email = "gideon@computer.org", maintainer = "Andrew Straw", maintainer_email = "strawman@astraw.com", url = "http://code.astraw.com/projects/pyosg/", ext_modules = extensions, data_files = data_files, package_data = package_data, #classifiers = filter(None, PYOSG_CLASSIFIERS.split("\n")), scripts = scriptfiles, license = "BSD License", packages=['PyOSG', 'PyOSG.examples', 'PyOSG.examples.Script'], #platforms=['Win32', 'Linux', 'Mac_OSX'], )