Skip to content

Commit 7628806

Browse files
committed
mk: Package mingw components in unix installer on windows
This puts stdc++ and the unwinding dll into the main package and creates a separate rust-mingw package for everything else.
1 parent 022d485 commit 7628806

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

mk/dist.mk

+33-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
PKG_NAME := $(CFG_PACKAGE_NAME)
2626
DOC_PKG_NAME := rust-docs-$(CFG_PACKAGE_VERS)
27+
MINGW_PKG_NAME := rust-mingw-$(CFG_PACKAGE_VERS)
2728

2829
# License suitable for displaying in a popup
2930
LICENSE.txt: $(S)COPYRIGHT $(S)LICENSE-APACHE $(S)LICENSE-MIT
@@ -238,6 +239,12 @@ dist-install-dir-$(1): prepare-base-dir-$(1) docs compiler-docs
238239

239240
dist/$$(PKG_NAME)-$(1).tar.gz: dist-install-dir-$(1)
240241
@$(call E, build: $$@)
242+
# Copy essential gcc components into installer
243+
ifdef CFG_WINDOWSY_$(1)
244+
$$(Q)rm -Rf dist/win-rust-gcc-$(1)
245+
$$(Q)$$(CFG_PYTHON) $$(S)src/etc/make-win-dist.py tmp/dist/$$(PKG_NAME)-$(1)-image dist/win-rust-gcc-$(1) $(1)
246+
$$(Q)cp -r $$(S)src/etc/third-party tmp/dist/$$(PKG_NAME)-$(1)-image/share/doc/
247+
endif
241248
$$(Q)$$(S)src/rust-installer/gen-installer.sh \
242249
--product-name=Rust \
243250
--verify-bin=rustc \
@@ -271,6 +278,25 @@ dist/$$(DOC_PKG_NAME)-$(1).tar.gz: dist-doc-install-dir-$(1)
271278
--bulk-dirs=share/doc/rust/html
272279
$$(Q)rm -R tmp/dist/$$(DOC_PKG_NAME)-$(1)-image
273280

281+
dist-mingw-install-dir-$(1):
282+
$$(Q)mkdir -p tmp/dist/rust-mingw-tmp-$(1)-image
283+
$$(Q)rm -Rf tmp/dist/$$(MINGW_PKG_NAME)-$(1)-image
284+
$$(Q)$$(CFG_PYTHON) $$(S)src/etc/make-win-dist.py \
285+
tmp/dist/rust-mingw-tmp-$(1)-image tmp/dist/$$(MINGW_PKG_NAME)-$(1)-image $(1)
286+
287+
dist/$$(MINGW_PKG_NAME)-$(1).tar.gz: dist-mingw-install-dir-$(1)
288+
@$(call E, build: $$@)
289+
$$(Q)$$(S)src/rust-installer/gen-installer.sh \
290+
--product-name=Rust-MinGW \
291+
--rel-manifest-dir=rustlib \
292+
--success-message=Rust-MinGW-is-installed. \
293+
--image-dir=tmp/dist/$$(MINGW_PKG_NAME)-$(1)-image \
294+
--work-dir=tmp/dist \
295+
--output-dir=dist \
296+
--package-name=$$(MINGW_PKG_NAME)-$(1) \
297+
--component-name=rust-mingw \
298+
--legacy-manifest-dirs=rustlib,cargo
299+
$$(Q)rm -R tmp/dist/$$(MINGW_PKG_NAME)-$(1)-image
274300

275301
endef
276302

@@ -284,11 +310,16 @@ endif
284310

285311
dist-install-dirs: $(foreach host,$(CFG_HOST),dist-install-dir-$(host))
286312

313+
ifdef CFG_WINDOWSY_$(CFG_BUILD)
314+
MAYBE_MINGW_TARBALLS=$(foreach host,$(CFG_HOST),dist/$(MINGW_PKG_NAME)-$(host).tar.gz)
315+
endif
316+
287317
ifneq ($(CFG_DISABLE_DOCS),)
288-
dist-tar-bins: $(foreach host,$(CFG_HOST),dist/$(PKG_NAME)-$(host).tar.gz)
318+
dist-tar-bins: $(foreach host,$(CFG_HOST),dist/$(PKG_NAME)-$(host).tar.gz) $(MAYBE_MINGW_TARBALLS)
289319
else
290320
dist-tar-bins: $(foreach host,$(CFG_HOST),dist/$(PKG_NAME)-$(host).tar.gz) \
291-
$(foreach host,$(CFG_HOST),dist/$(DOC_PKG_NAME)-$(host).tar.gz)
321+
$(foreach host,$(CFG_HOST),dist/$(DOC_PKG_NAME)-$(host).tar.gz) \
322+
$(MAYBE_MINGW_TARBALLS)
292323
endif
293324

294325
# Just try to run the compiler for the build host

src/etc/make-win-dist.py

-6
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,5 @@ def make_win_dist(rust_root, gcc_root, target_triple):
114114
for src in target_libs:
115115
shutil.copy(src, target_lib_dir)
116116

117-
# Copy license files
118-
lic_dir = os.path.join(rust_root, "bin", "third-party")
119-
if os.path.exists(lic_dir):
120-
shutil.rmtree(lic_dir) # copytree() won't overwrite existing files
121-
shutil.copytree(os.path.join(os.path.dirname(__file__), "third-party"), lic_dir)
122-
123117
if __name__=="__main__":
124118
make_win_dist(sys.argv[1], sys.argv[2], sys.argv[3])

0 commit comments

Comments
 (0)