mirror of
https://github.com/kk7ds/chirp.git
synced 2024-09-21 02:27:21 +00:00
Start fresh with setup.py
This commit is contained in:
parent
7286a14c9e
commit
d246d705aa
@ -17,7 +17,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
CHIRP_VERSION = "0.3.0dev"
|
CHIRP_VERSION = "py3dev"
|
||||||
|
|
||||||
module_dir = os.path.dirname(sys.modules["chirp"].__file__)
|
module_dir = os.path.dirname(sys.modules["chirp"].__file__)
|
||||||
__all__ = []
|
__all__ = []
|
||||||
|
@ -0,0 +1,59 @@
|
|||||||
|
import argparse
|
||||||
|
import gettext
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from chirp import directory
|
||||||
|
from chirp import logger
|
||||||
|
|
||||||
|
|
||||||
|
def chirpmain():
|
||||||
|
import wx
|
||||||
|
from chirp.ui import config
|
||||||
|
from chirp.wxui import main
|
||||||
|
|
||||||
|
directory.import_drivers()
|
||||||
|
gettext.install('CHIRP')
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("files", metavar="file", nargs='*',
|
||||||
|
help="File to open")
|
||||||
|
parser.add_argument("--module", metavar="module",
|
||||||
|
help="Load module on startup")
|
||||||
|
logger.add_version_argument(parser)
|
||||||
|
parser.add_argument("--profile", action="store_true",
|
||||||
|
help="Enable profiling")
|
||||||
|
parser.add_argument("--onlydriver", nargs="+",
|
||||||
|
help="Include this driver while loading")
|
||||||
|
parser.add_argument("--inspect", action="store_true",
|
||||||
|
help="Show wxPython inspector")
|
||||||
|
if sys.platform == 'linux':
|
||||||
|
parser.add_argument('--no-linux-gdk-backend', action='store_true',
|
||||||
|
help='Do not force GDK_BACKEND=x11')
|
||||||
|
logger.add_arguments(parser)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
logger.handle_options(args)
|
||||||
|
|
||||||
|
directory.import_drivers(limit=args.onlydriver)
|
||||||
|
|
||||||
|
CONF = config.get()
|
||||||
|
if CONF.get('developer', 'state'):
|
||||||
|
from chirp.drivers import fake
|
||||||
|
fake.register_fakes()
|
||||||
|
|
||||||
|
# wxGTK on Wayland seems to have problems. Override GDK_BACKEND to
|
||||||
|
# use X11, unless we were asked not to
|
||||||
|
if sys.platform == 'linux' and not args.no_linux_gdk_backend:
|
||||||
|
os.putenv('GDK_BACKEND', 'x11')
|
||||||
|
|
||||||
|
app = wx.App()
|
||||||
|
mainwindow = main.ChirpMain(None, title='CHIRP')
|
||||||
|
mainwindow.Show()
|
||||||
|
for fn in args.files:
|
||||||
|
mainwindow.open_file(fn, select=False)
|
||||||
|
|
||||||
|
if args.inspect:
|
||||||
|
from wx.lib import inspection
|
||||||
|
inspection.InspectionTool().Show()
|
||||||
|
|
||||||
|
app.MainLoop()
|
63
chirpwx.py
63
chirpwx.py
@ -1,67 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import argparse
|
|
||||||
import gettext
|
|
||||||
import os
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import wx
|
from chirp.wxui import chirpmain
|
||||||
import wx.aui
|
|
||||||
import wx.grid
|
|
||||||
import wx.lib.newevent
|
|
||||||
|
|
||||||
# Import the drivers module before directory for frozen builds
|
|
||||||
from chirp import drivers
|
|
||||||
|
|
||||||
from chirp import directory
|
|
||||||
from chirp import logger
|
|
||||||
|
|
||||||
from chirp.ui import config
|
|
||||||
from chirp.wxui import main
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
gettext.install('CHIRP')
|
sys.exit(chirpmain())
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("files", metavar="file", nargs='*',
|
|
||||||
help="File to open")
|
|
||||||
parser.add_argument("--module", metavar="module",
|
|
||||||
help="Load module on startup")
|
|
||||||
logger.add_version_argument(parser)
|
|
||||||
parser.add_argument("--profile", action="store_true",
|
|
||||||
help="Enable profiling")
|
|
||||||
parser.add_argument("--onlydriver", nargs="+",
|
|
||||||
help="Include this driver while loading")
|
|
||||||
parser.add_argument("--inspect", action="store_true",
|
|
||||||
help="Show wxPython inspector")
|
|
||||||
if sys.platform == 'linux':
|
|
||||||
parser.add_argument('--no-linux-gdk-backend', action='store_true',
|
|
||||||
help='Do not force GDK_BACKEND=x11')
|
|
||||||
logger.add_arguments(parser)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
logger.handle_options(args)
|
|
||||||
|
|
||||||
directory.safe_import_drivers(limit=args.onlydriver)
|
|
||||||
|
|
||||||
CONF = config.get()
|
|
||||||
if CONF.get('developer', 'state'):
|
|
||||||
from chirp.drivers import fake
|
|
||||||
fake.register_fakes()
|
|
||||||
|
|
||||||
# wxGTK on Wayland seems to have problems. Override GDK_BACKEND to
|
|
||||||
# use X11, unless we were asked not to
|
|
||||||
if sys.platform == 'linux' and not args.no_linux_gdk_backend:
|
|
||||||
os.putenv('GDK_BACKEND', 'x11')
|
|
||||||
|
|
||||||
app = wx.App()
|
|
||||||
mainwindow = main.ChirpMain(None, title='CHIRP')
|
|
||||||
mainwindow.Show()
|
|
||||||
for fn in args.files:
|
|
||||||
mainwindow.open_file(fn, select=False)
|
|
||||||
|
|
||||||
if args.inspect:
|
|
||||||
import wx.lib.inspection
|
|
||||||
wx.lib.inspection.InspectionTool().Show()
|
|
||||||
|
|
||||||
app.MainLoop()
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
six
|
six
|
||||||
wxPython==4.2.0
|
wxPython>=4.0,<4.2.0 # See https://github.com/wxWidgets/Phoenix/issues/2225
|
||||||
pyserial
|
pyserial
|
||||||
future
|
future
|
||||||
requests
|
requests
|
||||||
|
185
setup.py
185
setup.py
@ -1,166 +1,27 @@
|
|||||||
from __future__ import print_function
|
from distutils.core import setup
|
||||||
|
from glob import glob
|
||||||
import sys
|
from setuptools import find_packages
|
||||||
import glob
|
|
||||||
import os
|
|
||||||
|
|
||||||
from chirp import CHIRP_VERSION
|
from chirp import CHIRP_VERSION
|
||||||
import chirp
|
|
||||||
from chirp import directory
|
|
||||||
|
|
||||||
directory.safe_import_drivers()
|
desktop_files = glob("share/*.desktop")
|
||||||
|
image_files = glob("images/*")
|
||||||
|
stock_configs = glob("stock_configs/*")
|
||||||
|
|
||||||
|
setup(name='chirp',
|
||||||
def staticify_chirp_module():
|
descrption='A cross-platform cross-radio programming tool',
|
||||||
import chirp
|
packages=find_packages(),
|
||||||
|
version=CHIRP_VERSION,
|
||||||
with open("chirp/__init__.py", "w") as init:
|
url='https://chirp.danplanet.com',
|
||||||
print("CHIRP_VERSION = \"%s\"" % CHIRP_VERSION, file=init)
|
python_requires=">=3.3,<4",
|
||||||
print("__all__ = %s\n" % str(chirp.__all__), file=init)
|
install_required=['wxPython', 'serial'],
|
||||||
|
entry_points={
|
||||||
print("Set chirp/__init__.py::__all__ = %s" % str(chirp.__all__))
|
'console_scripts': ["chirp=chirp.wxui:chirpmain"],
|
||||||
|
},
|
||||||
|
data_files=[('share/applications', desktop_files),
|
||||||
def staticify_drivers_module():
|
('share/chirp/images', image_files),
|
||||||
import chirp.drivers
|
('share/doc/chirp', ['COPYING']),
|
||||||
|
('share/pixmaps', ['share/chirp.png']),
|
||||||
with file("chirp/drivers/__init__.py", "w") as init:
|
('share/man/man1', ["share/chirpw.1"]),
|
||||||
print("__all__ = %s\n" % str(chirp.drivers.__all__), file=init)
|
('share/chirp/stock_configs', stock_configs),
|
||||||
|
])
|
||||||
print("Set chirp/drivers/__init__.py::__all__ = %s" % str(
|
|
||||||
chirp.drivers.__all__))
|
|
||||||
|
|
||||||
|
|
||||||
def win32_build():
|
|
||||||
from distutils.core import setup
|
|
||||||
import py2exe
|
|
||||||
|
|
||||||
try:
|
|
||||||
# if this doesn't work, try import modulefinder
|
|
||||||
import py2exe.mf as modulefinder
|
|
||||||
import win32com
|
|
||||||
for p in win32com.__path__[1:]:
|
|
||||||
modulefinder.AddPackagePath("win32com", p)
|
|
||||||
for extra in ["win32com.shell"]: # ,"win32com.mapi"
|
|
||||||
__import__(extra)
|
|
||||||
m = sys.modules[extra]
|
|
||||||
for p in m.__path__[1:]:
|
|
||||||
modulefinder.AddPackagePath(extra, p)
|
|
||||||
except ImportError:
|
|
||||||
# no build path setup, no worries.
|
|
||||||
pass
|
|
||||||
|
|
||||||
staticify_chirp_module()
|
|
||||||
staticify_drivers_module()
|
|
||||||
|
|
||||||
opts = {
|
|
||||||
"py2exe": {
|
|
||||||
"includes": "pango,atk,gobject,cairo,pangocairo," +
|
|
||||||
"win32gui,win32com,win32com.shell," +
|
|
||||||
"email.iterators,email.generator,gio",
|
|
||||||
|
|
||||||
"compressed": 1,
|
|
||||||
"optimize": 2,
|
|
||||||
"bundle_files": 3,
|
|
||||||
# "packages": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mods = []
|
|
||||||
for mod in chirp.__all__:
|
|
||||||
mods.append("chirp.%s" % mod)
|
|
||||||
for mod in chirp.drivers.__all__:
|
|
||||||
mods.append("chirp.drivers.%s" % mod)
|
|
||||||
opts["py2exe"]["includes"] += ("," + ",".join(mods))
|
|
||||||
|
|
||||||
setup(
|
|
||||||
zipfile=None,
|
|
||||||
windows=[{'script': "chirpw",
|
|
||||||
'icon_resources': [(0x0004, 'share/chirp.ico')],
|
|
||||||
}],
|
|
||||||
options=opts)
|
|
||||||
|
|
||||||
|
|
||||||
def macos_build():
|
|
||||||
from setuptools import setup
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
APP = ['chirp-%s.py' % CHIRP_VERSION]
|
|
||||||
shutil.copy("chirpw", APP[0])
|
|
||||||
DATA_FILES = [('../Frameworks', ['/opt/local/lib/libpangox-1.0.dylib']),
|
|
||||||
('../Resources/', ['/opt/local/lib/pango']),
|
|
||||||
]
|
|
||||||
OPTIONS = {'argv_emulation': True, "includes": "gtk,atk,pangocairo,cairo"}
|
|
||||||
|
|
||||||
setup(
|
|
||||||
app=APP,
|
|
||||||
data_files=DATA_FILES,
|
|
||||||
options={'py2app': OPTIONS},
|
|
||||||
setup_requires=['py2app'],
|
|
||||||
)
|
|
||||||
|
|
||||||
EXEC = 'bash ./build/macos/make_pango.sh ' + \
|
|
||||||
'/opt/local dist/chirp-%s.app' % CHIRP_VERSION
|
|
||||||
# print "exec string: %s" % EXEC
|
|
||||||
os.system(EXEC)
|
|
||||||
|
|
||||||
|
|
||||||
def default_build():
|
|
||||||
try:
|
|
||||||
from setuptools import setup
|
|
||||||
except ImportError:
|
|
||||||
from distutils.core import setup
|
|
||||||
from glob import glob
|
|
||||||
|
|
||||||
os.system("make -C locale clean all")
|
|
||||||
|
|
||||||
desktop_files = glob("share/*.desktop")
|
|
||||||
# form_files = glob("forms/*.x?l")
|
|
||||||
image_files = glob("images/*")
|
|
||||||
_locale_files = glob("locale/*/LC_MESSAGES/CHIRP.mo")
|
|
||||||
stock_configs = glob("stock_configs/*")
|
|
||||||
|
|
||||||
locale_files = []
|
|
||||||
for f in _locale_files:
|
|
||||||
locale_files.append(("share/chirp/%s" % os.path.dirname(f), [f]))
|
|
||||||
|
|
||||||
print("LOC: %s" % str(locale_files))
|
|
||||||
|
|
||||||
xsd_files = glob("chirp*.xsd")
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="chirp",
|
|
||||||
packages=["chirp", "chirp.drivers", "chirp.ui", "tests", "tests.unit",
|
|
||||||
"chirp.wxui"],
|
|
||||||
version=CHIRP_VERSION,
|
|
||||||
scripts=["chirpw", "rpttool", "chirpwx.py"],
|
|
||||||
data_files=[('share/applications', desktop_files),
|
|
||||||
('share/chirp/images', image_files),
|
|
||||||
('share/chirp', xsd_files),
|
|
||||||
('share/doc/chirp', ['COPYING']),
|
|
||||||
('share/pixmaps', ['share/chirp.png']),
|
|
||||||
('share/man/man1', ["share/chirpw.1"]),
|
|
||||||
('share/chirp/stock_configs', stock_configs),
|
|
||||||
] + locale_files)
|
|
||||||
|
|
||||||
|
|
||||||
def nuke_manifest(*files):
|
|
||||||
for i in ["MANIFEST", "MANIFEST.in"]:
|
|
||||||
if os.path.exists(i):
|
|
||||||
os.remove(i)
|
|
||||||
|
|
||||||
if not files:
|
|
||||||
return
|
|
||||||
|
|
||||||
f = file("MANIFEST.in", "w")
|
|
||||||
for fn in files:
|
|
||||||
print(fn, file=f)
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
|
|
||||||
if sys.platform == "darwin":
|
|
||||||
macos_build()
|
|
||||||
elif sys.platform == "win32":
|
|
||||||
win32_build()
|
|
||||||
else:
|
|
||||||
default_build()
|
|
||||||
|
Loading…
Reference in New Issue
Block a user