You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/scripts/build/Platform/Linux/clean_linux.sh

68 lines
2.4 KiB
Bash

#!/usr/bin/env bash
#
# All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
# its licensors.
#
# For complete copyright and license terms please see the LICENSE at the root of this
# distribution (the "License"). All use of this software is governed by the License,
# or, if provided, by the license below or the license accompanying this file. Do not
# remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#
set -o errexit # exit on the first failure encountered
# Jenkins defines environment variables for parameters and passes "false" to variables
# that are not set. Here we clear them if they are false so we can also just define them
# from command line
if [[ "${CLEAN_ASSETS}" == "false" ]]; then
CLEAN_ASSETS=
fi
if [[ "${CLEAN_OUTPUT_DIRECTORY}" == "false" ]]; then
CLEAN_OUTPUT_DIRECTORY=
fi
if [[ -n "$CLEAN_ASSETS" ]]; then
echo "[ci_build] CLEAN_ASSETS option set"
for project in $(echo $CMAKE_LY_PROJECTS | sed "s/;/ /g")
do
if [[ -d "$project/Cache" ]]; then
echo "[ci_build] Deleting \"$project/Cache\""
rm -rf $project/Cache
fi
done
fi
# If the node label changes, we issue a clean output since node changes can change SDK/CMake/toolchains/etc
LAST_CONFIGURE_NODE_LABEL_FILE=ci_last_node_label.txt
if [[ -n "$NODE_LABEL" ]]; then
if [[ -d $OUTPUT_DIRECTORY ]]; then
pushd $OUTPUT_DIRECTORY
if [[ -e ${LAST_CONFIGURE_NODE_LABEL_FILE} ]]; then
LAST_NODE_LABEL=$(<${LAST_CONFIGURE_NODE_LABEL_FILE})
else
LAST_NODE_LABEL=
fi
# Detect if the node label has changed
if [[ "${LAST_NODE_LABEL}" != "${NODE_LABEL}" ]]; then
echo [ci_build] Last run was done with node label \"${LAST_NODE_LABEL}\", new node label is \"${NODE_LABEL}\", forcing CLEAN_OUTPUT_DIRECTORY
CLEAN_OUTPUT_DIRECTORY=1
fi
popd
fi
fi
if [[ -n "$CLEAN_OUTPUT_DIRECTORY" ]]; then
echo "[ci_build] CLEAN_OUTPUT_DIRECTORY option set"
if [[ -d $OUTPUT_DIRECTORY ]]; then
echo "[ci_build] Deleting \"${OUTPUT_DIRECTORY}\""
rm -rf ${OUTPUT_DIRECTORY}
fi
fi
mkdir -p ${OUTPUT_DIRECTORY}
# Save the node label
pushd $OUTPUT_DIRECTORY
echo "${NODE_LABEL}" > ${LAST_CONFIGURE_NODE_LABEL_FILE}
popd