blob: 724a74fccdcb76beb4cc9f6ecf81f6a84b56dc21 [file] [log] [blame]
#!/bin/bash
#
# builds JetBrainsRuntime17 for Windows. Expected to be called from build-jetbrainsruntime17-win.cmd wrapper
source $(dirname $0)/build-jetbrainsruntime-common.sh
## Convert Windows paths to unix/cygwin
build_dir=$(cygpath --unix --absolute "${build_dir}")
out_path=$(cygpath --unix --absolute "${out_path}")
dist_dir=$(cygpath --unix --absolute "${dist_dir}")
top=$(cygpath --unix --absolute "${top}")
echo "out_path=${out_path:-}"
echo "dist_dir=${dist_dir:-}"
echo "build_dir=${build_dir:-}"
echo "top=${top:-}"
echo "build_number=${build_number:-}"
# Configure
# clean up from previous builds
rm -rf "$build_dir"
mkdir -p "$build_dir"
[[ -n "${quiet:-}" ]] || set -x
(
echo "configuring build"
cd "$build_dir"
bash +x "$top/external/jetbrains/JetBrainsRuntime17/configure" \
"${quiet:+--quiet}" \
--with-extra-path="/cygdrive/c/tools/cygwin/bin" \
--with-jobs=1 \
--enable-cds=yes \
--disable-ccache \
--disable-full-docs \
--disable-warnings-as-errors \
--with-boot-jdk="$top/prebuilts/jdk/jdk17/windows-x86" \
--without-version-pre \
--with-vendor-name="JetBrains s.r.o." \
--with-version-opt="$(sed 's/^.*-//' "${top}/external/jetbrains/JetBrainsRuntime/build.txt")-${build_number}" \
--with-jvm-features="shenandoahgc"
)
echo "Configure done"
(
echo "Making images ...."
# Make
make JOBS=1 LOG=debug -C "$build_dir" ${quiet:+-s} images
)
# Distribute jdk
rm -rf "$dist_dir"/{jdk.zip,jdk-debuginfo.zip,jdk-runtime.zip,build.log,configure.log}
declare -r bundle_dir=$(find $build_dir/images/jdk-bundle/ -type d -depth 1 -name 'jdk-*.jdk')
(cd "$build_dir/images/jdk" &&
zip -9rDy${quiet:+q} "$dist_dir"/jdk.zip . -x 'demo/*' -x'man/*' -x'*.map' -x'*.pdb' &&
zip -9rDy${quiet:+q} "$dist_dir"/jdk-debuginfo.zip . -i'*.map' -i'*.pdb'
)
cp "$build_dir"/build.log "$dist_dir"
cp "$build_dir"/configure-support/config.log "$dist_dir"/configure.log
(
cd "${build_dir}"
# 1. add studio modules to jb/project/tools/common/modules.list
# 2. remove trailing comas, and remove duplicates
# 3. trim, and convert lines to coma-separated list
declare modules=$(
cat ${top}/external/jetbrains/JetBrainsRuntime17/jb/project/tools/common/modules.list ${top}/toolchain/jdk/build/studio-modules.list \
| sed s/","/" "/g | sort | uniq \
| xargs | sed s/" "/,/g
)
"${build_dir}/images/jdk/bin/jlink" \
--output "java-runtime" \
--no-header-files \
--no-man-pages \
--compress=2 \
--module-path="${build_dir}/images/jdk/jmods" \
--add-modules ${modules}
grep -v "^JAVA_VERSION" "${build_dir}/jdk/release" | grep -v "^MODULES" >> "${build_dir}/java-runtime/release"
cp "${build_dir}/java-runtime/release" "${dist_dir}"
cd java-runtime
zip -9rDy${quiet:+q} "${dist_dir}/jdk-runtime.zip" .
)