Skip to content

SCons: Don't attempt to resolve paths in emitter #105202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Repiteo
Copy link
Contributor

@Repiteo Repiteo commented Apr 9, 2025

(probably) Resolves #104851 (comment)

This turned out to be a redundant step, as the path was already passed as absolute beforehand. Removing it keeps the path as absolute, without attempting symlink resolution.

@Repiteo Repiteo added this to the 4.5 milestone Apr 9, 2025
@Repiteo Repiteo requested a review from Calinou April 9, 2025 16:27
@Repiteo Repiteo requested a review from a team as a code owner April 9, 2025 16:27
@Ivorforce
Copy link
Member

I tried this branch, by symlinking thirdparty/embree/common elsewhere (in hopes that it somewhat truthfully represents the issue being addressed). I'm getting this error:

 ❯ scons vulkan_sdk_path=/Users/lukas/dev/MoltenVK tests=yes debug_symbols=yes extra_suffix=master
scons: Reading SConscript files ...
Automatically detected platform: macos
Auto-detected 10 CPU cores available for build parallelism. Using 9 cores by default. You can override it with the `-j` or `num_jobs` arguments.
Building for macOS 11.0+.
MoltenVK found at: /Users/lukas/dev/MoltenVK/MoltenVK/MoltenVK.xcframework
Building for platform "macos", architecture "arm64", target "editor".
TypeError: File /Users/lukas/dev/godot/godot/thirdparty/embree/common found where directory expected.:
  File "/Users/lukas/dev/godot/godot/SConstruct", line 1136:
    SConscript("modules/SCsub")
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 676:
    return method(*args, **kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 612:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 279:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/Users/lukas/dev/godot/godot/modules/SCsub", line 86:
    SConscript(base_path + "/SCsub")
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 676:
    return method(*args, **kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 612:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Script/SConscript.py", line 279:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "/Users/lukas/dev/godot/godot/modules/raycast/SCsub", line 82:
    env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
  File "/Users/lukas/dev/godot/godot/methods.py", line 81:
    add_source_files_orig(self, sources, files, allow_gen)
  File "/Users/lukas/dev/godot/godot/methods.py", line 46:
    obj = self.Object(path)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Environment.py", line 442:
    return super().__call__(target, source, *args, **kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Util/envs.py", line 251:
    return self.method(*nargs, **kwargs)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Builder.py", line 672:
    return self._execute(env, target, source, OverrideWarner(kw), ekw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Builder.py", line 563:
    source = self.src_builder_sources(env, source, overwarn)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Builder.py", line 797:
    return env.arg2nodes(result, source_factory)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Environment.py", line 679:
    v = node_factory(self.subst(v, **kw))
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 1453:
    return self._lookup(name, directory, File, create)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 1432:
    return root._lookup_abs(p, fsclass, create)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 2458:
    dir_node = self._lookup_abs(dir_name, Dir)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 2458:
    dir_node = self._lookup_abs(dir_name, Dir)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 2463:
    result.diskcheck_match()
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 1666:
    diskcheck_match(self, self.isfile,
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 404:
    return self.func(*args, **kw)
  File "/nix/store/j4vsq7nfxz2vp1m5ag25k7083vh1zy6n-scons-4.7.0/lib/python3.12/site-packages/SCons/Node/FS.py", line 432:
    raise TypeError(errorfmt % node.get_abspath())

@Repiteo
Copy link
Contributor Author

Repiteo commented Apr 11, 2025

Oh, it thinks it has a file instead of a directory? I think that's a separate issue entirely, but I guess I can more broadly look into how SCons treats symlinks as a whole

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants