aboutsummaryrefslogtreecommitdiffstats
path: root/pyinst.py
diff options
context:
space:
mode:
authorRicardo <10128951+smplayer-dev@users.noreply.github.com>2021-10-21 12:48:46 +0200
committerGitHub <noreply@github.com>2021-10-21 16:18:46 +0530
commit0e5927eebfcd02a4815fcb29319a1dd3f05fd1b3 (patch)
tree1e6c243966d2480b8c1c2883852750b47c7d9657 /pyinst.py
parent27f817a84b8be5896caf7df2aeffbcc4904ecb75 (diff)
downloadhypervideo-pre-0e5927eebfcd02a4815fcb29319a1dd3f05fd1b3.tar.lz
hypervideo-pre-0e5927eebfcd02a4815fcb29319a1dd3f05fd1b3.tar.xz
hypervideo-pre-0e5927eebfcd02a4815fcb29319a1dd3f05fd1b3.zip
[build] Build standalone MacOS packages (#1221)
Closes #1075 Authored by: smplayer-dev
Diffstat (limited to 'pyinst.py')
-rw-r--r--pyinst.py89
1 files changed, 50 insertions, 39 deletions
diff --git a/pyinst.py b/pyinst.py
index ed410e0f2..5aa83f9da 100644
--- a/pyinst.py
+++ b/pyinst.py
@@ -6,16 +6,24 @@ import sys
import platform
from PyInstaller.utils.hooks import collect_submodules
-from PyInstaller.utils.win32.versioninfo import (
- VarStruct, VarFileInfo, StringStruct, StringTable,
- StringFileInfo, FixedFileInfo, VSVersionInfo, SetVersion,
-)
+
+if platform.system() == 'Windows':
+ from PyInstaller.utils.win32.versioninfo import (
+ VarStruct, VarFileInfo, StringStruct, StringTable,
+ StringFileInfo, FixedFileInfo, VSVersionInfo, SetVersion,
+ )
import PyInstaller.__main__
+suffix = ''
arch = platform.architecture()[0][:2]
assert arch in ('32', '64')
_x86 = '_x86' if arch == '32' else ''
+if platform.system() == 'Windows':
+ suffix = _x86
+if platform.system() == 'Darwin':
+ suffix = '_macos'
+
# Compatability with older arguments
opts = sys.argv[1:]
if opts[0:1] in (['32'], ['64']):
@@ -37,39 +45,40 @@ VERSION_LIST = list(map(int, VERSION_LIST)) + [0] * (4 - len(VERSION_LIST))
print('Version: %s%s' % (VERSION, _x86))
print('Remember to update the version using devscipts\\update-version.py')
-VERSION_FILE = VSVersionInfo(
- ffi=FixedFileInfo(
- filevers=VERSION_LIST,
- prodvers=VERSION_LIST,
- mask=0x3F,
- flags=0x0,
- OS=0x4,
- fileType=0x1,
- subtype=0x0,
- date=(0, 0),
- ),
- kids=[
- StringFileInfo([
- StringTable(
- '040904B0', [
- StringStruct('Comments', 'yt-dlp%s Command Line Interface.' % _x86),
- StringStruct('CompanyName', 'https://github.com/yt-dlp'),
- StringStruct('FileDescription', FILE_DESCRIPTION),
- StringStruct('FileVersion', VERSION),
- StringStruct('InternalName', 'yt-dlp%s' % _x86),
- StringStruct(
- 'LegalCopyright',
- 'pukkandan.ytdlp@gmail.com | UNLICENSE',
- ),
- StringStruct('OriginalFilename', 'yt-dlp%s.exe' % _x86),
- StringStruct('ProductName', 'yt-dlp%s' % _x86),
- StringStruct(
- 'ProductVersion',
- '%s%s on Python %s' % (VERSION, _x86, platform.python_version())),
- ])]),
- VarFileInfo([VarStruct('Translation', [0, 1200])])
- ]
-)
+if platform.system() == 'Windows':
+ VERSION_FILE = VSVersionInfo(
+ ffi=FixedFileInfo(
+ filevers=VERSION_LIST,
+ prodvers=VERSION_LIST,
+ mask=0x3F,
+ flags=0x0,
+ OS=0x4,
+ fileType=0x1,
+ subtype=0x0,
+ date=(0, 0),
+ ),
+ kids=[
+ StringFileInfo([
+ StringTable(
+ '040904B0', [
+ StringStruct('Comments', 'yt-dlp%s Command Line Interface.' % _x86),
+ StringStruct('CompanyName', 'https://github.com/yt-dlp'),
+ StringStruct('FileDescription', FILE_DESCRIPTION),
+ StringStruct('FileVersion', VERSION),
+ StringStruct('InternalName', 'yt-dlp%s' % _x86),
+ StringStruct(
+ 'LegalCopyright',
+ 'pukkandan.ytdlp@gmail.com | UNLICENSE',
+ ),
+ StringStruct('OriginalFilename', 'yt-dlp%s.exe' % _x86),
+ StringStruct('ProductName', 'yt-dlp%s' % _x86),
+ StringStruct(
+ 'ProductVersion',
+ '%s%s on Python %s' % (VERSION, _x86, platform.python_version())),
+ ])]),
+ VarFileInfo([VarStruct('Translation', [0, 1200])])
+ ]
+ )
def pycryptodome_module():
@@ -90,7 +99,7 @@ dependancies = [pycryptodome_module(), 'mutagen'] + collect_submodules('websocke
excluded_modules = ['test', 'ytdlp_plugins', 'youtube-dl', 'youtube-dlc']
PyInstaller.__main__.run([
- '--name=yt-dlp%s' % _x86,
+ '--name=yt-dlp%s' % suffix,
'--icon=devscripts/logo.ico',
*[f'--exclude-module={module}' for module in excluded_modules],
*[f'--hidden-import={module}' for module in dependancies],
@@ -99,4 +108,6 @@ PyInstaller.__main__.run([
*opts,
'yt_dlp/__main__.py',
])
-SetVersion('dist/%syt-dlp%s.exe' % ('yt-dlp/' if '--onedir' in opts else '', _x86), VERSION_FILE)
+
+if platform.system() == 'Windows':
+ SetVersion('dist/%syt-dlp%s.exe' % ('yt-dlp/' if '--onedir' in opts else '', _x86), VERSION_FILE)