diff options
author | William Deegan <bill@baddogconsulting.com> | 2017-01-15 02:12:33 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2017-01-15 02:12:33 (GMT) |
commit | 8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563 (patch) | |
tree | 0053065c5bdddf39438fdd37a6d170c3990bacab | |
parent | de8222ae421c323b5e5776086fd260effb05bd58 (diff) | |
download | SCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.zip SCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.tar.gz SCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.tar.bz2 |
try using win32 native CopyFile
-rw-r--r-- | src/engine/SCons/Platform/win32.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/engine/SCons/Platform/win32.py b/src/engine/SCons/Platform/win32.py index b9defbb..827931f 100644 --- a/src/engine/SCons/Platform/win32.py +++ b/src/engine/SCons/Platform/win32.py @@ -92,6 +92,37 @@ else: setattr(io, io_class, _scons_file) + + +# Now swap out shutil.filecopy and filecopy2 for win32 api native CopyFile +try: + from ctypes import windll + import shutil + + CopyFile = windll.kernel32.CopyFileA + SetFileTime = windll.kernel32.SetFileTime + + _shutil_copy = shutil.copy + _shutil_copy2 = shutil.copy2 + + shutil.copy2 = CopyFile + + def win_api_copyfile(src,dst): + CopyFile(src,dst) + os.utime(dst) + + shutil.copy = win_api_copyfile + +except AttributeError: + parallel_msg = \ + "Couldn't override shutil.copy or shutil.copy2 falling back to shutil defaults" + + + + + + + try: import threading spawn_lock = threading.Lock() |