# -*- mode: python -*-
+import os
+import setuptools_scm
+from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal,\
+ hookspath, runtime_hooks
-block_cipher = None
-
-a = Analysis(['music_sampler.py'],
- binaries=None,
- datas=[
- ('config.yml', '.'),
- ('fonts/*', 'fonts'),
- ('musicsampler.kv', '.')
- ],
- hiddenimports=[
- 'six',
- 'packaging',
- 'packaging.version',
- 'packaging.specifiers',
- 'packaging.requirements'
- ],
- hookspath=[],
- runtime_hooks=[],
- excludes=[],
- win_no_prefer_redirects=False,
- win_private_assemblies=False,
- cipher=block_cipher)
-pyz = PYZ(a.pure, a.zipped_data,
- cipher=block_cipher)
-exe = EXE(pyz,
- a.scripts,
- a.binaries,
- a.zipfiles,
- a.datas,
- name='music_sampler',
- debug=False,
- strip=False,
- upx=True,
- console=True )
+import importlib.machinery
+sysfont = importlib.machinery\
+ .SourceFileLoader('sysfont', os.getcwd()+'/music_sampler/sysfont.py') \
+ .load_module()
+
+excluded_and_hidden_modules = get_deps_minimal(
+ video=None,
+ camera=None,
+ audio=None,
+ clipboard=None,
+ spelling=None)
+
+excluded_and_hidden_modules['hiddenimports'] += [
+ 'six',
+ 'packaging',
+ 'packaging.version',
+ 'packaging.specifiers',
+ 'packaging.requirements' ]
+
+commit_message = setuptools_scm.get_version()
+pyinstaller_file = open(".pyinstaller_commit", "w")
+pyinstaller_file.write(commit_message)
+pyinstaller_file.close()
+
+data = [
+ ('music_sampler/music_sampler.kv', '.'),
+ ('.pyinstaller_commit', '.'),
+ ('music_sampler/locales', 'locales')
+]
+
+a = Analysis(['run.py'],
+ datas=data,
+ hookspath=hookspath(),
+ runtime_hooks=runtime_hooks(),
+ **excluded_and_hidden_modules)
+
+fonts = [
+ ("Ubuntu", sysfont.STYLE_NORMAL),
+ ("Ubuntu", sysfont.STYLE_BOLD),
+ ("Symbola", sysfont.STYLE_NONE)
+]
+
+for fontname, style in fonts:
+ font = sysfont.get_font(fontname, style=style)
+ a.datas.append((
+ 'fonts/{}_{}.ttf'.format(fontname, style),
+ font[4],
+ 'DATA'
+ ))
+
+pyz = PYZ(a.pure, a.zipped_data)
+
+# Single file
+exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas,
+ name='music_sampler')
+
+# Directory
+# exe = EXE(pyz, a.scripts,
+# exclude_binaries=True,
+# name='music_sampler_dir',
+# debug=False,
+# strip=False,
+# upx=True,
+# console=True)
+# coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas,
+# strip=False,
+# upx=True,
+# name='music_sampler_dir')