]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler.spec
Use pip setup file
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler.spec
index fca40058fe09df989b2ea67796089924ed58192e..791cd686ec7d02798c4dabe25d5c5c3b3f0d24d0 100644 (file)
@@ -1,36 +1,67 @@
 # -*- mode: python -*-
+import os
+from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal,\
+        hookspath, runtime_hooks
 
-block_cipher = None
+import importlib.machinery
+sysfont = importlib.machinery\
+        .SourceFileLoader('sysfont', os.getcwd() + '/music_sampler/sysfont.py') \
+        .load_module()
 
-a = Analysis(['music_sampler.py'],
+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 = os.popen('git log -1 --format="%h  %ci"').read()
+pyinstaller_file = open(".pyinstaller_commit", "w")
+pyinstaller_file.write(commit_message)
+pyinstaller_file.close()
+
+data = [
+  ('music_sampler/music_sampler.kv', '.'),
+  ('.pyinstaller_commit', '.')
+]
+
+a = Analysis(['run.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 )
+             datas=data,
+             hookspath=hookspath(),
+             runtime_hooks=runtime_hooks(),
+             **excluded_and_hidden_modules)
+
+for fontname, style in [("Ubuntu", sysfont.STYLE_NORMAL), ("Ubuntu", sysfont.STYLE_BOLD), ("Symbola", sysfont.STYLE_NONE)]:
+    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')