Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
2e71e30
Revert "fix static checks"
nikitalita Jun 14, 2026
6bf6d27
Reapply "fix static checks"
nikitalita Jun 14, 2026
7966682
rebase godot @ aaaf76403e8
nikitalita Jun 14, 2026
e168142
temp fix for failing bytecode tests
nikitalita Jun 14, 2026
e79d64a
wip bytecode-fix
nikitalita Jun 14, 2026
8ebde43
wip stuff
nikitalita Jun 14, 2026
05371de
wip
nikitalita Jun 14, 2026
3188d37
write multiline strings correctly
nikitalita Jun 14, 2026
6c7a602
fix tests
nikitalita Jun 14, 2026
abf3419
Fix GDREPackedData::has_path not working because path wasn't simplified
nikitalita Jun 14, 2026
e41a3d7
improve log window performance
nikitalita Jun 14, 2026
bb14d5a
Ensure `get_path()` and `get_path_absolute()` are overridden in custo…
nikitalita Jun 14, 2026
fba7421
Add ability to decrypt bespoke non-pck files
nikitalita Jun 14, 2026
f5d6476
stop setting `script_encryption_key`, just get key from GDRESettings …
nikitalita Jun 14, 2026
39941eb
Add custom key sizes to decryptor scripts
nikitalita Jun 14, 2026
0b4e86c
Add `open_encrypted_v3_from_file`
nikitalita Jun 14, 2026
5315544
fix v3 input events having properties written out-of-order
nikitalita Jun 14, 2026
5ce8d53
add (limited) xapk support (no expansion support yet)
nikitalita Jun 14, 2026
91475c2
fix warnings when loading image in previewer
nikitalita Jun 14, 2026
4552acb
cleanup `_ensure_resource_is_packed_scene`
nikitalita Jun 14, 2026
63ce184
improve wget_sync
nikitalita Jun 14, 2026
57c940c
PluginManager: Fix cached files being removed and temporary folder no…
nikitalita Jun 14, 2026
1d6cc4b
refactor wget code into HTTPRequester
nikitalita Jun 14, 2026
289d518
add clear cache cli commands
nikitalita Jun 14, 2026
daa50ab
improve reliability of plugin source retrievers
nikitalita Jun 14, 2026
bf378c9
more verbose error printing during cli recovery
nikitalita Jun 14, 2026
a1ca6da
update custom decryptors docs
nikitalita Jun 14, 2026
a04f808
update static plugin cache
nikitalita Jun 14, 2026
34c2721
add external `axmldec` library
nikitalita Jun 14, 2026
5b6354a
refactor AXML parsing: remove legacy parser and integrate `axmldec` l…
nikitalita Jun 14, 2026
123ec6f
add app version support and updating related settings handling
nikitalita Jun 14, 2026
0b0a0cf
add app version getting
nikitalita Jun 14, 2026
c5d9f3f
add option to CLEAR_ALL in prepop_cache
nikitalita Jun 14, 2026
5fcaa61
bytecode: fix EOF tabbed newlines not being written
nikitalita Jun 14, 2026
fa6a078
bytecode: fix space being written after `tool`
nikitalita Jun 14, 2026
897a53d
Add support for v3.x SCU ASTC format
nikitalita Jun 14, 2026
b7b810a
Texture loader: fix getting flags and data format for all texture types
nikitalita Jun 14, 2026
09cdfaa
add utility functions to `ImageSaver`
nikitalita Jun 14, 2026
ddb36a5
Add layered texture previewer to resource preview
nikitalita Jun 14, 2026
4c96b09
ResourceLoaderCompat cleanup
nikitalita Jun 14, 2026
1fc6d36
preview: load scenes on threads
nikitalita Jun 14, 2026
4a688d4
add additional branches to rebase
nikitalita Jun 14, 2026
9682cee
Fix incorrectly imported layered textures before real loads
nikitalita Jun 14, 2026
0f29b15
Recreate missing Texture2D formats during recovery
nikitalita Jun 14, 2026
8d9f4e4
add GLSL ShaderFile exporter
nikitalita Jun 14, 2026
4b85bc9
scene: fix race conditions caused by freeing scenes/deps on task thread
nikitalita Jun 14, 2026
317d29c
update scenes to 4.7
nikitalita Jun 14, 2026
4f4d882
fix logger window re-updating during every message logged
nikitalita Jun 14, 2026
87d9487
refactor `call_on_next_process` to be in GDREMainLoop
nikitalita Jun 14, 2026
6007966
remove junk
nikitalita Jun 14, 2026
911dc73
fix _process_next_process_calls
nikitalita Jun 14, 2026
1c3a343
Add bin ver & source shasum information to plugin cache
nikitalita Jun 14, 2026
8821528
convert_shader_material_to_base_material tweaks
nikitalita Jun 14, 2026
8fcf4df
Fix translation extractor not being updated for v4.5+ translations
nikitalita Jun 14, 2026
96de6cd
FakeGDScript: fix exported props not being properly detected on 3.x s…
nikitalita Jun 14, 2026
ca65680
Add fallback for setting script properties that were not properly parsed
nikitalita Jun 14, 2026
753c3a2
fix cancelled tasks hanging
nikitalita Jun 14, 2026
e2180e2
fix missing archive sha256sum in static plugin cache
nikitalita Jun 14, 2026
37a6156
write and use sha256 files when downloading to cache
nikitalita Jun 14, 2026
1024cc4
fix GDScriptV1TokenizerBufferCompat columns and eof reading
nikitalita Jun 14, 2026
4feb722
make fake_gdscript use the tokenizer buffer instead of parsing tokens…
nikitalita Jun 14, 2026
5d8be2a
fix bytecode testing after bytecode changes
nikitalita Jun 14, 2026
c511bb2
FakeGDScript: localize path before loading
nikitalita Jun 14, 2026
ea350d2
add FakeGDScript tests
nikitalita Jun 14, 2026
5a43e26
shader material converter tweaks
nikitalita Jun 14, 2026
1d78875
slight _wait_until_next_frame tweaks
nikitalita Jun 14, 2026
8a40a74
bind creation methods on FileAccessEncryptedCustom
nikitalita Jun 14, 2026
1ef448e
move gdre_packed_data creation to register_types.cpp
nikitalita Jun 14, 2026
f9f11e3
bind FileAccessPatchedGDRE creation methods
nikitalita Jun 14, 2026
a43a3c6
Move PackInfo to seperate file
nikitalita Jun 14, 2026
9ecd956
add the ability to check for custom magic in `seek_offset_from_exe`
nikitalita Jun 14, 2026
3cf04fc
refactor GDREPackedSource::get_file, expose `GDREPackedSource::get_bu…
nikitalita Jun 14, 2026
be71e7c
fix decryption not working after script_encryption_key change
nikitalita Jun 14, 2026
0650bb7
Add custom pack source functionality and related methods
nikitalita Jun 14, 2026
5b2ecb9
update static plugin cache
nikitalita Jun 14, 2026
4aa8868
clean up child build files
nikitalita Jun 14, 2026
745252c
prevent rebuilds of vtracer and godotmonodecomp when unnecessary
nikitalita Jun 14, 2026
e58bbbc
fix mono_decomp and vtracer being built out-of-order
nikitalita Jun 14, 2026
65230c3
fix texture_layered_previewer.cpp not building in template builds
nikitalita Jun 14, 2026
f9e5062
print possibles when failing to detect plugin version
nikitalita Jun 14, 2026
b5ec83f
clean up copying and lipoing in mono_decomp build
nikitalita Jun 14, 2026
2a34f70
move options and various env manip into config.py
nikitalita Jun 14, 2026
a0e435d
move setting env lib paths into respective builders
nikitalita Jun 14, 2026
7549d46
remove unneeded path params from builders
nikitalita Jun 14, 2026
4b0ca04
move tests to cpp files
nikitalita Jun 14, 2026
44634a6
fix bytecode tests
nikitalita Jun 14, 2026
e8566f4
cleanup build
nikitalita Jun 14, 2026
67818c0
fix scsub
nikitalita Jun 14, 2026
8bbaaeb
cleanup build
nikitalita Jun 14, 2026
bf7b695
turn off static mono decomp builds, it still doesn't work
nikitalita Jun 14, 2026
a1c6c0b
rebase @ df6235838b6
nikitalita Jun 14, 2026
f75e9d0
fix static checks
nikitalita Jun 14, 2026
6f287ab
cleanup shaderfile_exporter, default to no vulkan semantics
nikitalita Jun 14, 2026
3e7d120
minor gdre_custom_pack_source.gd cleanup
nikitalita Jun 14, 2026
bd95a95
default to clang-format-21 for static checks
nikitalita Jun 14, 2026
df2957c
fix logging not happening on main thread
nikitalita Jun 14, 2026
0557ff7
only print try_force_set_property warning message if in debug
nikitalita Jun 14, 2026
8a2887a
shaderfile_exporter: use explicit namespaces to prevent build errors …
nikitalita Jun 14, 2026
ec10d3a
fix static checks
nikitalita Jun 14, 2026
c5bd954
integrate request timeout into HTTPRequester
nikitalita Jun 14, 2026
214a1be
update prepop cache
nikitalita Jun 14, 2026
da7e18d
build the spirv parts of the exporter as seperate obj to isolate exce…
nikitalita Jun 14, 2026
70c2770
fix static checks
nikitalita Jun 14, 2026
e89316c
fix windows builds
nikitalita Jun 14, 2026
2c74319
fix windows build
nikitalita Jun 15, 2026
baeb14c
fix one named definition warning for pcfg_loader
nikitalita Jun 15, 2026
50fa016
set original class in OTE
nikitalita Jun 15, 2026
6dcd7c0
fix copying mono lib on windows
nikitalita Jun 18, 2026
5ff1912
fix force_link_builder import not working in certain environments
nikitalita Jun 18, 2026
4421de0
remove type hints that failed in certain environments
nikitalita Jun 18, 2026
cd6d6b2
fix windows build not caching dll
nikitalita Jun 18, 2026
b130a0a
fix windows build
nikitalita Jun 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/all_builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ env:
# TODO: change this back to godotengine/godot and target master when #109685 and #109475 are merged
GODOT_REPOSITORY: nikitalita/godot
# Change the README too
GODOT_MAIN_SYNC_REF: gdre-wb-a8643700ce8
GODOT_MAIN_SYNC_REF: gdre-wb-df6235838b6
SCONSFLAGS: verbose=yes warnings=all werror=no module_text_server_fb_enabled=yes minizip=yes deprecated=yes angle=yes accesskit=no
SCONSFLAGS_TEMPLATE: disable_path_overrides=no no_editor_splash=yes module_camera_enabled=no module_mobile_vr_enabled=no module_upnp_enabled=no module_websocket_enabled=no module_csg_enabled=yes module_gridmap_enabled=yes use_static_cpp=yes builtin_freetype=yes builtin_libpng=yes builtin_zlib=yes builtin_libwebp=yes builtin_libvorbis=yes builtin_libogg=yes disable_3d=no
SCONS_CACHE_MSVC_CONFIG: true
Expand Down
4 changes: 2 additions & 2 deletions .scripts/clang_format.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/sh

CLANG_FORMAT_MAJOR="18"
DEFAULT_CLANG_FORMAT=clang-format-18
CLANG_FORMAT_MAJOR="21"
DEFAULT_CLANG_FORMAT=clang-format-21
CLANG_FORMAT=${CLANG_FORMAT:-$DEFAULT_CLANG_FORMAT}
# check if $CLANG_FORMAT is available, use --version
if ! command -v "$CLANG_FORMAT" &> /dev/null; then
Expand Down
7 changes: 7 additions & 0 deletions .scripts/rebase_godot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@ BRANCHES_TO_MERGE=(
fix-compat-array-shapes
fix-diraccess-windows
fix-cli-parser
gltf-fix-skeleton-bone
gltf-fix-double-precision
gltf-fix-vertex-colors
ensure-bptc-textures
fix-v3-meshes
fix-clearcoat-gloss
fix-blend-export
)

# set fail on error
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ During SCons configure, the module auto-applies the patches under `modules/gdsde

### Requirements

[Our fork of godot](https://github.com/nikitalita/godot) @ branch `gdre-wb-a8643700ce8`
[Our fork of godot](https://github.com/nikitalita/godot) @ branch `gdre-wb-df6235838b6`

- Support for building on 3.x has been dropped and no new features are being pushed
- Godot RE Tools still retains the ability to decompile 3.x and 2.x projects, however.
Expand Down
178 changes: 97 additions & 81 deletions SCsub
Original file line number Diff line number Diff line change
@@ -1,38 +1,28 @@
#!/usr/bin/env python

from SCons.Script.SConscript import SConsEnvironment
import os
from typing import TYPE_CHECKING

from build import gdre_icon_builder
from build.common import add_libs_to_env, add_source_groups, append_cpppaths, find_llvm_prebuild_path, get_sources
from build.mono_decomp import build_godot_mono_decomp, get_godot_mono_decomp_lib_dir
from build.paths import *
from build.versioning import write_version_header
from build.vtracer import build_vtracer, get_vtracer_lib_dir
from build import gdre_icon_builder # pyright: ignore[reportImplicitRelativeImport]
from build.common import add_source_groups, append_cpppaths # pyright: ignore[reportImplicitRelativeImport]
from build.mono_decomp import ( # pyright: ignore[reportImplicitRelativeImport]
build_godot_mono_decomp,
get_godot_mono_decomp_lib_dir,
)
from build.paths import * # pyright: ignore[reportImplicitRelativeImport]
from build.versioning import write_version_header # pyright: ignore[reportImplicitRelativeImport]
from build.vtracer import build_vtracer, get_vtracer_lib_dir # pyright: ignore[reportImplicitRelativeImport]

if TYPE_CHECKING:
from SCons.Environment import Environment
from SCons.Builder import Builder
from SCons import Import
from ...misc.utility.scons_hints import *

env: Environment = None
env_modules: Environment = None
env_gdsdecomp: Environment = None

Import("env")
Import("env_modules")

opts = Variables([], ARGUMENTS)
opts.Add(BoolVariable("disable_godot_mono_decomp", "Disable Godot Mono Decompilation", False))
opts.Add(BoolVariable("disable_gifski", "Disable Gifski", False))
opts.Update(env)

MODULE_DIR = get_module_dir(env)
BUILD_DIR = get_build_dir(env)
EXTERNAL_DIR = get_external_dir(MODULE_DIR)
VTRACER_DIR = get_vtracer_dir(MODULE_DIR)
VTRACER_BUILD_DIR = get_vtracer_build_dir(MODULE_DIR)
GODOT_MONO_DECOMP_DIR = get_godot_mono_decomp_dir(MODULE_DIR)

INCLUDE_DIRS = [
VTRACER_INCLUDE_DIR,
Expand All @@ -43,40 +33,67 @@ INCLUDE_DIRS = [
LIBVORBIS_THIRDPARTY_DIR,
LIBTHEORA_THIRDPARTY_DIR,
MBEDTLS_THIRDPARTY_DIR,
UNSIGNED_HASH_INCLUDE_DIR
UNSIGNED_HASH_INCLUDE_DIR,
AXML_DEC_INCLUDE_DIR,
]

# TODO: Keep static branch intact for future use. Runtime/dotnet issues still block rollout.
mono_native_lib_type = "Shared"
is_using_clang = env["CXX"].lower().endswith("clang++")
if env["platform"] == "android" or (is_using_clang and env["platform"] == "macos"):
mono_native_lib_type = "Shared"

# hack to force the minimum macOS version to 10.15; it is currently hard-coded to 10.13
# TODO: remove this hack once the minimum macOS version is updated to 10.15
if env["platform"] == "macos" and env["arch"] == "x86_64":
min_version_flag = "-mmacosx-version-min=10.15"
for build_env in [env, env_modules]:
build_env.Append(CPPFLAGS=[min_version_flag])
build_env.Append(LINKFLAGS=[min_version_flag])
build_env.Append(CXXFLAGS=[min_version_flag])
build_env.Append(ASFLAGS=[min_version_flag])

env_gdsdecomp = env_modules.Clone()
opts.Update(env_gdsdecomp)

# spirv-interop
spirv_interop_obj = []

spirv_interop_sources: list[str] = []

# if metal isn't being built, we have to build spirv-cross ourselves because it's not being built by the engine
if not "metal" in env or not env["metal"]:
thirdparty_spirv_headers_dir = "#thirdparty/spirv-headers/"
thirdparty_dir = "#thirdparty/spirv-cross/"
spirv_interop_sources = [
"spirv_cfg.cpp",
"spirv_cross.cpp",
"spirv_parser.cpp",
"spirv_msl.cpp",
"spirv_reflect.cpp",
"spirv_glsl.cpp",
"spirv_cross_parsed_ir.cpp",
"spirv_cross_util.cpp",
]
spirv_interop_sources = [thirdparty_dir + file for file in spirv_interop_sources]
spirv_interop_sources.append(SPIRV_INTEROP_DIR + "spirv-transpiler.cpp")

env_spirv_interop = env_gdsdecomp.Clone()
env_spirv_interop.disable_warnings()
env_spirv_interop.add_source_files(spirv_interop_obj, spirv_interop_sources)
if env.msvc:
if "_HAS_EXCEPTIONS" in env_spirv_interop["CPPDEFINES"]:
env_spirv_interop["CPPDEFINES"].remove("_HAS_EXCEPTIONS")
env_spirv_interop.Append(CXXFLAGS=["/EHsc"])
else:
if "-fno-exceptions" in env_spirv_interop["CXXFLAGS"]:
env_spirv_interop["CXXFLAGS"].remove("-fno-exceptions")
env_spirv_interop.Append(CXXFLAGS=["-fexceptions"])
append_cpppaths(
env_spirv_interop,
[
SPIRV_INTEROP_DIR,
SPIRV_CROSS_THIRDPARTY_DIR,
SPIRV_CROSS_THIRDPARTY_INCLUDE_DIR,
SPIRV_HEADERS_THIRDPARTY_DIR,
],
)
env.modules_sources += spirv_interop_obj # pyright: ignore[reportAttributeAccessIssue]


if env["tests"]:
env_gdsdecomp.Append(CPPDEFINES=["TESTS_ENABLED"])
append_cpppaths(
env,
INCLUDE_DIRS,
)

append_cpppaths(
env_gdsdecomp,
INCLUDE_DIRS,
)


if env["disable_exceptions"]:
env_gdsdecomp.Append(CPPDEFINES=["DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS"])
env_gdsdecomp.Append(CPPDEFINES=["ENABLE_3_X_SCENE_LOADING"])
Expand All @@ -99,11 +116,7 @@ env_gdsdecomp.Prepend(CPPPATH=[MMP3_THIRDPARTY_DIR])
if env["builtin_libwebp"]:
env_gdsdecomp.Prepend(CPPPATH=[WEBP_THIRDPARTY_DIR, WEBP_THIRDPARTY_DIR + "src/"])

env.Append(LIBPATH=[get_vtracer_lib_dir(env, VTRACER_BUILD_DIR)])
env.Append(LIBPATH=[BUILD_DIR])
env.Append(
LIBPATH=[get_godot_mono_decomp_lib_dir(GODOT_MONO_DECOMP_DIR, env["platform"], env["arch"], env.get("dev_build", False))]
)

module_obj = []
common_sources = [
Expand All @@ -116,54 +129,57 @@ common_sources = [
"main/*.cpp",
"plugin_manager/*.cpp",
"utility/*.cpp",
"external/axmldec/lib/jitana/util/*.cpp",
"external/tga/*.cpp",
"external/tinygltf/tiny_gltf.cc",
"module_etc_decompress/*.cpp",
f'{UNSIGNED_HASH_SRC_DIR}/*.cpp',
f'{UNSIGNED_HASH_SRC_DIR}/*.c',
f"{UNSIGNED_HASH_SRC_DIR}/*.cpp",
f"{UNSIGNED_HASH_SRC_DIR}/*.c",
]
add_source_groups(env_gdsdecomp, module_obj, common_sources)
if env["target"] == "editor":
add_source_groups(env_gdsdecomp, module_obj, ["editor/*.cpp"])
if env["tests"]:
add_source_groups(env_gdsdecomp, module_obj, ["tests/*.cpp"])

build_vtracer(
root_env=env,
env_gdsdecomp=env_gdsdecomp,
module_obj=module_obj,
module_dir=MODULE_DIR,
external_dir=EXTERNAL_DIR,
vtracer_prefix=VTRACER_PREFIX,
vtracer_dir=VTRACER_DIR,
vtracer_build_dir=VTRACER_BUILD_DIR,
vtracer_libs=VTRACER_LIBS,
get_sources=get_sources,
add_libs_to_env=add_libs_to_env,
builder_class=Builder,
find_llvm_prebuild_path=find_llvm_prebuild_path,
)


build_vtracer(root_env=env, env_gdsdecomp=env_gdsdecomp, module_obj=module_obj)

if "disable_gifski" in env and env["disable_gifski"]:
env_gdsdecomp.Append(CPPDEFINES=["GIFSKI_DISABLED"])
if "disable_godot_mono_decomp" in env and env["disable_godot_mono_decomp"]:
env_gdsdecomp.Append(CPPDEFINES=["GODOT_MONO_DECOMP_DISABLED"])
else:
build_godot_mono_decomp(
env=env,
env_gdsdecomp=env_gdsdecomp,
module_obj=module_obj,
module_dir=MODULE_DIR,
build_dir=BUILD_DIR,
mono_native_lib_type=mono_native_lib_type,
godot_mono_decomp_parent=GODOT_MONO_DECOMP_PARENT,
godot_mono_decomp_dir=GODOT_MONO_DECOMP_DIR,
godot_mono_decomp_libs=GODOT_MONO_DECOMP_LIBS,
get_sources=get_sources,
add_libs_to_env=add_libs_to_env,
builder_class=Builder,
copy_action=Copy,
build_godot_mono_decomp(env=env, env_gdsdecomp=env_gdsdecomp, module_obj=module_obj)


if env["tests"]:
import glob
import sys

test_obj = []
env_tests = env_gdsdecomp.Clone()
force_link_sources = glob.glob(os.path.join(MODULE_DIR, "tests", "*.cpp"))

add_source_groups(env_tests, test_obj, ["#modules/gdsdecomp/tests/*.cpp"])
env.modules_sources += test_obj # pyright: ignore[reportAttributeAccessIssue]

test_builders_module_dir = env.Dir("#tests").abspath
sys.path.insert(0, test_builders_module_dir)
from test_builders import force_link_builder # pyright: ignore[reportMissingImports]

def gen_tests_header_fixed(target, source, env):
force_link_builder(target, source, env)
contents = open(str(target[0].abspath), "r", encoding="utf-8").read()
with open(str(target[0].abspath), "w", encoding="utf-8") as file:
file.write(contents.replace("force_link_tests()", "force_link_gdre_tests()"))
sys.path.remove(test_builders_module_dir)

force_link_header = env.CommandNoCache(
"#modules/gdsdecomp/tests/gdre_tests_force_link.gen.h",
env.Value(force_link_sources),
env.Run(gen_tests_header_fixed),
)

env.modules_sources += module_obj
env.Depends("#modules/modules_tests.gen.h", force_link_header)


env.modules_sources += module_obj # pyright: ignore[reportAttributeAccessIssue]
6 changes: 1 addition & 5 deletions build/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,16 @@ def get_cmd_env(build_env):
return cmd_env


def add_libs_to_env(env, env_gdsdecomp, module_obj, libs, sources):
def add_libs_to_env(env, libs):
for lib in libs:
env_gdsdecomp.Depends(lib, sources)
if env.msvc:
if not lib.endswith(".lib"):
lib = lib.rsplit(".", 1)[0] + ".lib"
env.Append(LINKFLAGS=[lib])
continue

lib_name = os.path.basename(lib).split(".")[0]
print("LIB NAME", lib_name)
env.Append(LIBS=[lib_name])
env.Depends(module_obj, libs)


# TODO: This helper is currently unused in SCsub.
Expand Down Expand Up @@ -107,4 +104,3 @@ def append_cpppaths(build_env, paths):
def add_source_groups(build_env, module_obj, source_globs):
for source_glob in source_globs:
build_env.add_source_files(module_obj, source_glob)

Loading
Loading