build.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/usr/bin/env bash
  2. set -ex
  3. CALLER_DIR=$( pwd )
  4. cd "$( dirname "${BASH_SOURCE[0]}" )"
  5. WIN_SDK_MAJOR_VERSION="10"
  6. WIN_SDK_FULL_VERSION="10.0.17763.0"
  7. if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
  8. PRODUCT_NAME="VSCodium - Insiders"
  9. PRODUCT_CODE="VSCodiumInsiders"
  10. PRODUCT_UPGRADE_CODE="1C9B7195-5A9A-43B3-B4BD-583E20498467"
  11. ICON_DIR="..\\..\\..\\src\\insider\\resources\\win32"
  12. SETUP_RESOURCES_DIR=".\\resources\\insider"
  13. else
  14. PRODUCT_NAME="VSCodium"
  15. PRODUCT_CODE="VSCodium"
  16. PRODUCT_UPGRADE_CODE="965370CD-253C-4720-82FC-2E6B02A53808"
  17. ICON_DIR="..\\..\\..\\src\\stable\\resources\\win32"
  18. SETUP_RESOURCES_DIR=".\\resources\\stable"
  19. fi
  20. PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
  21. PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"
  22. CULTURE="en-us"
  23. LANGIDS="1033"
  24. SETUP_RELEASE_DIR=".\\releasedir"
  25. BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
  26. LICENSE_DIR="..\\..\\..\\vscode"
  27. PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )
  28. if [[ -z "${1}" ]]; then
  29. OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${RELEASE_VERSION}"
  30. else
  31. OUTPUT_BASE_FILENAME="VSCodium-${VSCODE_ARCH}-${1}-${RELEASE_VERSION}"
  32. fi
  33. if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
  34. export PLATFORM="x86"
  35. else
  36. export PLATFORM="${VSCODE_ARCH}"
  37. fi
  38. sed -i "s|@@PRODUCT_UPGRADE_CODE@@|${PRODUCT_UPGRADE_CODE}|g" .\\includes\\vscodium-variables.wxi
  39. sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" .\\vscodium.xsl
  40. find i18n -name '*.wxl' -exec sed -i "s|@@PRODUCT_NAME@@|${PRODUCT_NAME}|g" {} \;
  41. BuildSetupTranslationTransform() {
  42. local CULTURE=${1}
  43. local LANGID=${2}
  44. LANGIDS="${LANGIDS},${LANGID}"
  45. echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."
  46. "${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
  47. cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" Product "${LANGID}"
  48. "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
  49. cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst" "${LANGID}"
  50. cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi"
  51. rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
  52. rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
  53. }
  54. "${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.ManufacturerName -var var.AppName -var var.AppCodeName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
  55. "${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dManufacturerName="VSCodium" -dAppCodeName="${PRODUCT_CODE}" -dAppName="${PRODUCT_NAME}" -dProductVersion="${RELEASE_VERSION%-insider}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
  56. "${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\vscodium.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
  57. BuildSetupTranslationTransform de-de 1031
  58. BuildSetupTranslationTransform es-es 3082
  59. BuildSetupTranslationTransform fr-fr 1036
  60. BuildSetupTranslationTransform it-it 1040
  61. # WixUI_Advanced bug: https://github.com/wixtoolset/issues/issues/5909
  62. # BuildSetupTranslationTransform ja-jp 1041
  63. BuildSetupTranslationTransform ko-kr 1042
  64. BuildSetupTranslationTransform ru-ru 1049
  65. BuildSetupTranslationTransform zh-cn 2052
  66. BuildSetupTranslationTransform zh-tw 1028
  67. # Add all supported languages to MSI Package attribute
  68. cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" Package "${LANGIDS}"
  69. # Remove files we do not need any longer.
  70. rm -rf "${TEMP}\\vscodium-cab-cache"
  71. rm -f "Files-${OUTPUT_BASE_FILENAME}.wxs"
  72. rm -f "Files-${OUTPUT_BASE_FILENAME}.wixobj"
  73. rm -f "vscodium.wixobj"
  74. cd "${CALLER_DIR}"