diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-08-04 04:31:28 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-08-04 04:35:05 +0300 |
commit | 7389fd9a35a3c8911f2d502ea2c745d574a2de21 (patch) | |
tree | acd0fb795b2c9a1e6efd8ed91c28659cbf3bf1c1 | |
parent | 8a1c1279b3d9c5478d7e94c4875c141db750fbcb (diff) |
Icons: resolve various issues for generating icons
- INKSCAPE_BIN environment variable was ignored by
alert_icons_update & prvicons_update.
- `make icons` wasn't regenerating alert icons.
- Updating SVG icons failed using blender built with ASAN.
-rw-r--r-- | GNUmakefile | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | release/datafiles/alert_icons_update.py | 6 | ||||
-rwxr-xr-x | release/datafiles/blender_icons_geom_update.py | 12 | ||||
-rwxr-xr-x | release/datafiles/blender_icons_update.py | 16 | ||||
-rwxr-xr-x | release/datafiles/prvicons_update.py | 6 |
5 files changed, 27 insertions, 17 deletions
diff --git a/GNUmakefile b/GNUmakefile index 7df561ed34f..635cc321d03 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -528,8 +528,10 @@ INKSCAPE_BIN?="inkscape" icons: .FORCE BLENDER_BIN=$(BLENDER_BIN) INKSCAPE_BIN=$(INKSCAPE_BIN) \ "$(BLENDER_DIR)/release/datafiles/blender_icons_update.py" - BLENDER_BIN=$(BLENDER_BIN) INKSCAPE_BIN=$(INKSCAPE_BIN) \ + INKSCAPE_BIN=$(INKSCAPE_BIN) \ "$(BLENDER_DIR)/release/datafiles/prvicons_update.py" + INKSCAPE_BIN=$(INKSCAPE_BIN) \ + "$(BLENDER_DIR)/release/datafiles/alert_icons_update.py" icons_geom: .FORCE BLENDER_BIN=$(BLENDER_BIN) \ diff --git a/release/datafiles/alert_icons_update.py b/release/datafiles/alert_icons_update.py index 95e4ee7afbb..a3951c114ae 100644..100755 --- a/release/datafiles/alert_icons_update.py +++ b/release/datafiles/alert_icons_update.py @@ -7,15 +7,15 @@ import sys BASEDIR = os.path.abspath(os.path.dirname(__file__)) -inkscape_path = 'inkscape' +inkscape_bin = os.environ.get("INKSCAPE_BIN", "inkscape") if sys.platform == 'darwin': inkscape_app_path = '/Applications/Inkscape.app/Contents/MacOS/inkscape' if os.path.exists(inkscape_app_path): - inkscape_path = inkscape_app_path + inkscape_bin = inkscape_app_path cmd = ( - inkscape_path, + inkscape_bin, os.path.join(BASEDIR, "alert_icons.svg"), "--export-width=1280", "--export-height=256", diff --git a/release/datafiles/blender_icons_geom_update.py b/release/datafiles/blender_icons_geom_update.py index 5b95961ae6b..d5373d6b2e9 100755 --- a/release/datafiles/blender_icons_geom_update.py +++ b/release/datafiles/blender_icons_geom_update.py @@ -6,10 +6,9 @@ import subprocess import sys -def run(cmd): +def run(cmd, *, env=None): print(" ", " ".join(cmd)) - # Don't use check_call because asan causes nonzero exitcode :S - subprocess.call(cmd) + subprocess.check_call(cmd, env=env) def edit_text_file(filename, marker_begin, marker_end, content): @@ -73,7 +72,12 @@ for blend in icons_blend: "--group", "Export", "--output-dir", output_dir, ) - run(cmd) + + env = {} + # Developers may have ASAN enabled, avoid non-zero exit codes. + env["ASAN_OPTIONS"] = "exitcode=0:" + os.environ.get("ASAN_OPTIONS", "") + + run(cmd, env=env) files_new = set(names_and_time_from_path(output_dir)) icon_files.extend([ diff --git a/release/datafiles/blender_icons_update.py b/release/datafiles/blender_icons_update.py index 8167b8b25e6..ead74aac759 100755 --- a/release/datafiles/blender_icons_update.py +++ b/release/datafiles/blender_icons_update.py @@ -6,13 +6,17 @@ import subprocess import sys -def run(cmd): +def run(cmd, *, env=None): print(" ", " ".join(cmd)) - subprocess.check_call(cmd) + subprocess.check_call(cmd, env=env) BASEDIR = os.path.abspath(os.path.dirname(__file__)) +env = {} +# Developers may have ASAN enabled, avoid non-zero exit codes. +env["ASAN_OPTIONS"] = "exitcode=0:" + os.environ.get("ASAN_OPTIONS", "") + inkscape_bin = os.environ.get("INKSCAPE_BIN", "inkscape") blender_bin = os.environ.get("BLENDER_BIN", "blender") @@ -32,7 +36,7 @@ cmd = ( "--export-type=png", "--export-filename=" + os.path.join(BASEDIR, "blender_icons16.png"), ) -run(cmd) +run(cmd, env=env) cmd = ( inkscape_bin, @@ -42,7 +46,7 @@ cmd = ( "--export-type=png", "--export-filename=" + os.path.join(BASEDIR, "blender_icons32.png"), ) -run(cmd) +run(cmd, env=env) # For testing it can be good to clear all old @@ -64,7 +68,7 @@ cmd = ( "--minx_icon", "2", "--maxx_icon", "2", "--miny_icon", "2", "--maxy_icon", "2", "--spacex_icon", "1", "--spacey_icon", "1", ) -run(cmd) +run(cmd, env=env) cmd = ( blender_bin, "--background", "--factory-startup", "-noaudio", @@ -78,7 +82,7 @@ cmd = ( "--minx_icon", "4", "--maxx_icon", "4", "--miny_icon", "4", "--maxy_icon", "4", "--spacex_icon", "2", "--spacey_icon", "2", ) -run(cmd) +run(cmd, env=env) os.remove(os.path.join(BASEDIR, "blender_icons16.png")) os.remove(os.path.join(BASEDIR, "blender_icons32.png")) diff --git a/release/datafiles/prvicons_update.py b/release/datafiles/prvicons_update.py index fa526f88e96..c9bd8b44301 100755 --- a/release/datafiles/prvicons_update.py +++ b/release/datafiles/prvicons_update.py @@ -7,15 +7,15 @@ import sys BASEDIR = os.path.abspath(os.path.dirname(__file__)) -inkscape_path = 'inkscape' +inkscape_bin = os.environ.get("INKSCAPE_BIN", "inkscape") if sys.platform == 'darwin': inkscape_app_path = '/Applications/Inkscape.app/Contents/MacOS/inkscape' if os.path.exists(inkscape_app_path): - inkscape_path = inkscape_app_path + inkscape_bin = inkscape_app_path cmd = ( - inkscape_path, + inkscape_bin, os.path.join(BASEDIR, "prvicons.svg"), "--export-width=1792", "--export-height=256", |