Bundler: fixes for macOS.

This commit is contained in:
2018-08-07 18:17:04 +02:00
parent 36023cec88
commit c376273ae4

View File

@@ -72,13 +72,6 @@ SCENES="barbershop_interior bmw27 classroom fishy_cat koro pavillon_barcelona"
IMAGE_WIDTH=1600 # 800*2
IMAGE_HEIGHT=740 # 370*2
# For macOS, data is installed into bundle
if [ "${KERNEL_NAME}" == "Darwin" ]; then
DATA_DIRECTORY="${BUNDLE_DIRECTORY}/blender-benchmark.app/Contents/Resources"
else
DATA_DIRECTORY="${BUNDLE_DIRECTORY}"
fi
# Information about Blender to bundle.
if [ "${KERNEL_NAME}" == "Linux" ]; then
if [ "${BITNESS}" == "64" ]; then
@@ -99,6 +92,13 @@ fi
# Tweak bundle directory.
BUNDLE_DIRECTORY="${BUNDLE_DIRECTORY}-${BLENDER_PLATFORM}"
# For macOS, data is installed into .app bundle.
if [ "${KERNEL_NAME}" == "Darwin" ]; then
DATA_DIRECTORY="${BUNDLE_DIRECTORY}/blender-benchmark.app/Contents/Resources"
else
DATA_DIRECTORY="${BUNDLE_DIRECTORY}"
fi
BLENDER_RELEASE="2.79b"
BLENDER_RELEASE_NO_LETTER=${BLENDER_RELEASE//[a-z]/}
BLENDER_RELEASE_URL="https://download.blender.org/release/Blender${BLENDER_RELEASE_NO_LETTER}"
@@ -181,57 +181,13 @@ else
fi
################################################################################
# Package the bundle.
# Compile blender-benchmark
# We always start from scratch.
rm -rf "${BUNDLE_DIRECTORY}"
mkdir -p "${BUNDLE_DIRECTORY}"
mkdir -p "${DATA_DIRECTORY}"
# Download blender
echo "Downloading Blender..."
${WGET} -c "${BLENDER_FULL_URL}" -O "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}"
echo "Unpacking Blender..."
mkdir -p "${DATA_DIRECTORY}/blender"
if [ "${KERNEL_NAME}" == "Darwin" ]; then
rm -rf "${STORAGE_DIRECTORY}/benchmark_binary"
unzip -q -o "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}" -d "${STORAGE_DIRECTORY}/benchmark_binary"
mkdir -p "${DATA_DIRECTORY}/blender"
mv "${STORAGE_DIRECTORY}/benchmark_binary/"*"/blender.app" "${DATA_DIRECTORY}/blender/"
else
${TAR} -xf "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}" --directory "${BUNDLE_DIRECTORY}/blender" --strip-components 1
rm -f "${BUNDLE_DIRECTORY}/blender/blenderplayer"
fi
# Create background to stack image on.
BACKGROUND_IMAGE="${STORAGE_DIRECTORY}/background.png"
${CONVERT} -size ${IMAGE_WIDTH}x${IMAGE_HEIGHT} xc:'rgb(51,51,51)' ${BACKGROUND_IMAGE}
# Copy scenes.
mkdir -p "${DATA_DIRECTORY}/scenes"
echo "Bundling scenes..."
for scene in ${SCENES}; do
echo "Bundling scene ${scene}..."
cp -r "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}/${scene}" "${DATA_DIRECTORY}/scenes/${scene}"
# Leave single scene only.
rm -f "${DATA_DIRECTORY}/scenes/${scene}/${scene}_gpu.blend"
mv "${DATA_DIRECTORY}/scenes/${scene}/${scene}_cpu.blend" "${DATA_DIRECTORY}/scenes/${scene}/${scene}.blend"
# Tweak image.
if true; then
input="${DATA_DIRECTORY}/scenes/${scene}/${scene}.png"
input_we=`basename "${input%.*}"`
output_scaled="${STORAGE_DIRECTORY}/${input_we}_scaled.png"
output_compo="${STORAGE_DIRECTORY}/${input_we}.png"
${CONVERT} "${input}" -resize ${IMAGE_WIDTH}x${IMAGE_HEIGHT} "${output_scaled}"
${CONVERT} ${BACKGROUND_IMAGE} "${output_scaled}" -gravity center -composite "${output_compo}"
mv "${output_compo}" "${input}"
rm ${output_scaled}
fi
done
################################################################################
# Compile blender-benchmark
SOURCE_DIRECTORY="${STORAGE_DIRECTORY}/blender.git"
BUILD_DIRECTORY="${STORAGE_DIRECTORY}/build-${BLENDER_PLATFORM}"
@@ -271,7 +227,56 @@ ${CMAKE} \
cd -
${MAKE} -C "${BUILD_DIRECTORY}" -j 2 install || exit 1
${STRIP} -s "${BUNDLE_DIRECTORY}/blender-benchmark"
if [ "${KERNEL_NAME}" == "Darwin" ]; then
sleep 1
else
${STRIP} -s "${BUNDLE_DIRECTORY}/blender-benchmark"
fi
################################################################################
# Package Blender and scenes into the bundle.
# After compile since these are installed into .app bundle on macOS.
# Download blender
echo "Downloading Blender..."
${WGET} -c "${BLENDER_FULL_URL}" -O "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}"
echo "Unpacking Blender..."
mkdir -p "${DATA_DIRECTORY}/blender"
if [ "${KERNEL_NAME}" == "Darwin" ]; then
rm -rf "${STORAGE_DIRECTORY}/benchmark_binary"
unzip -q -o "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}" -d "${STORAGE_DIRECTORY}/benchmark_binary"
mv "${STORAGE_DIRECTORY}/benchmark_binary/"*"/blender.app" "${DATA_DIRECTORY}/blender/"
else
${TAR} -xf "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}" --directory "${BUNDLE_DIRECTORY}/blender" --strip-components 1
rm -f "${BUNDLE_DIRECTORY}/blender/blenderplayer"
fi
# Create background to stack image on.
BACKGROUND_IMAGE="${STORAGE_DIRECTORY}/background.png"
${CONVERT} -size ${IMAGE_WIDTH}x${IMAGE_HEIGHT} xc:'rgb(51,51,51)' ${BACKGROUND_IMAGE}
# Copy scenes.
mkdir -p "${DATA_DIRECTORY}/scenes"
echo "Bundling scenes..."
for scene in ${SCENES}; do
echo "Bundling scene ${scene}..."
cp -r "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}/${scene}" "${DATA_DIRECTORY}/scenes/${scene}"
# Leave single scene only.
rm -f "${DATA_DIRECTORY}/scenes/${scene}/${scene}_gpu.blend"
mv "${DATA_DIRECTORY}/scenes/${scene}/${scene}_cpu.blend" "${DATA_DIRECTORY}/scenes/${scene}/${scene}.blend"
# Tweak image.
if true; then
input="${DATA_DIRECTORY}/scenes/${scene}/${scene}.png"
input_we=`basename "${input%.*}"`
output_scaled="${STORAGE_DIRECTORY}/${input_we}_scaled.png"
output_compo="${STORAGE_DIRECTORY}/${input_we}.png"
${CONVERT} "${input}" -resize ${IMAGE_WIDTH}x${IMAGE_HEIGHT} "${output_scaled}"
${CONVERT} ${BACKGROUND_IMAGE} "${output_scaled}" -gravity center -composite "${output_compo}"
mv "${output_compo}" "${input}"
rm ${output_scaled}
fi
done
################################################################################
# Package.