]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.spec
Add config
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.spec
index 3c85a2ac298e9155d8cfbbb6c82607c8e949eb12..844ac4b6a6b1e166a6d124f7352fa4483e8da593 100644 (file)
@@ -1,32 +1,74 @@
 # -*- 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', '.'), ('Ubuntu-Regular.ttf', '.')],
-             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')