Bundler: fixes for macOS.
This commit is contained in:
@@ -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.
|
||||
|
Reference in New Issue
Block a user