mirror of
https://github.com/wled/WLED.git
synced 2025-07-12 21:36:32 +00:00
Merge pull request #4738 from willmmiles/validate-usermods-after-removal
Fix validation after removing a usermod
This commit is contained in:
commit
bbfe90d2ca
@ -77,17 +77,18 @@ def wrapped_ConfigureProjectLibBuilder(xenv):
|
||||
for dep in result.depbuilders:
|
||||
cached_add_includes(dep, processed_deps, extra_include_dirs)
|
||||
|
||||
wled_deps = [dep for dep in result.depbuilders if is_wled_module(dep)]
|
||||
|
||||
broken_usermods = []
|
||||
for dep in result.depbuilders:
|
||||
if is_wled_module(dep):
|
||||
# Add the wled folder to the include path
|
||||
dep.env.PrependUnique(CPPPATH=str(wled_dir))
|
||||
# Add WLED's own dependencies
|
||||
for dir in extra_include_dirs:
|
||||
dep.env.PrependUnique(CPPPATH=str(dir))
|
||||
# Enforce that libArchive is not set; we must link them directly to the executable
|
||||
if dep.lib_archive:
|
||||
broken_usermods.append(dep)
|
||||
for dep in wled_deps:
|
||||
# Add the wled folder to the include path
|
||||
dep.env.PrependUnique(CPPPATH=str(wled_dir))
|
||||
# Add WLED's own dependencies
|
||||
for dir in extra_include_dirs:
|
||||
dep.env.PrependUnique(CPPPATH=str(dir))
|
||||
# Enforce that libArchive is not set; we must link them directly to the executable
|
||||
if dep.lib_archive:
|
||||
broken_usermods.append(dep)
|
||||
|
||||
if broken_usermods:
|
||||
broken_usermods = [usermod.name for usermod in broken_usermods]
|
||||
@ -97,6 +98,9 @@ def wrapped_ConfigureProjectLibBuilder(xenv):
|
||||
err=True)
|
||||
Exit(1)
|
||||
|
||||
# Save the depbuilders list for later validation
|
||||
xenv.Replace(WLED_MODULES=wled_deps)
|
||||
|
||||
return result
|
||||
|
||||
# Apply the wrapper
|
||||
|
@ -53,20 +53,8 @@ def validate_map_file(source, target, env):
|
||||
secho(f"ERROR: Map file not found: {map_file_path}", fg="red", err=True)
|
||||
Exit(1)
|
||||
|
||||
# Identify the WLED module source directories
|
||||
module_lib_builders = [builder for builder in env.GetLibBuilders() if is_wled_module(env, builder)]
|
||||
|
||||
if env.GetProjectOption("custom_usermods","") == "*":
|
||||
# All usermods build; filter non-platform-OK modules
|
||||
module_lib_builders = [builder for builder in module_lib_builders if env.IsCompatibleLibBuilder(builder)]
|
||||
else:
|
||||
incompatible_builders = [builder for builder in module_lib_builders if not env.IsCompatibleLibBuilder(builder)]
|
||||
if incompatible_builders:
|
||||
secho(
|
||||
f"ERROR: Modules {[b.name for b in incompatible_builders]} are not compatible with this platform!",
|
||||
fg="red",
|
||||
err=True)
|
||||
Exit(1)
|
||||
# Identify the WLED module builders, set by load_usermods.py
|
||||
module_lib_builders = env['WLED_MODULES']
|
||||
|
||||
# Extract the values we care about
|
||||
modules = {Path(builder.build_dir).name: builder.name for builder in module_lib_builders}
|
||||
|
Loading…
x
Reference in New Issue
Block a user