Files
o3de/scripts/build/Platform/Linux/clean_linux.sh
T
Esteban Papp 29ac17a090 SPEC-7135 Provide a method to re-trigger compiler detection for changes that require it (#1092)
* SPEC-7135 Provide a method to re-trigger compiler detection for changes that require it

* removing check (is wrong and is not necessary)

* Invert existance check

* add empty lines at the end

* Clean is triggering on each build

* clearing if the variable is false

* test code to understand what is going on...

* yeap, looks good

* handling "false" in linux/mac

* fix for linux/mac

* Fixing typos
2021-06-03 18:05:05 -07:00

68 lines
2.4 KiB
Bash
Executable File

#!/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