feat: updated engine version to 4.4-rc1
This commit is contained in:
parent
ee00efde1f
commit
21ba8e33af
5459 changed files with 1128836 additions and 198305 deletions
|
|
@ -36,11 +36,16 @@ for file in sys.argv[1:]:
|
|||
break
|
||||
|
||||
if HEADER_CHECK_OFFSET < 0:
|
||||
invalid.append(file)
|
||||
continue
|
||||
|
||||
HEADER_BEGIN_OFFSET = HEADER_CHECK_OFFSET + 1
|
||||
HEADER_END_OFFSET = len(lines) - 1
|
||||
|
||||
if HEADER_BEGIN_OFFSET >= HEADER_END_OFFSET:
|
||||
invalid.append(file)
|
||||
continue
|
||||
|
||||
split = file.split("/") # Already in posix-format.
|
||||
|
||||
prefix = ""
|
||||
|
|
|
|||
21
engine/misc/scripts/install_d3d12_sdk_windows.py
Executable file → Normal file
21
engine/misc/scripts/install_d3d12_sdk_windows.py
Executable file → Normal file
|
|
@ -6,16 +6,9 @@ import subprocess
|
|||
import sys
|
||||
import urllib.request
|
||||
|
||||
# Enable ANSI escape code support on Windows 10 and later (for colored console output).
|
||||
# <https://github.com/python/cpython/issues/73245>
|
||||
if sys.platform == "win32":
|
||||
from ctypes import byref, c_int, windll
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../"))
|
||||
|
||||
stdout_handle = windll.kernel32.GetStdHandle(c_int(-11))
|
||||
mode = c_int(0)
|
||||
windll.kernel32.GetConsoleMode(c_int(stdout_handle), byref(mode))
|
||||
mode = c_int(mode.value | 4)
|
||||
windll.kernel32.SetConsoleMode(c_int(stdout_handle), mode)
|
||||
from misc.utility.color import Ansi
|
||||
|
||||
# Base Godot dependencies path
|
||||
# If cross-compiling (no LOCALAPPDATA), we install in `bin`
|
||||
|
|
@ -49,7 +42,7 @@ if not os.path.exists(deps_folder):
|
|||
os.makedirs(deps_folder)
|
||||
|
||||
# Mesa NIR
|
||||
print("\x1b[1m[1/3] Mesa NIR\x1b[0m")
|
||||
print(f"{Ansi.BOLD}[1/3] Mesa NIR{Ansi.RESET}")
|
||||
if os.path.isfile(mesa_archive):
|
||||
os.remove(mesa_archive)
|
||||
print(f"Downloading Mesa NIR {mesa_filename} ...")
|
||||
|
|
@ -76,7 +69,7 @@ if dlltool == "":
|
|||
dlltool = shutil.which("x86_64-w64-mingw32-dlltool") or ""
|
||||
has_mingw = gendef != "" and dlltool != ""
|
||||
|
||||
print("\x1b[1m[2/3] WinPixEventRuntime\x1b[0m")
|
||||
print(f"{Ansi.BOLD}[2/3] WinPixEventRuntime{Ansi.RESET}")
|
||||
if os.path.isfile(pix_archive):
|
||||
os.remove(pix_archive)
|
||||
print(f"Downloading WinPixEventRuntime {pix_version} ...")
|
||||
|
|
@ -107,7 +100,7 @@ else:
|
|||
print(f"WinPixEventRuntime {pix_version} installed successfully.\n")
|
||||
|
||||
# DirectX 12 Agility SDK
|
||||
print("\x1b[1m[3/3] DirectX 12 Agility SDK\x1b[0m")
|
||||
print(f"{Ansi.BOLD}[3/3] DirectX 12 Agility SDK{Ansi.RESET}")
|
||||
if os.path.isfile(agility_sdk_archive):
|
||||
os.remove(agility_sdk_archive)
|
||||
print(f"Downloading DirectX 12 Agility SDK {agility_sdk_version} ...")
|
||||
|
|
@ -123,5 +116,5 @@ os.remove(agility_sdk_archive)
|
|||
print(f"DirectX 12 Agility SDK {agility_sdk_version} installed successfully.\n")
|
||||
|
||||
# Complete message
|
||||
print(f'\x1b[92mAll Direct3D 12 SDK components were installed to "{deps_folder}" successfully!\x1b[0m')
|
||||
print('\x1b[92mYou can now build Godot with Direct3D 12 support enabled by running "scons d3d12=yes".\x1b[0m')
|
||||
print(f'{Ansi.GREEN}All Direct3D 12 SDK components were installed to "{deps_folder}" successfully!{Ansi.RESET}')
|
||||
print(f'{Ansi.GREEN}You can now build Godot with Direct3D 12 support enabled by running "scons d3d12=yes".{Ansi.RESET}')
|
||||
|
|
|
|||
|
|
@ -2,21 +2,40 @@
|
|||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
new_ver_full=''
|
||||
|
||||
# Check currently installed and latest available Vulkan SDK versions.
|
||||
if command -v jq 2>&1 >/dev/null; then
|
||||
curl -L "https://sdk.lunarg.com/sdk/download/latest/mac/config.json" -o /tmp/vulkan-sdk.json
|
||||
|
||||
new_ver_full=`jq -r '.version' /tmp/vulkan-sdk.json`
|
||||
new_ver=`echo "$new_ver_full" | awk -F. '{ printf("%d%02d%04d%02d\n", $1,$2,$3,$4); }';`
|
||||
|
||||
rm -f /tmp/vulkan-sdk.json
|
||||
|
||||
for f in $HOME/VulkanSDK/*; do
|
||||
if [ -d "$f" ]; then
|
||||
f=`echo "${f##*/}" | awk -F. '{ printf("%d%02d%04d%02d\n", $1,$2,$3,$4); }';`
|
||||
if [ $f -ge $new_ver ]; then
|
||||
echo 'Latest or newer Vulkan SDK is already installed. Skipping installation.'
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Download and install the Vulkan SDK.
|
||||
curl -L "https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.dmg" -o /tmp/vulkan-sdk.dmg
|
||||
hdiutil attach /tmp/vulkan-sdk.dmg -mountpoint /Volumes/vulkan-sdk
|
||||
/Volumes/vulkan-sdk/InstallVulkan.app/Contents/MacOS/InstallVulkan \
|
||||
--accept-licenses --default-answer --confirm-command install
|
||||
curl -L "https://sdk.lunarg.com/sdk/download/latest/mac/vulkan-sdk.zip" -o /tmp/vulkan-sdk.zip
|
||||
unzip /tmp/vulkan-sdk.zip -d /tmp
|
||||
|
||||
cnt=5
|
||||
until hdiutil detach -force /Volumes/vulkan-sdk
|
||||
do
|
||||
[[ cnt -eq "0" ]] && break
|
||||
sleep 1
|
||||
((cnt--))
|
||||
done
|
||||
if [ -d "/tmp/InstallVulkan-$new_ver_full.app" ]; then
|
||||
/tmp/InstallVulkan-$new_ver_full.app/Contents/MacOS/InstallVulkan-$new_ver_full --accept-licenses --default-answer --confirm-command install
|
||||
rm -rf /tmp/InstallVulkan-$new_ver_full.app
|
||||
elif [ -d "/tmp/InstallVulkan.app" ]; then
|
||||
/tmp/InstallVulkan.app/Contents/MacOS/InstallVulkan --accept-licenses --default-answer --confirm-command install
|
||||
rm -rf /tmp/InstallVulkan.app
|
||||
fi
|
||||
|
||||
rm -f /tmp/vulkan-sdk.dmg
|
||||
rm -f /tmp/vulkan-sdk.zip
|
||||
|
||||
echo 'Vulkan SDK installed successfully! You can now build Godot by running "scons".'
|
||||
|
|
|
|||
120
engine/misc/scripts/ucaps_fetch.py
Executable file
120
engine/misc/scripts/ucaps_fetch.py
Executable file
|
|
@ -0,0 +1,120 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# Script used to dump case mappings from
|
||||
# the Unicode Character Database to the `ucaps.h` file.
|
||||
# NOTE: This script is deliberately not integrated into the build system;
|
||||
# you should run it manually whenever you want to update the data.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from typing import Final, List, Tuple
|
||||
from urllib.request import urlopen
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.path.insert(1, os.path.join(os.path.dirname(__file__), "../../"))
|
||||
|
||||
from methods import generate_copyright_header
|
||||
|
||||
URL: Final[str] = "https://www.unicode.org/Public/16.0.0/ucd/UnicodeData.txt"
|
||||
|
||||
|
||||
lower_to_upper: List[Tuple[str, str]] = []
|
||||
upper_to_lower: List[Tuple[str, str]] = []
|
||||
|
||||
|
||||
def parse_unicode_data() -> None:
|
||||
lines: List[str] = [line.decode("utf-8") for line in urlopen(URL)]
|
||||
|
||||
for line in lines:
|
||||
split_line: List[str] = line.split(";")
|
||||
|
||||
code_value: str = split_line[0].strip()
|
||||
uppercase_mapping: str = split_line[12].strip()
|
||||
lowercase_mapping: str = split_line[13].strip()
|
||||
|
||||
if uppercase_mapping:
|
||||
lower_to_upper.append((f"0x{code_value}", f"0x{uppercase_mapping}"))
|
||||
if lowercase_mapping:
|
||||
upper_to_lower.append((f"0x{code_value}", f"0x{lowercase_mapping}"))
|
||||
|
||||
|
||||
def make_cap_table(table_name: str, len_name: str, table: List[Tuple[str, str]]) -> str:
|
||||
result: str = f"static const int {table_name}[{len_name}][2] = {{\n"
|
||||
|
||||
for first, second in table:
|
||||
result += f"\t{{ {first}, {second} }},\n"
|
||||
|
||||
result += "};\n\n"
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def generate_ucaps_fetch() -> None:
|
||||
parse_unicode_data()
|
||||
|
||||
source: str = generate_copyright_header("ucaps.h")
|
||||
|
||||
source += f"""
|
||||
#ifndef UCAPS_H
|
||||
#define UCAPS_H
|
||||
|
||||
// This file was generated using the `misc/scripts/ucaps_fetch.py` script.
|
||||
|
||||
#define LTU_LEN {len(lower_to_upper)}
|
||||
#define UTL_LEN {len(upper_to_lower)}\n\n"""
|
||||
|
||||
source += make_cap_table("caps_table", "LTU_LEN", lower_to_upper)
|
||||
source += make_cap_table("reverse_caps_table", "UTL_LEN", upper_to_lower)
|
||||
|
||||
source += """static int _find_upper(int ch) {
|
||||
\tint low = 0;
|
||||
\tint high = LTU_LEN - 1;
|
||||
\tint middle;
|
||||
|
||||
\twhile (low <= high) {
|
||||
\t\tmiddle = (low + high) / 2;
|
||||
|
||||
\t\tif (ch < caps_table[middle][0]) {
|
||||
\t\t\thigh = middle - 1; // Search low end of array.
|
||||
\t\t} else if (caps_table[middle][0] < ch) {
|
||||
\t\t\tlow = middle + 1; // Search high end of array.
|
||||
\t\t} else {
|
||||
\t\t\treturn caps_table[middle][1];
|
||||
\t\t}
|
||||
\t}
|
||||
|
||||
\treturn ch;
|
||||
}
|
||||
|
||||
static int _find_lower(int ch) {
|
||||
\tint low = 0;
|
||||
\tint high = UTL_LEN - 1;
|
||||
\tint middle;
|
||||
|
||||
\twhile (low <= high) {
|
||||
\t\tmiddle = (low + high) / 2;
|
||||
|
||||
\t\tif (ch < reverse_caps_table[middle][0]) {
|
||||
\t\t\thigh = middle - 1; // Search low end of array.
|
||||
\t\t} else if (reverse_caps_table[middle][0] < ch) {
|
||||
\t\t\tlow = middle + 1; // Search high end of array.
|
||||
\t\t} else {
|
||||
\t\t\treturn reverse_caps_table[middle][1];
|
||||
\t\t}
|
||||
\t}
|
||||
|
||||
\treturn ch;
|
||||
}
|
||||
|
||||
#endif // UCAPS_H
|
||||
"""
|
||||
|
||||
ucaps_path: str = os.path.join(os.path.dirname(__file__), "../../core/string/ucaps.h")
|
||||
with open(ucaps_path, "w", newline="\n") as f:
|
||||
f.write(source)
|
||||
|
||||
print("`ucaps.h` generated successfully.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
generate_ucaps_fetch()
|
||||
|
|
@ -8,6 +8,7 @@ fi
|
|||
|
||||
if [ $# != 1 ]; then
|
||||
echo "Usage: @0 <path-to-godot-executable>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
api_validation_dir="$( dirname -- "$( dirname -- "${BASH_SOURCE[0]//\.\//}" )" )/extension_api_validation/"
|
||||
|
|
@ -70,7 +71,9 @@ while read -r file; do
|
|||
obsolete_validation_error="$(comm -13 "$validation_output" "$allowed_errors")"
|
||||
|
||||
if [ -n "$obsolete_validation_error" ] && [ "$warn_extra" = "1" ]; then
|
||||
make_annotation "The following validation errors no longer occur (compared to $reference_tag):" "$obsolete_validation_error" warning "$file"
|
||||
#make_annotation "The following validation errors no longer occur (compared to $reference_tag):" "$obsolete_validation_error" warning "$file"
|
||||
echo "The following validation errors no longer occur (compared to $reference_tag):"
|
||||
echo "$obsolete_validation_error"
|
||||
fi
|
||||
if [ -n "$new_validation_error" ]; then
|
||||
make_annotation "Compatibility to $reference_tag is broken in the following ways:" "$new_validation_error" error "$file"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue