Forráskód Böngészése

SCons: Move platform logo/run icon to `export` folder

Follow-up to #75932.
Since these icons are only used by the export plugin, it makes sense to
move them and generate the headers there.

The whole `detect.is_active()` logic seems to be a leftover from before
times, as far back as 1.0-stable it already wasn't used for anything.

So I'm removing it and moving the export icon generation to
`platform_methods`, where it makes more sense.
Rémi Verschelde 2 éve
szülő
commit
90446fe9f3

+ 6 - 11
SConstruct

@@ -56,7 +56,7 @@ import methods
 import glsl_builders
 import gles3_builders
 import scu_builders
-from platform_methods import architectures, architecture_aliases
+from platform_methods import architectures, architecture_aliases, generate_export_icons
 
 if ARGUMENTS.get("target", "editor") == "editor":
     _helper_module("editor.editor_builders", "editor/editor_builders.py")
@@ -68,9 +68,6 @@ platform_list = []  # list of platforms
 platform_opts = {}  # options for each platform
 platform_flags = {}  # flags for each platform
 platform_doc_class_path = {}
-
-active_platforms = []
-active_platform_ids = []
 platform_exporters = []
 platform_apis = []
 
@@ -93,13 +90,13 @@ for x in sorted(glob.glob("platform/*")):
     except Exception:
         pass
 
+    platform_name = x[9:]
+
     if os.path.exists(x + "/export/export.cpp"):
-        platform_exporters.append(x[9:])
+        platform_exporters.append(platform_name)
+        generate_export_icons(x, platform_name)
     if os.path.exists(x + "/api/api.cpp"):
-        platform_apis.append(x[9:])
-    if detect.is_active():
-        active_platforms.append(detect.get_name())
-        active_platform_ids.append(x)
+        platform_apis.append(platform_name)
     if detect.can_build():
         x = x.replace("platform/", "")  # rest of world
         x = x.replace("platform\\", "")  # win32
@@ -109,8 +106,6 @@ for x in sorted(glob.glob("platform/*")):
     sys.path.remove(tmppath)
     sys.modules.pop("detect")
 
-methods.save_active_platforms(active_platforms, active_platform_ids)
-
 custom_tools = ["default"]
 
 platform_arg = ARGUMENTS.get("platform", ARGUMENTS.get("p", False))

+ 0 - 27
methods.py

@@ -559,33 +559,6 @@ def use_windows_spawn_fix(self, platform=None):
     self["SPAWN"] = mySpawn
 
 
-def save_active_platforms(apnames, ap):
-    for x in ap:
-        svg_names = []
-        if os.path.isfile(x + "/logo.svg"):
-            svg_names.append("logo")
-        if os.path.isfile(x + "/run_icon.svg"):
-            svg_names.append("run_icon")
-
-        for name in svg_names:
-            svgf = open(x + "/" + name + ".svg", "rb")
-            b = svgf.read(1)
-            svg_str = " /* AUTOGENERATED FILE, DO NOT EDIT */ \n"
-            svg_str += " static const char *_" + x[9:] + "_" + name + '_svg = "'
-            while len(b) == 1:
-                svg_str += "\\" + hex(ord(b))[1:]
-                b = svgf.read(1)
-
-            svg_str += '";\n'
-
-            svgf.close()
-
-            # NOTE: It is safe to generate this file here, since this is still executed serially
-            wf = x + "/" + name + "_svg.gen.h"
-            with open(wf, "w") as svgw:
-                svgw.write(svg_str)
-
-
 def no_verbose(sys, env):
     colors = {}
 

+ 0 - 4
platform/android/detect.py

@@ -9,10 +9,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "Android"
 

+ 2 - 2
platform/android/export/export_plugin.cpp

@@ -30,9 +30,9 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
-#include "../run_icon_svg.gen.h"
 #include "gradle_export_util.h"
+#include "logo_svg.gen.h"
+#include "run_icon_svg.gen.h"
 
 #include "core/config/project_settings.h"
 #include "core/io/dir_access.h"

+ 0 - 0
platform/android/logo.svg → platform/android/export/logo.svg


+ 0 - 0
platform/android/run_icon.svg → platform/android/export/run_icon.svg


+ 0 - 4
platform/ios/detect.py

@@ -8,10 +8,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "iOS"
 

+ 1 - 1
platform/ios/export/export_plugin.cpp

@@ -30,7 +30,7 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
+#include "logo_svg.gen.h"
 
 #include "core/string/translation.h"
 #include "editor/editor_node.h"

+ 0 - 0
platform/ios/logo.svg → platform/ios/export/logo.svg


+ 0 - 4
platform/linuxbsd/detect.py

@@ -10,10 +10,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "LinuxBSD"
 

+ 2 - 2
platform/linuxbsd/export/export_plugin.cpp

@@ -30,8 +30,8 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
-#include "../run_icon_svg.gen.h"
+#include "logo_svg.gen.h"
+#include "run_icon_svg.gen.h"
 
 #include "core/config/project_settings.h"
 #include "editor/editor_node.h"

+ 0 - 0
platform/linuxbsd/logo.svg → platform/linuxbsd/export/logo.svg


+ 0 - 0
platform/linuxbsd/run_icon.svg → platform/linuxbsd/export/run_icon.svg


+ 0 - 4
platform/macos/detect.py

@@ -9,10 +9,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "macOS"
 

+ 2 - 2
platform/macos/export/export_plugin.cpp

@@ -30,11 +30,11 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
-#include "../run_icon_svg.gen.h"
 #include "codesign.h"
 #include "lipo.h"
+#include "logo_svg.gen.h"
 #include "macho.h"
+#include "run_icon_svg.gen.h"
 
 #include "core/io/image_loader.h"
 #include "core/string/translation.h"

+ 0 - 0
platform/macos/logo.svg → platform/macos/export/logo.svg


+ 0 - 0
platform/macos/run_icon.svg → platform/macos/export/run_icon.svg


+ 0 - 4
platform/uwp/detect.py

@@ -9,10 +9,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "UWP"
 

+ 1 - 1
platform/uwp/export/export_plugin.cpp

@@ -30,7 +30,7 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
+#include "logo_svg.gen.h"
 
 #include "editor/editor_scale.h"
 #include "editor/editor_settings.h"

+ 0 - 0
platform/uwp/logo.svg → platform/uwp/export/logo.svg


+ 0 - 4
platform/web/detect.py

@@ -17,10 +17,6 @@ if TYPE_CHECKING:
     from SCons import Environment
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "Web"
 

+ 2 - 2
platform/web/export/export_plugin.cpp

@@ -30,8 +30,8 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
-#include "../run_icon_svg.gen.h"
+#include "logo_svg.gen.h"
+#include "run_icon_svg.gen.h"
 
 #include "core/config/project_settings.h"
 #include "editor/editor_scale.h"

+ 0 - 0
platform/web/logo.svg → platform/web/export/logo.svg


+ 0 - 0
platform/web/run_icon.svg → platform/web/export/run_icon.svg


+ 0 - 4
platform/windows/detect.py

@@ -13,10 +13,6 @@ if TYPE_CHECKING:
 STACK_SIZE = 8388608
 
 
-def is_active():
-    return True
-
-
 def get_name():
     return "Windows"
 

+ 2 - 2
platform/windows/export/export_plugin.cpp

@@ -30,8 +30,8 @@
 
 #include "export_plugin.h"
 
-#include "../logo_svg.gen.h"
-#include "../run_icon_svg.gen.h"
+#include "logo_svg.gen.h"
+#include "run_icon_svg.gen.h"
 
 #include "core/config/project_settings.h"
 #include "core/io/image_loader.h"

+ 0 - 0
platform/windows/logo.svg → platform/windows/export/logo.svg


+ 0 - 0
platform/windows/run_icon.svg → platform/windows/export/run_icon.svg


+ 30 - 0
platform_methods.py

@@ -110,3 +110,33 @@ def detect_arch():
         print("Unsupported CPU architecture: " + host_machine)
         print("Falling back to x86_64.")
         return "x86_64"
+
+
+def generate_export_icons(platform_path, platform_name):
+    """
+    Generate headers for logo and run icon for the export plugin.
+    """
+    export_path = platform_path + "/export"
+    svg_names = []
+    if os.path.isfile(export_path + "/logo.svg"):
+        svg_names.append("logo")
+    if os.path.isfile(export_path + "/run_icon.svg"):
+        svg_names.append("run_icon")
+
+    for name in svg_names:
+        svgf = open(export_path + "/" + name + ".svg", "rb")
+        b = svgf.read(1)
+        svg_str = " /* AUTOGENERATED FILE, DO NOT EDIT */ \n"
+        svg_str += " static const char *_" + platform_name + "_" + name + '_svg = "'
+        while len(b) == 1:
+            svg_str += "\\" + hex(ord(b))[1:]
+            b = svgf.read(1)
+
+        svg_str += '";\n'
+
+        svgf.close()
+
+        # NOTE: It is safe to generate this file here, since this is still executed serially.
+        wf = export_path + "/" + name + "_svg.gen.h"
+        with open(wf, "w") as svgw:
+            svgw.write(svg_str)