Windows: Symlink support
To provide Windows-compatible functionality, spack code should use llnl.util.symlink instead of os.symlink. On non-Windows platforms and on Windows where supported, os.symlink will still be used. Use junctions when symlinks aren't supported on Windows (#22583) Support islink for junctions (#24182) Windows: Update llnl/util/filesystem * Use '/' as path separator on Windows. * Recognizing that Windows paths start with '<Letter>:/' instead of '/' Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com> Co-authored-by: John Parent <john.parent@kitware.com>
This commit is contained in:
committed by
Peter Scheibel
parent
a7de2fa380
commit
fb0e91c534
4
lib/spack/external/macholib/util.py
vendored
4
lib/spack/external/macholib/util.py
vendored
@@ -6,6 +6,8 @@
|
||||
|
||||
from macholib import mach_o
|
||||
|
||||
from llnl.util.symlink import symlink
|
||||
|
||||
MAGIC = [
|
||||
struct.pack("!L", getattr(mach_o, "MH_" + _))
|
||||
for _ in ["MAGIC", "CIGAM", "MAGIC_64", "CIGAM_64"]
|
||||
@@ -140,7 +142,7 @@ def mergetree(src, dst, condition=None, copyfn=mergecopy, srcbase=None):
|
||||
try:
|
||||
if os.path.islink(srcname):
|
||||
realsrc = os.readlink(srcname)
|
||||
os.symlink(realsrc, dstname)
|
||||
symlink(realsrc, dstname)
|
||||
elif os.path.isdir(srcname):
|
||||
mergetree(
|
||||
srcname,
|
||||
|
||||
Reference in New Issue
Block a user