diff --git a/build.py b/build.py index b1f011c8..c85bb731 100755 --- a/build.py +++ b/build.py @@ -1383,6 +1383,12 @@ def cmd_sdist(options, args): destdir = posixjoin(PDEST, 'wx') for name in glob.glob(posixjoin('wx', wc)): copyFile(name, destdir) + + # Also add the waf executable + copyFile('bin/waf-%s' % wafCurrentVersion, os.path.join(PDEST, 'bin')) + + # Add a setup.py for the root folder + copyFile('packaging/setup.py', ADEST) # build the tarball msg('Archiving Phoenix source...') diff --git a/packaging/setup.py b/packaging/setup.py new file mode 100644 index 00000000..019ebe2b --- /dev/null +++ b/packaging/setup.py @@ -0,0 +1,33 @@ +#--------------------------------------------------------------------------- +# This setup file is placed in the root folder of the source dist tarball, +# and will be used to help do automated builds from tools like easy_install +# or pip. These tools expect to find at least the setup.py in the root +# folder, so let's accomodate them... +#--------------------------------------------------------------------------- + +import sys, os, glob + +# Restructure the content of the tarball so things like pip or easy_install +# know how to build stuff. To be compatible with those tools the main source +# dir needs to be the root, so move all of Phoenix/* here. +SRC = 'Phoenix' +if os.path.exists(SRC) and os.path.isdir(SRC): + items = os.listdir(SRC) + for item in items: + os.rename(os.path.join(SRC, item), item) + os.rmdir(SRC) + +# Somewhere along the way (probably when pip untars the source tar file) any +# executable permissions set on files in the tarball gets lost. Some of them +# will break our build if they are not executable, so turn them back on. +for wc in ['wxWidgets/configure', + 'wxWidgets/src/stc/gen_iface.py', + 'bin/waf-*', ]: + for item in glob.glob(wc): + os.chmod(item, 0755) + + +# Now execute the real setup.py that was copied here in order to do whatever +# command was trying to be done before. +execfile('setup.py') + diff --git a/setup.py b/setup.py index 263a3016..d4809665 100644 --- a/setup.py +++ b/setup.py @@ -254,6 +254,7 @@ if __name__ == '__main__': classifiers = [c for c in CLASSIFIERS.split("\n") if c], keywords = KEYWORDS, zip_safe = False, + use_2to3 = False, include_package_data = True, packages = WX_PKGLIST,