mirror of
https://github.com/ciromattia/kcc
synced 2025-12-11 00:36:33 +00:00
* remove duplicated PyMuPDF entry and change packages order for easier comparison with requirements.txt * update packages versions to be synced to each other (requirements.txt vs install_requires in setuptools.setup() * add missing pyinstaller package which is required to build exe/app * clarify minimums * fix typo * remove pyinstaller Remove pyinstaller from the requirements. --------- Co-authored-by: Alex Xu <alexkurosakimh3@gmail.com>
166 lines
5.9 KiB
Python
166 lines
5.9 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
pip/pyinstaller build script for KCC.
|
|
|
|
Install as Python package:
|
|
python3 setup.py install
|
|
|
|
Create EXE/APP:
|
|
python3 setup.py build_binary
|
|
python3 setup.py build_c2e
|
|
python3 setup.py build_c2p
|
|
"""
|
|
|
|
import os
|
|
import platform
|
|
import sys
|
|
import setuptools
|
|
from kindlecomicconverter import __version__
|
|
|
|
NAME = 'KindleComicConverter'
|
|
MAIN = 'kcc.py'
|
|
VERSION = __version__
|
|
|
|
|
|
# noinspection PyUnresolvedReferences
|
|
class BuildBinaryCommand(setuptools.Command):
|
|
description = 'build binary release'
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
# noinspection PyShadowingNames
|
|
def run(self):
|
|
VERSION = __version__
|
|
if sys.platform == 'darwin':
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -D -i icons/comic2ebook.icns -n "Kindle Comic Converter" -w -s kcc.py')
|
|
# TODO /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime dist/Applications/Kindle\ Comic\ Converter.app -v
|
|
min_os = os.getenv('MACOSX_DEPLOYMENT_TARGET')
|
|
if min_os:
|
|
os.system(f'appdmg kcc.json dist/kcc_osx_{min_os.replace(".", "_")}_legacy_{VERSION}.dmg')
|
|
else:
|
|
os.system(f'appdmg kcc.json dist/kcc_macos_{platform.processor()}_{VERSION}.dmg')
|
|
sys.exit(0)
|
|
elif sys.platform == 'win32':
|
|
if os.getenv('WINDOWS_7'):
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_win7_legacy_' + VERSION + ' -w --noupx kcc.py')
|
|
else:
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n KCC_' + VERSION + ' -w --noupx kcc.py')
|
|
sys.exit(0)
|
|
elif sys.platform == 'linux':
|
|
os.system(
|
|
'pyinstaller --hidden-import=_cffi_backend --hidden-import=queue -y -F -i icons/comic2ebook.ico -n kcc_linux_' + VERSION + ' kcc.py')
|
|
sys.exit(0)
|
|
else:
|
|
sys.exit(0)
|
|
|
|
# noinspection PyUnresolvedReferences
|
|
class BuildC2ECommand(setuptools.Command):
|
|
description = 'build binary c2e release'
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
# noinspection PyShadowingNames
|
|
def run(self):
|
|
VERSION = __version__
|
|
if sys.platform == 'darwin':
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -D -i icons/comic2ebook.icns -n "KCC C2E" -c -s kcc-c2e.py')
|
|
# TODO /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime dist/Applications/Kindle\ Comic\ Converter.app -v
|
|
sys.exit(0)
|
|
elif sys.platform == 'win32':
|
|
if os.getenv('WINDOWS_7'):
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2e_win7_legacy_' + VERSION + ' -c --noupx kcc-c2e.py')
|
|
else:
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2e_' + VERSION + ' -c --noupx kcc-c2e.py')
|
|
sys.exit(0)
|
|
elif sys.platform == 'linux':
|
|
os.system(
|
|
'pyinstaller --hidden-import=_cffi_backend --hidden-import=queue -y -F -i icons/comic2ebook.ico -n kcc_c2e_linux_' + VERSION + ' kcc-c2e.py')
|
|
sys.exit(0)
|
|
else:
|
|
sys.exit(0)
|
|
|
|
|
|
# noinspection PyUnresolvedReferences
|
|
class BuildC2PCommand(setuptools.Command):
|
|
description = 'build binary c2p release'
|
|
user_options = []
|
|
|
|
def initialize_options(self):
|
|
pass
|
|
|
|
def finalize_options(self):
|
|
pass
|
|
|
|
# noinspection PyShadowingNames
|
|
def run(self):
|
|
VERSION = __version__
|
|
if sys.platform == 'darwin':
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -n "KCC C2P" -c -s kcc-c2p.py')
|
|
# TODO /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime dist/Applications/Kindle\ Comic\ Converter.app -v
|
|
sys.exit(0)
|
|
elif sys.platform == 'win32':
|
|
if os.getenv('WINDOWS_7'):
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2p_win7_legacy_' + VERSION + ' -c --noupx kcc-c2p.py')
|
|
else:
|
|
os.system('pyinstaller --hidden-import=_cffi_backend -y -F -i icons\\comic2ebook.ico -n kcc_c2p_' + VERSION + ' -c --noupx kcc-c2p.py')
|
|
sys.exit(0)
|
|
elif sys.platform == 'linux':
|
|
os.system(
|
|
'pyinstaller --hidden-import=_cffi_backend --hidden-import=queue -y -F -i icons/comic2ebook.ico -n kcc_c2p_linux_' + VERSION + ' kcc-c2p.py')
|
|
sys.exit(0)
|
|
else:
|
|
sys.exit(0)
|
|
|
|
|
|
setuptools.setup(
|
|
cmdclass={
|
|
'build_binary': BuildBinaryCommand,
|
|
'build_c2e': BuildC2ECommand,
|
|
'build_c2p': BuildC2PCommand,
|
|
},
|
|
name=NAME,
|
|
version=VERSION,
|
|
author='Ciro Mattia Gonano, Pawel Jastrzebski',
|
|
author_email='ciromattia@gmail.com, pawelj@iosphe.re',
|
|
description='Comic and Manga converter for e-book readers.',
|
|
license='ISC License (ISCL)',
|
|
keywords=['kindle', 'kobo', 'comic', 'manga', 'mobi', 'epub', 'cbz'],
|
|
url='http://github.com/ciromattia/kcc',
|
|
entry_points={
|
|
'console_scripts': [
|
|
'kcc-c2e = kindlecomicconverter.startup:startC2E',
|
|
'kcc-c2p = kindlecomicconverter.startup:startC2P',
|
|
],
|
|
'gui_scripts': [
|
|
'kcc = kindlecomicconverter.startup:start',
|
|
],
|
|
},
|
|
packages=['kindlecomicconverter'],
|
|
install_requires=[
|
|
'PySide6>=6.0.0',
|
|
'Pillow>=9.3.0',
|
|
'psutil>=5.9.5',
|
|
'requests>=2.31.0',
|
|
'python-slugify>=1.2.1,<9.0.0',
|
|
'raven>=6.0.0',
|
|
'mozjpeg-lossless-optimization>=1.2.0',
|
|
'natsort>=8.4.0',
|
|
'distro>=1.8.0',
|
|
'numpy>=1.22.4',
|
|
'PyMuPDF>=1.16.1',
|
|
],
|
|
classifiers=[],
|
|
zip_safe=False,
|
|
)
|