git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import distutils.command.install_lib
 | 
						|
import distutils.command.install_data
 | 
						|
import distutils.command.install
 | 
						|
import os, string
 | 
						|
from distutils.core import setup
 | 
						|
from user import home # this gives us the user's home dir on all platforms
 | 
						|
 | 
						|
class wxaddon_install_lib(distutils.command.install_lib.install_lib):
 | 
						|
    """need to change self.install_dir to the actual library dir"""
 | 
						|
    def run(self):
 | 
						|
        install_cmd = self.get_finalized_command('install')
 | 
						|
        self.install_dir = os.path.join(getattr(install_cmd, 'install_purelib'), "wxaddons")
 | 
						|
        return distutils.command.install_lib.install_lib.run(self)
 | 
						|
        
 | 
						|
class wxaddon_install_data(distutils.command.install_data.install_data):
 | 
						|
    def run(self):
 | 
						|
        self.install_dir = os.path.join(home, ".wxaddons_data", self.distribution.get_name())
 | 
						|
        if not os.path.exists(self.install_dir):
 | 
						|
            os.makedirs(self.install_dir)
 | 
						|
        return distutils.command.install_data.install_data.run(self)
 | 
						|
 | 
						|
class wxaddon_install(distutils.command.install.install):
 | 
						|
    def run(self):
 | 
						|
        result = distutils.command.install.install.run(self)
 | 
						|
                
 | 
						|
        import wx
 | 
						|
        config = wx.Config("wxaddons-receipts")
 | 
						|
        config.SetPath(self.distribution.get_name())
 | 
						|
        config.Write("Version", str(self.distribution.get_version()))
 | 
						|
        config.Write("Summary", self.distribution.get_description())
 | 
						|
        config.Write("Home-page", self.distribution.get_url())
 | 
						|
        
 | 
						|
        # NB: Although self.distribution has get_author() and get_author_email()
 | 
						|
        # methods, get_contact* returns either author or maintainer, and I think
 | 
						|
        # either is suitable for our purposes.
 | 
						|
        config.Write("Author", self.distribution.get_contact())
 | 
						|
        config.Write("Author-email", self.distribution.get_contact_email())
 | 
						|
        config.Write("License", self.distribution.get_license())
 | 
						|
        
 | 
						|
        keywords = string.join( self.distribution.get_keywords(), ';')
 | 
						|
        if keywords:
 | 
						|
            config.Write('Keywords', keywords)
 | 
						|
 | 
						|
        platforms = string.join( self.distribution.get_platforms(), ';')
 | 
						|
        if platforms:
 | 
						|
            config.Write('Platforms', platforms )
 | 
						|
 | 
						|
        classifiers = string.join( self.distribution.get_classifiers(), ';')
 | 
						|
        if classifiers:
 | 
						|
            config.Write('Classifiers', classifiers )
 | 
						|
 | 
						|
        return result     
 | 
						|
        
 | 
						|
def wxaddon(**kwargs):
 | 
						|
    kwargs['cmdclass'] =  {'install_lib' :    wxaddon_install_lib, 
 | 
						|
                           'install' :  wxaddon_install,
 | 
						|
                           'install_data' : wxaddon_install_data }
 | 
						|
    setup(**kwargs) |