]> jfr.im git - yt-dlp.git/blob - pyinst.py
[pyinst.py] Move back to root dir (Closes #63)
[yt-dlp.git] / pyinst.py
1 #!/usr/bin/env python
2 # coding: utf-8
3
4 from __future__ import unicode_literals
5 import sys
6 # import os
7 import platform
8
9 from PyInstaller.utils.win32.versioninfo import (
10 VarStruct, VarFileInfo, StringStruct, StringTable,
11 StringFileInfo, FixedFileInfo, VSVersionInfo, SetVersion,
12 )
13 import PyInstaller.__main__
14
15 arch = sys.argv[1] if len(sys.argv) > 1 else platform.architecture()[0][:2]
16 assert arch in ('32', '64')
17 print('Building %sbit version' % arch)
18 _x86 = '_x86' if arch == '32' else ''
19
20 FILE_DESCRIPTION = 'Media Downloader%s' % (' (32 Bit)' if _x86 else '')
21
22 # root_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
23 # print('Changing working directory to %s' % root_dir)
24 # os.chdir(root_dir)
25
26 exec(compile(open('youtube_dlc/version.py').read(), 'youtube_dlc/version.py', 'exec'))
27 VERSION = locals()['__version__']
28
29 VERSION_LIST = VERSION.split('.')
30 VERSION_LIST = list(map(int, VERSION_LIST)) + [0] * (4 - len(VERSION_LIST))
31
32 print('Version: %s%s' % (VERSION, _x86))
33 print('Remember to update the version using devscipts\\update-version.py')
34
35 VERSION_FILE = VSVersionInfo(
36 ffi=FixedFileInfo(
37 filevers=VERSION_LIST,
38 prodvers=VERSION_LIST,
39 mask=0x3F,
40 flags=0x0,
41 OS=0x4,
42 fileType=0x1,
43 subtype=0x0,
44 date=(0, 0),
45 ),
46 kids=[
47 StringFileInfo([
48 StringTable(
49 '040904B0', [
50 StringStruct('Comments', 'Youtube-dlc%s Command Line Interface.' % _x86),
51 StringStruct('CompanyName', 'https://github.com/pukkandan/yt-dlp'),
52 StringStruct('FileDescription', FILE_DESCRIPTION),
53 StringStruct('FileVersion', VERSION),
54 StringStruct('InternalName', 'youtube-dlc%s' % _x86),
55 StringStruct(
56 'LegalCopyright',
57 'pukkandan@gmail.com | UNLICENSE',
58 ),
59 StringStruct('OriginalFilename', 'youtube-dlc%s.exe' % _x86),
60 StringStruct('ProductName', 'Youtube-dlc%s' % _x86),
61 StringStruct('ProductVersion', '%s%s' % (VERSION, _x86)),
62 ])]),
63 VarFileInfo([VarStruct('Translation', [0, 1200])])
64 ]
65 )
66
67 PyInstaller.__main__.run([
68 '--name=youtube-dlc%s' % _x86,
69 '--onefile',
70 '--icon=devscripts/cloud.ico',
71 '--exclude-module=youtube_dl',
72 '--exclude-module=test',
73 '--exclude-module=ytdlp_plugins',
74 '--hidden-import=mutagen',
75 '--hidden-import=Crypto',
76 'youtube_dlc/__main__.py',
77 ])
78 SetVersion('dist/youtube-dlc%s.exe' % _x86, VERSION_FILE)