Makefile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. BROWSER_SIZES := 16 24 32 48 64
  2. #ANDROID_SIZES := 72 96 144 192
  3. # FIXME: The ICO is limited to 8 icons due to a Chrome bug:
  4. # https://bugs.chromium.org/p/chromium/issues/detail?id=1381393
  5. ANDROID_SIZES := 96 144 192
  6. WEB_ICON_SIZES := $(BROWSER_SIZES) $(ANDROID_SIZES)
  7. #IOS_1X_SIZES := 20 29 40 76 # No such devices exist anymore
  8. IOS_2X_SIZES := 40 58 80 120 152 167
  9. IOS_3X_SIZES := 60 87 120 180
  10. ALL_IOS_SIZES := $(IOS_1X_SIZES) $(IOS_2X_SIZES) $(IOS_3X_SIZES)
  11. ALL_ICONS := \
  12. $(ALL_IOS_SIZES:%=novnc-ios-%.png) \
  13. novnc.ico
  14. all: $(ALL_ICONS)
  15. # Our testing shows that the ICO file need to be sorted in largest to
  16. # smallest to get the apporpriate behviour
  17. WEB_ICON_SIZES_REVERSE := $(shell echo $(WEB_ICON_SIZES) | tr ' ' '\n' | sort -nr | tr '\n' ' ')
  18. WEB_BASE_ICONS := $(WEB_ICON_SIZES_REVERSE:%=novnc-%.png)
  19. .INTERMEDIATE: $(WEB_BASE_ICONS)
  20. novnc.ico: $(WEB_BASE_ICONS)
  21. convert $(WEB_BASE_ICONS) "$@"
  22. # General conversion
  23. novnc-%.png: novnc-icon.svg
  24. convert -depth 8 -background transparent \
  25. -size $*x$* "$(lastword $^)" "$@"
  26. # iOS icons use their own SVG
  27. novnc-ios-%.png: novnc-ios-icon.svg
  28. convert -depth 8 -background transparent \
  29. -size $*x$* "$(lastword $^)" "$@"
  30. # The smallest sizes are generated using a different SVG
  31. novnc-16.png novnc-24.png novnc-32.png: novnc-icon-sm.svg
  32. clean:
  33. rm -f *.png