diff options
| author | Vadim Chugunov <vadimcn@gmail.com> | 2014-12-06 01:32:57 -0800 |
|---|---|---|
| committer | Vadim Chugunov <vadimcn@gmail.com> | 2014-12-06 12:48:32 -0800 |
| commit | de8f48b10ae13bfd30671d43f3f9e4e3225efd34 (patch) | |
| tree | 2efd57c1f1cdc4ff56c4fa5fb9f8c08f0563def7 /src | |
| parent | 3c89031e1f213030f0514c8dcb9e6fa19ddbd323 (diff) | |
| download | rust-de8f48b10ae13bfd30671d43f3f9e4e3225efd34.tar.gz rust-de8f48b10ae13bfd30671d43f3f9e4e3225efd34.zip | |
- Support gcc-less installation on Windows. To do so in unattended mode run:`<intaller>.exe /TYPE=compact /SILENT`.
- Do not require admin privileges to install.
Diffstat (limited to 'src')
| -rw-r--r-- | src/etc/make-win-dist.py | 18 | ||||
| -rw-r--r-- | src/etc/pkg/rust.iss | 8 |
2 files changed, 19 insertions, 7 deletions
diff --git a/src/etc/make-win-dist.py b/src/etc/make-win-dist.py index 53f648e29ae..7fb86f904a2 100644 --- a/src/etc/make-win-dist.py +++ b/src/etc/make-win-dist.py @@ -8,6 +8,12 @@ # option. This file may not be copied, modified, or distributed # except according to those terms. +# Script parameters: +# argv[1] = rust component root, +# argv[2] = gcc component root, +# argv[3] = target triple +# The first two correspond to the two installable components defined in the setup script. + import sys, os, shutil, subprocess def find_files(files, path): @@ -22,7 +28,7 @@ def find_files(files, path): raise Exception("Could not find '%s' in %s" % (fname, path)) return found -def make_win_dist(dist_root, target_triple): +def make_win_dist(rust_root, gcc_root, target_triple): # Ask gcc where it keeps its stuff gcc_out = subprocess.check_output(["gcc.exe", "-print-search-dirs"]) bin_path = os.environ["PATH"].split(os.pathsep) @@ -90,29 +96,29 @@ def make_win_dist(dist_root, target_triple): target_libs = find_files(target_libs, lib_path) # Copy runtime dlls next to rustc.exe - dist_bin_dir = os.path.join(dist_root, "bin") + dist_bin_dir = os.path.join(rust_root, "bin") for src in rustc_dlls: shutil.copy(src, dist_bin_dir) # Copy platform tools to platform-specific bin directory - target_bin_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "bin") + target_bin_dir = os.path.join(gcc_root, "bin", "rustlib", target_triple, "bin") if not os.path.exists(target_bin_dir): os.makedirs(target_bin_dir) for src in target_tools: shutil.copy(src, target_bin_dir) # Copy platform libs to platform-spcific lib directory - target_lib_dir = os.path.join(dist_root, "bin", "rustlib", target_triple, "lib") + target_lib_dir = os.path.join(gcc_root, "bin", "rustlib", target_triple, "lib") if not os.path.exists(target_lib_dir): os.makedirs(target_lib_dir) for src in target_libs: shutil.copy(src, target_lib_dir) # Copy license files - lic_dir = os.path.join(dist_root, "bin", "third-party") + lic_dir = os.path.join(rust_root, "bin", "third-party") if os.path.exists(lic_dir): shutil.rmtree(lic_dir) # copytree() won't overwrite existing files shutil.copytree(os.path.join(os.path.dirname(__file__), "third-party"), lic_dir) if __name__=="__main__": - make_win_dist(sys.argv[1], sys.argv[2]) + make_win_dist(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/src/etc/pkg/rust.iss b/src/etc/pkg/rust.iss index fe2107943c5..c57a7ab6c70 100644 --- a/src/etc/pkg/rust.iss +++ b/src/etc/pkg/rust.iss @@ -14,6 +14,7 @@ AppPublisherURL=http://www.rust-lang.org VersionInfoVersion={#CFG_VERSION_WIN} LicenseFile=LICENSE.txt +PrivilegesRequired=lowest DisableWelcomePage=true DisableProgramGroupPage=true DisableReadyPage=true @@ -37,8 +38,13 @@ Uninstallable=yes [Tasks] Name: modifypath; Description: &Add {app}\bin to your PATH (recommended) +[Components] +Name: rust; Description: "Rust compiler and standard crates"; Types: full compact custom; Flags: fixed +Name: gcc; Description: "Linker and platform libraries"; Types: full + [Files] -Source: "tmp/dist/win/*.*" ; DestDir: "{app}"; Flags: ignoreversion recursesubdirs +Source: "tmp/dist/win/rust/*.*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: rust +Source: "tmp/dist/win/gcc/*.*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs; Components: gcc [Code] const |
