pykd/setup/setup.py

249 lines
7.6 KiB
Python
Raw Permalink Normal View History

from setuptools import setup
from wheel.bdist_wheel import bdist_wheel
import os
import shutil
import zipfile
import sys
_name = "pykd"
_desc = "python windbg extension"
_version = '0.3.4.2'
def getReleaseSrc():
return 'Release_%d.%d' % sys.version_info[0:2]
if "bdist_wheel" in sys.argv:
# remove build catalog
build_dir = os.path.join(os.path.curdir, 'build' )
if os.path.exists(build_dir):
shutil.rmtree(build_dir)
# make package catalog
package_dir = os.path.join(os.path.curdir, _name )
if os.path.exists(package_dir):
shutil.rmtree(package_dir)
os.mkdir(package_dir)
shutil.copy("__init__.py", package_dir)
2017-11-18 19:21:59 +08:00
bin_dir = os.path.join( os.path.curdir, '..', 'kdlibcpp/bin')
pykd_dir = os.path.join( os.path.curdir, '..', 'out')
if "--plat-name=win32" in sys.argv:
bin_dir = os.path.join( bin_dir, 'x86')
pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
elif "--plat-name=win-amd64" in sys.argv:
bin_dir = os.path.join( bin_dir, 'x64')
pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
else:
assert(0)
assert(os.path.isdir(bin_dir))
for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
setup(
name = _name,
version = _version,
description = _desc,
# cmdclass = { 'bdist_wheel' : bdist_wheel },
packages = ['pykd'],
package_dir = {'pykd': package_dir},
package_data = { 'pykd' :["*.pyd", "*.dll"]},
include_package_data=True,
zip_safe = False
)
elif "bdist_zip" in sys.argv:
#make package catalog
if "--plat-name=win32" in sys.argv:
plat_name="win32"
elif "--plat-name=win-amd64" in sys.argv:
plat_name="win-amd64"
package_dir = os.path.join(os.path.curdir, _name )
if os.path.exists(package_dir):
shutil.rmtree(package_dir)
os.mkdir(package_dir)
2017-11-18 19:21:59 +08:00
bin_dir = os.path.join( os.path.curdir, '..', 'kdlibcpp/bin')
pykd_dir = os.path.join( os.path.curdir, '..', 'out')
if plat_name=="win32":
bin_dir = os.path.join( bin_dir, 'x86')
pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
elif plat_name=="win-amd64":
bin_dir = os.path.join( bin_dir, 'x64')
pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
else:
assert(0)
pyver="%d%d" % sys.version_info[0:2]
zip_str = "pykd-%s-cp%s-%s" % ( _version, pyver, plat_name )
zip_name = zip_str + ".zip"
assert(os.path.isdir(bin_dir))
for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
dist_dir = os.path.join(os.path.curdir, 'dist')
if not os.path.exists(dist_dir):
os.mkdir(dist_dir)
with zipfile.ZipFile(os.path.join(os.path.curdir, 'dist', zip_name), mode='w' ) as archive:
for srcFile in os.listdir(package_dir):
print( "zipped %s" % (srcFile) )
archive.write( os.path.join(package_dir, srcFile), compress_type = zipfile.ZIP_DEFLATED)
print("OK")
#from setuptools import setup
#from wheel.bdist_wheel import bdist_wheel
#import pkg_resources
#import argparse
#import os
#import shutil
#import zipfile
#import sys
#_name = "pykd"
#_desc = "python windbg extension"
#_version = '0.3.1.2'
#def getReleaseSrc():
# return 'Release_%d.%d' % sys.version_info[0:2]
#def makeWheel(args):
# # remove build catalog
# build_dir = os.path.join(os.path.curdir, 'build' )
# if os.path.exists(build_dir):
# shutil.rmtree(build_dir)
# # make package catalog
# package_dir = os.path.join(os.path.curdir, _name )
# if os.path.exists(package_dir):
# shutil.rmtree(package_dir)
# os.mkdir(package_dir)
# shutil.copy("__init__.py", package_dir)
# bin_dir = os.path.join( os.path.curdir, '..', 'bin')
# pykd_dir = os.path.join( os.path.curdir, '..', 'out')
# if args.plat_name == 'win32':
# bin_dir = os.path.join( bin_dir, 'x86')
# pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
# elif args.plat_name == 'win-amd64':
# bin_dir = os.path.join( bin_dir, 'x64')
# pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
# else:
# assert(0)
# assert(os.path.isdir(bin_dir))
# for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
# shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
# shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
# setup(
# name = _name,
# version = _version,
# description = _desc,
# cmdclass = { 'bdist_wheel' : bdist_wheel },
# packages = ['pykd'],
# package_dir = {'pykd': package_dir},
# package_data = { 'pykd' :["*.pyd", "*.dll"]},
# include_package_data=True,
# zip_safe = False,
# universal = True,
# #python_tag = args.python_tag
# )
#def makeZip(args):
# #make package catalog
# package_dir = os.path.join(os.path.curdir, _name )
# if os.path.exists(package_dir):
# shutil.rmtree(package_dir)
# os.mkdir(package_dir)
# bin_dir = os.path.join( os.path.curdir, '..', 'bin')
# pykd_dir = os.path.join( os.path.curdir, '..', 'out')
# if args.plat_name == 'win32':
# bin_dir = os.path.join( bin_dir, 'x86')
# pykd_dir = os.path.join(pykd_dir, 'Win32', getReleaseSrc())
# elif args.plat_name == 'win-amd64':
# bin_dir = os.path.join( bin_dir, 'x64')
# pykd_dir = os.path.join(pykd_dir, 'X64', getReleaseSrc())
# else:
# assert(0)
# pyver="%d%d" % sys.version_info[0:2]
# zip_str = "pykd-%s-py%s-%s" % ( _version, pyver, args.plat_name )
# zip_name = zip_str + ".zip"
# assert(os.path.isdir(bin_dir))
# for binFile in [ f for f in os.listdir(bin_dir) if not os.path.isdir(f) ]:
# shutil.copy( os.path.join(bin_dir, binFile), os.path.join(package_dir, binFile) )
# shutil.copy( os.path.join(pykd_dir, 'pykd.pyd'), os.path.join(package_dir, 'pykd.pyd') )
# dist_dir = os.path.join(os.path.curdir, 'dist')
# if not os.path.exists(dist_dir):
# os.mkdir(dist_dir)
# with zipfile.ZipFile(os.path.join(os.path.curdir, 'dist', zip_name), mode='w' ) as archive:
# for srcFile in os.listdir(package_dir):
# print( "zipped %s" % (srcFile) )
# archive.write( os.path.join(package_dir, srcFile), compress_type = zipfile.ZIP_DEFLATED)
# print("OK")
#parser = argparse.ArgumentParser()
#subparsers = parser.add_subparsers()
#wheelParser = subparsers.add_parser('bdist_wheel')
#wheelParser.add_argument('--plat-name', choices = ['win32', 'win-amd64'], default=pkg_resources.get_build_platform() )
#wheelParser.add_argument('--python-tag', choices=['2.7', '3.5'])
#wheelParser.set_defaults(func=makeWheel)
#zipParser = subparsers.add_parser('bdist_zip')
#zipParser.add_argument('--plat-name', choices = ['win32', 'win-amd64'], default=pkg_resources.get_build_platform() )
#zipParser.set_defaults(func=makeZip)
#args = parser.parse_args()
#args.func(args)