Bundler: initial port to macOS.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Prepares benchmark bundle for Linux.
|
||||
# Prepares benchmark bundle for Linux and macOS.
|
||||
#
|
||||
# This is so called "works for me (tm)".
|
||||
#
|
||||
@@ -17,7 +17,26 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SCRIPT=$(readlink -f $0)
|
||||
################################################################################
|
||||
# Platform Detection
|
||||
|
||||
UNAME=`which uname`
|
||||
if [ -z "${UNAME}" ]; then
|
||||
echo "ERROR: uname is not found, can not continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
KERNEL_NAME=`$UNAME -s`
|
||||
|
||||
################################################################################
|
||||
# Configuration
|
||||
|
||||
if [ "${KERNEL_NAME}" == "Darwin" ]; then
|
||||
SCRIPT=$(realpath $0)
|
||||
else
|
||||
SCRIPT=$(readlink -f $0)
|
||||
fi
|
||||
|
||||
SCRIPTPATH=`dirname $SCRIPT`
|
||||
BENCHMARK_VERSION="1.0"
|
||||
|
||||
@@ -33,13 +52,6 @@ fi
|
||||
################################################################################
|
||||
# Initialization and sanity checks.
|
||||
|
||||
UNAME=`which uname`
|
||||
if [ -z "${UNAME}" ]; then
|
||||
echo "ERROR: uname is not found, can not continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
KERNEL_NAME=`$UNAME -s`
|
||||
BITNESS="64"
|
||||
if [ "${KERNEL_NAME}" == "Linux" ]; then
|
||||
MACHINE_TYPE=`${UNAME} -m`
|
||||
@@ -48,6 +60,9 @@ if [ "${KERNEL_NAME}" == "Linux" ]; then
|
||||
else
|
||||
BITNESS="32"
|
||||
fi
|
||||
elif [ "${KERNEL_NAME}" == "Darwin" ]; then
|
||||
MACHINE_TYPE="x86_64"
|
||||
BITNESS="64"
|
||||
fi
|
||||
|
||||
SVN_BENCHMARK_URL="https://svn.blender.org/svnroot/bf-blender/trunk/lib/benchmarks/cycles/"
|
||||
@@ -57,6 +72,13 @@ 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
|
||||
@@ -66,6 +88,9 @@ if [ "${KERNEL_NAME}" == "Linux" ]; then
|
||||
BLENDER_PLATFORM="linux-glibc219-i686"
|
||||
BLENDER_PLATFORM_AND_EXTENSION="${BLENDER_PLATFORM}.tar.bz2"
|
||||
fi
|
||||
elif [ "${KERNEL_NAME}" == "Darwin" ]; then
|
||||
BLENDER_PLATFORM="macOS-10.6"
|
||||
BLENDER_PLATFORM_AND_EXTENSION="${BLENDER_PLATFORM}.zip"
|
||||
else
|
||||
echo "ERROR: Unsupported platform."
|
||||
exit 1
|
||||
@@ -161,31 +186,39 @@ fi
|
||||
# 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 "${BUNDLE_DIRECTORY}/blender"
|
||||
${TAR} -xf "${STORAGE_DIRECTORY}/${BLENDER_RELEASE_FILE}" --directory "${BUNDLE_DIRECTORY}/blender" --strip-components 1
|
||||
rm -f "${BUNDLE_DIRECTORY}/blender/blenderplayer"
|
||||
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 "${BUNDLE_DIRECTORY}/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}" "${BUNDLE_DIRECTORY}/scenes/${scene}"
|
||||
cp -r "${SVN_BENCHMARK_CHECKOUT_DIRECTORY}/${scene}" "${DATA_DIRECTORY}/scenes/${scene}"
|
||||
# Leave single scene only.
|
||||
rm -f "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}_gpu.blend"
|
||||
mv "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}_cpu.blend" "${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}.blend"
|
||||
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="${BUNDLE_DIRECTORY}/scenes/${scene}/${scene}.png"
|
||||
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"
|
||||
@@ -222,6 +255,12 @@ ${GIT_C} pull
|
||||
echo "Updatying submodules to the latest version..."
|
||||
${GIT_C} submodule update --remote
|
||||
|
||||
if [ "${KERNEL_NAME}" == "Darwin" ]; then
|
||||
# Get precompiled libs
|
||||
cd "${SOURCE_DIRECTORY}"
|
||||
make update
|
||||
fi
|
||||
|
||||
mkdir -p "${BUILD_DIRECTORY}"
|
||||
cd "${BUILD_DIRECTORY}"
|
||||
${CMAKE} \
|
||||
@@ -231,7 +270,7 @@ ${CMAKE} \
|
||||
"${SOURCE_DIRECTORY}"
|
||||
cd -
|
||||
|
||||
${MAKE} -C "${BUILD_DIRECTORY}" -j install || exit 1
|
||||
${MAKE} -C "${BUILD_DIRECTORY}" -j 2 install || exit 1
|
||||
${STRIP} -s "${BUNDLE_DIRECTORY}/blender-benchmark"
|
||||
|
||||
################################################################################
|
||||
|
Reference in New Issue
Block a user