auto merge of #17109 : brson/rust/win64snap, r=alexcrichton

This commit is contained in:
bors 2014-09-10 11:45:44 +00:00
commit 4049a4da79
3 changed files with 16 additions and 10 deletions

View File

@ -123,7 +123,7 @@ PKG_EXE = dist/$(PKG_NAME)-install.exe
$(PKG_EXE): rust.iss modpath.iss upgrade.iss LICENSE.txt rust-logo.ico \
$(CSREQ3_T_$(CFG_BUILD)_H_$(CFG_BUILD)) \
dist-prepare-win
$(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin
$(CFG_PYTHON) $(S)src/etc/copy-runtime-deps.py tmp/dist/win/bin $(CFG_BUILD)
@$(call E, ISCC: $@)
$(Q)"$(CFG_ISCC)" $<

View File

@ -12,8 +12,8 @@
import snapshot, sys, os, shutil
def copy_runtime_deps(dest_dir):
for path in snapshot.get_winnt_runtime_deps():
def copy_runtime_deps(dest_dir, triple):
for path in snapshot.get_winnt_runtime_deps(snapshot.get_platform(triple)):
shutil.copy(path, dest_dir)
lic_dest = os.path.join(dest_dir, "third-party")
@ -21,4 +21,4 @@ def copy_runtime_deps(dest_dir):
shutil.rmtree(lic_dest) # copytree() won't overwrite existing files
shutil.copytree(os.path.join(os.path.dirname(__file__), "third-party"), lic_dest)
copy_runtime_deps(sys.argv[1])
copy_runtime_deps(sys.argv[1], sys.argv[2])

View File

@ -39,7 +39,9 @@ snapshot_files = {
"freebsd": ["bin/rustc"],
}
winnt_runtime_deps = ["libgcc_s_dw2-1.dll",
winnt_runtime_deps_32 = ["libgcc_s_dw2-1.dll",
"libstdc++-6.dll"]
winnt_runtime_deps_64 = ["libgcc_s_seh-1.dll",
"libstdc++-6.dll"]
def parse_line(n, line):
@ -146,10 +148,14 @@ def hash_file(x):
return scrub(h.hexdigest())
# Returns a list of paths of Rust's system runtime dependencies
def get_winnt_runtime_deps():
def get_winnt_runtime_deps(platform):
if platform == "winnt-x86_64":
deps = winnt_runtime_deps_64
else:
deps = winnt_runtime_deps_32
runtime_deps = []
path_dirs = os.environ["PATH"].split(';')
for name in winnt_runtime_deps:
path_dirs = os.environ["PATH"].split(os.pathsep)
for name in deps:
for dir in path_dirs:
matches = glob.glob(os.path.join(dir, name))
if matches:
@ -189,7 +195,7 @@ def make_snapshot(stage, triple):
"Please make a clean build." % "\n ".join(matches))
if kernel=="winnt":
for path in get_winnt_runtime_deps():
for path in get_winnt_runtime_deps(platform):
tar.add(path, "rust-stage0/bin/" + os.path.basename(path))
tar.add(os.path.join(os.path.dirname(__file__), "third-party"),
"rust-stage0/bin/third-party")