mirror of https://github.com/electron/electron
118 lines
3.2 KiB
Bash
Executable File
118 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ "$(expr substr $(uname -s) 1 10)" == "MSYS_NT-10" ]; then
|
|
BUILD_TYPE="win"
|
|
elif [ "`uname`" == "Darwin" ]; then
|
|
if [ -z "$MAS_BUILD" ]; then
|
|
BUILD_TYPE="darwin"
|
|
else
|
|
BUILD_TYPE="mas"
|
|
fi
|
|
elif [ "`uname`" == "Linux" ]; then
|
|
BUILD_TYPE="linux"
|
|
else
|
|
echo "Unsupported platform"
|
|
exit 1
|
|
fi
|
|
|
|
GENERATED_ARTIFACTS="generated_artifacts_${BUILD_TYPE}_${TARGET_ARCH}"
|
|
|
|
echo Creating $GENERATED_ARTIFACTS...
|
|
rm -rf $GENERATED_ARTIFACTS
|
|
mkdir $GENERATED_ARTIFACTS
|
|
|
|
SRC_ARTIFACTS="src_artifacts_${BUILD_TYPE}_${TARGET_ARCH}"
|
|
|
|
echo Creating $SRC_ARTIFACTS...
|
|
rm -rf $SRC_ARTIFACTS
|
|
mkdir $SRC_ARTIFACTS
|
|
|
|
mv_if_exist() {
|
|
if [ -f "$1" ] || [ -d "$1" ]; then
|
|
echo Storing $1
|
|
mv $1 $GENERATED_ARTIFACTS
|
|
else
|
|
echo Skipping $1 - It is not present on disk
|
|
fi
|
|
}
|
|
|
|
cp_if_exist() {
|
|
if [ -f "$1" ] || [ -d "$1" ]; then
|
|
echo Storing $1
|
|
cp $1 $GENERATED_ARTIFACTS
|
|
else
|
|
echo Skipping $1 - It is not present on disk
|
|
fi
|
|
}
|
|
|
|
move_src_dirs_if_exist() {
|
|
mkdir src_artifacts
|
|
|
|
dirs=("src/out/Default/gen/node_headers" \
|
|
"src/out/Default/overlapped-checker" \
|
|
"src/out/Default/ffmpeg" \
|
|
"src/out/Default/hunspell_dictionaries" \
|
|
"src/third_party/electron_node" \
|
|
"src/third_party/nan" \
|
|
"src/cross-arch-snapshots" \
|
|
"src/buildtools/mac" \
|
|
"src/buildtools/third_party/libc++" \
|
|
"src/buildtools/third_party/libc++abi" \
|
|
"src/third_party/libc++" \
|
|
"src/third_party/libc++abi" \
|
|
"src/out/Default/obj/buildtools/third_party" \
|
|
"src/v8/tools/builtins-pgo")
|
|
|
|
# Only do this for linux build type, this folder
|
|
# exists for windows builds on linux hosts but we do
|
|
# not need it
|
|
if [ "$BUILD_TYPE" == "linux" ]; then
|
|
dirs+=('src/build/linux')
|
|
fi
|
|
|
|
# llvm-build is the host toolchain, for windows we need
|
|
# a different toolchain so no point copying this one
|
|
if [ "$BUILD_TYPE" != "win" ]; then
|
|
dirs+=('src/third_party/llvm-build')
|
|
fi
|
|
|
|
# On windows we should clean up two symlinks that aren't
|
|
# compatible with the windows test runner
|
|
if [ "$BUILD_TYPE" == "win" ]; then
|
|
rm -f src/third_party/electron_node/tools/node_modules/eslint/node_modules/eslint
|
|
rm -f src/third_party/electron_node/tools/node_modules/eslint/node_modules/.bin/eslint
|
|
rm -f src/third_party/electron_node/out/tools/bin/python
|
|
|
|
# Also need to copy electron.lib to node.lib for native module testing purposes
|
|
mkdir -p src/out/Default/gen/node_headers/Release
|
|
cp src/out/Default/electron.lib src/out/Default/gen/node_headers/Release/node.lib
|
|
fi
|
|
|
|
for dir in "${dirs[@]}"
|
|
do
|
|
if [ -d "$dir" ]; then
|
|
mkdir -p src_artifacts/$(dirname $dir)
|
|
cp -r $dir/ src_artifacts/$dir
|
|
fi
|
|
done
|
|
|
|
tar -C src_artifacts -cf src_artifacts.tar .
|
|
|
|
echo Storing src_artifacts.tar
|
|
mv src_artifacts.tar $SRC_ARTIFACTS
|
|
}
|
|
|
|
# Generated Artifacts
|
|
mv_if_exist src/out/Default/dist.zip
|
|
mv_if_exist src/out/Default/gen/node_headers.tar.gz
|
|
mv_if_exist src/out/Default/symbols.zip
|
|
mv_if_exist src/out/Default/mksnapshot.zip
|
|
mv_if_exist src/out/Default/chromedriver.zip
|
|
mv_if_exist src/out/ffmpeg/ffmpeg.zip
|
|
mv_if_exist src/out/Default/hunspell_dictionaries.zip
|
|
mv_if_exist src/cross-arch-snapshots
|
|
cp_if_exist src/out/electron_ninja_log
|
|
cp_if_exist src/out/Default/.ninja_log
|
|
|
|
move_src_dirs_if_exist
|