# This is free and unencumbered software released into the public # domain. To the extent possible under law, the author of this file # waives all copyright and related or neighboring rights to it. $(call include-once.,programs.mk) nwjs-platforms := \ osx-x64.zip osx-ia32.zip \ linux-x64.tar.gz linux-ia32.tar.gz \ win-ia32.zip nwjs-pattern := $(addprefix nwjs-v%-,$(nwjs-platforms)) # These are like 30MB, don't download them every time. .PRECIOUS: $(nwjs-pattern) $(nwjs-pattern): $(MKDIR) '$(@D)' # HTTP-only - https://github.com/nwjs/nw.js/issues/3393 wget -O '$@'.inprogress 'http://dl.nwjs.io/v$(*F)/$(@F)' mv '$@'.inprogress "$@" nwjs-version ?= 0.12.0 nwjsdir ?= nwjs/ nwjs-directx = $(addprefix $(nwjsdir),d3dcompiler_43.dll d3dcompiler_46.dll) nwjs = $(nwjsdir)nwjs-v$(firstword $(value nwjs-version-$1) $(nwjs-version))-$1 nwjs-archives = $(foreach p,$(nwjs-platforms),$(call nwjs,$(p))) define nwjs-package-osx $(RM) $@ $(RM) -r $(@:.zip=) $(UNZIP) -d $(@D) $2 mv $(@D)/$(notdir $(2:.zip=)) $(@:.zip=) tools/generate-osx-app $(@:.zip=) $1 $(RM) $(@:.zip=)/nwjc mv $(@:.zip=)/credits.html $(@:.zip=)/nwjs\ credits.html cd $(@D) && $(ZIP) -r $(@F) $(@F:.zip=) $(RM) -r $(@:.zip=) endef %-osx-ia32.zip: %.nw $(call nwjs,osx-ia32.zip) $(call nwjs-package-osx,$<,$(word 2,$^)) %-osx-x64.zip: %.nw $(call nwjs,osx-x64.zip) $(call nwjs-package-osx,$<,$(word 2,$^)) define nwjs-package-linux $(RM) $@ $(RM) -r $(@:.tar.gz=) tar -C $(@D) -xzf $2 $(MKDIR) $(@:.tar.gz=) mv $(@D)/$(notdir $(2:.tar.gz=)) $(@:.tar.gz=)/nw cp -a $1 $(@:.tar.gz=)/nw/package.nw cp -a tools/nw-linux-wrapper $(@:.tar.gz=)/`echo $(notdir $1) | sed -E 's/_.+//'` $(RM) $(@:.tar.gz=)/nw/nwjc mv $(@:.tar.gz=)/nw/credits.html $(@:.tar.gz=)/nw/nwjs\ credits.html tar -czf $@ -C $(@D) $(@F:.tar.gz=) $(RM) -r $(@:.tar.gz=) endef %-linux-ia32.tar.gz: %.nw $(call nwjs,linux-ia32.tar.gz) $(call nwjs-package-linux,$<,$(word 2,$^)) %-linux-x64.tar.gz: %.nw $(call nwjs,linux-x64.tar.gz) $(call nwjs-package-linux,$<,$(word 2,$^)) nwjs-icon = $(shell $(UNZIP) -p $1 package.json | grep -Eo '"[^"]+.ico"' -m 1) define nwjs-package-win $(RM) $@ $(RM) -r $(@:.zip=) $(UNZIP) -d $(@D) $2 mv $(@D)/$(notdir $(2:.zip=)) $(@:.zip=) $(RM) $(@:.zip=)/nwjc.exe $(UNZIP) -p $< $(call nwjs-icon,$<) > $(@D)/icon.ico $(WINE) tools/rcedit.exe $(@:.zip=)/nw.exe --set-icon $(@D)/icon.ico $(RM) $(@D)/icon.ico mv $(@:.zip=)/credits.html $(@:.zip=)/nwjs\ credits.html cp -a $< $(@:.zip=)/package.nw cp -a $(nwjs-directx) $(@:.zip=) mv $(@:.zip=)/nw.exe $(@:.zip=)/`echo $(notdir $1) | sed -E 's/_.+/.exe/'` cd $(@D) && $(ZIP) -r $(@F) $(@F:.zip=) $(RM) -r $(@:.zip=) endef %-win-ia32.zip: %.nw $(call nwjs,win-ia32.zip) $(nwjs-directx) $(call nwjs-package-win,$<,$(word 2,$^)) $(nwjs-directx): wget -O $@ 'https://github.com/cefsharp/cef-binary/raw/1e51255cf77d267899bf7834768b8774affaad2d/cef_binary_3.y.z_windows32/Release/'$(notdir $@) $(nwjsdir)dxwebsetup.exe: wget -O $@ https://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe distclean:: $(RM) $(nwjs-archives) $(RM) $(nwjs-directx) $(RM) $(nwjsdir)dxwebsetup.exe