summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2017-01-15 02:12:33 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2017-01-15 02:12:33 (GMT)
commit8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563 (patch)
tree0053065c5bdddf39438fdd37a6d170c3990bacab
parentde8222ae421c323b5e5776086fd260effb05bd58 (diff)
downloadSCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.zip
SCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.tar.gz
SCons-8c6e0083ca86b6ea3c778361a79d8ffaeb2fd563.tar.bz2
try using win32 native CopyFile
-rw-r--r--src/engine/SCons/Platform/win32.py31
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()