summaryrefslogtreecommitdiffstats
path: root/modules/text_server_adv/gdextension_build/methods.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/text_server_adv/gdextension_build/methods.py')
-rw-r--r--modules/text_server_adv/gdextension_build/methods.py119
1 files changed, 64 insertions, 55 deletions
diff --git a/modules/text_server_adv/gdextension_build/methods.py b/modules/text_server_adv/gdextension_build/methods.py
index 32dbc59fd4..3453c3e8f0 100644
--- a/modules/text_server_adv/gdextension_build/methods.py
+++ b/modules/text_server_adv/gdextension_build/methods.py
@@ -1,66 +1,75 @@
import os
import sys
+from enum import Enum
+# Colors are disabled in non-TTY environments such as pipes. This means
+# that if output is redirected to a file, it won't contain color codes.
+# Colors are always enabled on continuous integration.
+_colorize = bool(sys.stdout.isatty() or os.environ.get("CI"))
-def no_verbose(sys, env):
- colors = {}
- # Colors are disabled in non-TTY environments such as pipes. This means
- # that if output is redirected to a file, it will not contain color codes
- if sys.stdout.isatty():
- colors["blue"] = "\033[0;94m"
- colors["bold_blue"] = "\033[1;94m"
- colors["reset"] = "\033[0m"
- else:
- colors["blue"] = ""
- colors["bold_blue"] = ""
- colors["reset"] = ""
+class ANSI(Enum):
+ """
+ Enum class for adding ansi colorcodes directly into strings.
+ Automatically converts values to strings representing their
+ internal value, or an empty string in a non-colorized scope.
+ """
+
+ RESET = "\x1b[0m"
+
+ BOLD = "\x1b[1m"
+ ITALIC = "\x1b[3m"
+ UNDERLINE = "\x1b[4m"
+ STRIKETHROUGH = "\x1b[9m"
+ REGULAR = "\x1b[22;23;24;29m"
+
+ BLACK = "\x1b[30m"
+ RED = "\x1b[31m"
+ GREEN = "\x1b[32m"
+ YELLOW = "\x1b[33m"
+ BLUE = "\x1b[34m"
+ MAGENTA = "\x1b[35m"
+ CYAN = "\x1b[36m"
+ WHITE = "\x1b[37m"
+
+ PURPLE = "\x1b[38;5;93m"
+ PINK = "\x1b[38;5;206m"
+ ORANGE = "\x1b[38;5;214m"
+ GRAY = "\x1b[38;5;244m"
+
+ def __str__(self) -> str:
+ global _colorize
+ return str(self.value) if _colorize else ""
+
+
+def no_verbose(env):
+ colors = [ANSI.BLUE, ANSI.BOLD, ANSI.REGULAR, ANSI.RESET]
# There is a space before "..." to ensure that source file names can be
# Ctrl + clicked in the VS Code terminal.
- compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- java_compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- compile_shared_source_message = "{}Compiling shared {}$SOURCE{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- link_program_message = "{}Linking Program {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- link_library_message = "{}Linking Static Library {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- ranlib_library_message = "{}Ranlib Library {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- link_shared_library_message = "{}Linking Shared Library {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- java_library_message = "{}Creating Java Archive {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- compiled_resource_message = "{}Creating Compiled Resource {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
- generated_file_message = "{}Generating {}$TARGET{} ...{}".format(
- colors["blue"], colors["bold_blue"], colors["blue"], colors["reset"]
- )
-
- env.Append(CXXCOMSTR=[compile_source_message])
- env.Append(CCCOMSTR=[compile_source_message])
- env.Append(SHCCCOMSTR=[compile_shared_source_message])
- env.Append(SHCXXCOMSTR=[compile_shared_source_message])
- env.Append(ARCOMSTR=[link_library_message])
- env.Append(RANLIBCOMSTR=[ranlib_library_message])
- env.Append(SHLINKCOMSTR=[link_shared_library_message])
- env.Append(LINKCOMSTR=[link_program_message])
- env.Append(JARCOMSTR=[java_library_message])
- env.Append(JAVACCOMSTR=[java_compile_source_message])
- env.Append(RCCOMSTR=[compiled_resource_message])
- env.Append(GENCOMSTR=[generated_file_message])
+ compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format(*colors)
+ java_compile_source_message = "{}Compiling {}$SOURCE{} ...{}".format(*colors)
+ compile_shared_source_message = "{}Compiling shared {}$SOURCE{} ...{}".format(*colors)
+ link_program_message = "{}Linking Program {}$TARGET{} ...{}".format(*colors)
+ link_library_message = "{}Linking Static Library {}$TARGET{} ...{}".format(*colors)
+ ranlib_library_message = "{}Ranlib Library {}$TARGET{} ...{}".format(*colors)
+ link_shared_library_message = "{}Linking Shared Library {}$TARGET{} ...{}".format(*colors)
+ java_library_message = "{}Creating Java Archive {}$TARGET{} ...{}".format(*colors)
+ compiled_resource_message = "{}Creating Compiled Resource {}$TARGET{} ...{}".format(*colors)
+ generated_file_message = "{}Generating {}$TARGET{} ...{}".format(*colors)
+
+ env["CXXCOMSTR"] = compile_source_message
+ env["CCCOMSTR"] = compile_source_message
+ env["SHCCCOMSTR"] = compile_shared_source_message
+ env["SHCXXCOMSTR"] = compile_shared_source_message
+ env["ARCOMSTR"] = link_library_message
+ env["RANLIBCOMSTR"] = ranlib_library_message
+ env["SHLINKCOMSTR"] = link_shared_library_message
+ env["LINKCOMSTR"] = link_program_message
+ env["JARCOMSTR"] = java_library_message
+ env["JAVACCOMSTR"] = java_compile_source_message
+ env["RCCOMSTR"] = compiled_resource_message
+ env["GENCOMSTR"] = generated_file_message
def disable_warnings(self):