T53471: Fix crash with blender_icons_update.py
[blender.git] / release / datafiles / blender_icons_update.py
1 #!/usr/bin/env python3
2
3 # This script updates icons from the SVG file
4 import os
5 import sys
6
7 def run(cmd):
8     print("   ", cmd)
9     os.system(cmd)
10
11 BASEDIR = os.path.abspath(os.path.dirname(__file__)) + os.sep
12
13 inkscape_bin = "inkscape"
14 blender_bin = "blender"
15
16 if sys.platform == 'darwin':
17     inkscape_app_path = '/Applications/Inkscape.app/Contents/Resources/script'
18     if os.path.exists(inkscape_app_path):
19         inkscape_bin = inkscape_app_path
20
21 cmd = inkscape_bin + ' "%sblender_icons.svg" --export-width=602 --export-height=640 --without-gui --export-png="%sblender_icons16.png"' % (BASEDIR, BASEDIR)
22 run(cmd)
23 cmd = inkscape_bin + ' "%sblender_icons.svg" --export-width=1204 --export-height=1280 --without-gui --export-png="%sblender_icons32.png"' % (BASEDIR, BASEDIR)
24 run(cmd)
25
26
27 # For testing it can be good to clear all old
28 # rm ./blender_icons16/*.dat
29 # rm ./blender_icons32/*.dat
30
31 datatoc_icon_split_py = os.path.join(BASEDIR, "..", "..", "source", "blender", "datatoc", "datatoc_icon_split.py")
32
33 # create .dat pixmaps (which are stored in git)
34 cmd = (
35     blender_bin + " "
36     "--background -noaudio "
37     "--python " + datatoc_icon_split_py + " -- "
38     "--image=" + BASEDIR + "blender_icons16.png "
39     "--output=" + BASEDIR + "blender_icons16 "
40     "--output_prefix=icon16_ "
41     "--name_style=UI_ICONS "
42     "--parts_x 26 --parts_y 30 "
43     "--minx 3 --maxx 53 --miny 3 --maxy 8 "
44     "--minx_icon 2 --maxx_icon 2 --miny_icon 2 --maxy_icon 2 "
45     "--spacex_icon 1 --spacey_icon 1"
46     )
47 run(cmd)
48
49 cmd = (
50     blender_bin + " "
51     "--background -noaudio "
52     "--python " + datatoc_icon_split_py + " -- "
53     "--image=" + BASEDIR + "blender_icons32.png "
54     "--output=" + BASEDIR + "blender_icons32 "
55     "--output_prefix=icon32_ "
56     "--name_style=UI_ICONS "
57     "--parts_x 26 --parts_y 30 "
58     "--minx 6 --maxx 106 --miny 6 --maxy 16 "
59     "--minx_icon 4 --maxx_icon 4 --miny_icon 4 --maxy_icon 4 "
60     "--spacex_icon 2 --spacey_icon 2"
61
62     )
63 run(cmd)
64
65 os.remove(BASEDIR + "blender_icons16.png")
66 os.remove(BASEDIR + "blender_icons32.png")
67
68 # For testing, if we want the PNG of each image
69 # ./datatoc_icon_split_to_png.py ./blender_icons16/*.dat
70 # ./datatoc_icon_split_to_png.py ./blender_icons32/*.dat
71