Add "make icons_geom" convenience target
authorCampbell Barton <ideasman42@gmail.com>
Tue, 24 Apr 2018 10:08:01 +0000 (12:08 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 24 Apr 2018 10:09:31 +0000 (12:09 +0200)
Generates icons from the blend file in lib.

GNUmakefile
release/datafiles/blender_icons_geom_update.py [new file with mode: 0755]

index 46f0fa1..3817e6b 100644 (file)
@@ -236,9 +236,10 @@ help: .FORCE
        @echo "  * check_descriptions   - check for duplicate/invalid descriptions"
        @echo ""
        @echo "Utilities (not associated with building blender)"
-       @echo "  * icons    - updates PNG icons from SVG files."
-       @echo "  * tgz      - create a compressed archive of the source code."
-       @echo "  * update   - updates git and all submodules"
+       @echo "  * icons      - updates PNG icons from SVG files."
+       @echo "  * icons_geom - updates Geometry icons from BLEND file."
+       @echo "  * tgz        - create a compressed archive of the source code."
+       @echo "  * update     - updates git and all submodules"
        @echo ""
        @echo "Environment Variables"
        @echo "  * BUILD_CMAKE_ARGS    - arguments passed to CMake."
@@ -423,6 +424,10 @@ icons: .FORCE
        "$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
        "$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
 
+icons_geom: .FORCE
+       BLENDER_BIN="$(BUILD_DIR)/bin/blender" \
+           "$(BLENDER_DIR)/release/datafiles/blender_icons_geom_update.py"
+
 update: .FORCE
        if [ "$(OS_NCASE)" == "darwin" ] && [ ! -d "../lib/$(OS_NCASE)" ]; then \
                svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/$(OS_NCASE) ../lib/$(OS_NCASE) ; \
diff --git a/release/datafiles/blender_icons_geom_update.py b/release/datafiles/blender_icons_geom_update.py
new file mode 100755 (executable)
index 0000000..df87ab4
--- /dev/null
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+# This script updates icons from the SVG file
+import os
+import subprocess
+import sys
+
+def run(cmd):
+    print("   ", " ".join(cmd))
+    subprocess.check_call(cmd)
+
+BASEDIR = os.path.abspath(os.path.dirname(__file__))
+ROOTDIR = os.path.normpath(os.path.join(BASEDIR, "..", ".."))
+
+blender_bin = os.environ.get("BLENDER_BIN", "blender")
+if not os.path.exists(blender_bin):
+    blender_bin = os.path.join(ROOTDIR, "blender.bin")
+
+icons_blend = (
+    os.path.join(ROOTDIR, "..", "lib", "resources", "icon_geom.blend"),
+)
+
+# create .dat pixmaps (which are stored in git)
+for blend in icons_blend:
+    cmd = (
+        blender_bin, "--background", "--factory-startup", "-noaudio",
+        blend,
+        "--python", os.path.join(BASEDIR, "blender_icons_geom.py"),
+        "--",
+        "--output-dir", os.path.join(BASEDIR, "icons"),
+    )
+    run(cmd)