X-Git-Url: https://jfr.im/git/yt-dlp.git/blobdiff_plain/a87a873d24f0b086200165a2c288d776acde0126..7a5c1cfe93924351387b44919b3c0b2f66c4b883:/pyinst.py diff --git a/pyinst.py b/pyinst.py index 199f0734f..005a5d9e2 100644 --- a/pyinst.py +++ b/pyinst.py @@ -1,55 +1,41 @@ +#!/usr/bin/env python +# coding: utf-8 + from __future__ import unicode_literals +import sys +# import os +import platform + from PyInstaller.utils.win32.versioninfo import ( VarStruct, VarFileInfo, StringStruct, StringTable, StringFileInfo, FixedFileInfo, VSVersionInfo, SetVersion, ) import PyInstaller.__main__ -from datetime import datetime - -FILE_DESCRIPTION = 'Media Downloader' - -exec(compile(open('youtube_dlc/version.py').read(), 'youtube_dlc/version.py', 'exec')) - -_LATEST_VERSION = locals()['__version__'] - -_OLD_VERSION = _LATEST_VERSION.rsplit("-", 1) - -if len(_OLD_VERSION) > 0: - old_ver = _OLD_VERSION[0] - -old_rev = '' -if len(_OLD_VERSION) > 1: - old_rev = _OLD_VERSION[1] - -now = datetime.now() -# ver = f'{datetime.today():%Y.%m.%d}' -ver = now.strftime("%Y.%m.%d") -rev = '' +arch = sys.argv[1] if len(sys.argv) > 1 else platform.architecture()[0][:2] +assert arch in ('32', '64') +print('Building %sbit version' % arch) +_x86 = '_x86' if arch == '32' else '' -if old_ver == ver: - if old_rev: - rev = int(old_rev) + 1 - else: - rev = 1 +FILE_DESCRIPTION = 'Media Downloader%s' % (' (32 Bit)' if _x86 else '') -_SEPARATOR = '-' +# root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) +# print('Changing working directory to %s' % root_dir) +# os.chdir(root_dir) -version = _SEPARATOR.join(filter(None, [ver, str(rev)])) +exec(compile(open('yt_dlp/version.py').read(), 'yt_dlp/version.py', 'exec')) +VERSION = locals()['__version__'] -print(version) +VERSION_LIST = VERSION.split('.') +VERSION_LIST = list(map(int, VERSION_LIST)) + [0] * (4 - len(VERSION_LIST)) -version_list = ver.split(".") -_year, _month, _day = [int(value) for value in version_list] -_rev = 0 -if rev: - _rev = rev -_ver_tuple = _year, _month, _day, _rev +print('Version: %s%s' % (VERSION, _x86)) +print('Remember to update the version using devscipts\\update-version.py') -version_file = VSVersionInfo( +VERSION_FILE = VSVersionInfo( ffi=FixedFileInfo( - filevers=_ver_tuple, - prodvers=_ver_tuple, + filevers=VERSION_LIST, + prodvers=VERSION_LIST, mask=0x3F, flags=0x0, OS=0x4, @@ -58,35 +44,36 @@ date=(0, 0), ), kids=[ - StringFileInfo( - [ - StringTable( - "040904B0", - [ - StringStruct("Comments", "Youtube-dlc Command Line Interface."), - StringStruct("CompanyName", "theidel@uni-bremen.de"), - StringStruct("FileDescription", FILE_DESCRIPTION), - StringStruct("FileVersion", version), - StringStruct("InternalName", "youtube-dlc"), - StringStruct( - "LegalCopyright", - "theidel@uni-bremen.de | UNLICENSE", - ), - StringStruct("OriginalFilename", "youtube-dlc.exe"), - StringStruct("ProductName", "Youtube-dlc"), - StringStruct("ProductVersion", version + " | git.io/JUGsM"), - ], - ) - ] - ), - VarFileInfo([VarStruct("Translation", [0, 1200])]) + 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' % (VERSION, _x86)), + ])]), + VarFileInfo([VarStruct('Translation', [0, 1200])]) ] ) PyInstaller.__main__.run([ - '--name=youtube-dlc', + '--name=yt-dlp%s' % _x86, '--onefile', - '--icon=win/icon/cloud.ico', - 'youtube_dlc/__main__.py', + '--icon=devscripts/cloud.ico', + '--exclude-module=youtube_dl', + '--exclude-module=test', + '--exclude-module=ytdlp_plugins', + '--hidden-import=mutagen', + '--hidden-import=Crypto', + '--upx-exclude=vcruntime140.dll', + 'yt_dlp/__main__.py', ]) -SetVersion('dist/youtube-dlc.exe', version_file) +SetVersion('dist/yt-dlp%s.exe' % _x86, VERSION_FILE)