33 строки
720 B
Bash
Executable File
33 строки
720 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -x
|
|
set -e
|
|
|
|
PROFRAW_DIR=$1
|
|
OUTPUT_FILENAME=$2
|
|
|
|
# Reads the paths to prof data files from INPUT_FILENAME and then merges them
|
|
# into OUTPUT_FILENAME.
|
|
TARGETS=($(find ${PROFRAW_DIR} -name '*.profraw'))
|
|
|
|
if [[ ${#TARGETS[@]} -eq 0 ]]; then
|
|
echo "Error! No *.profraw targets to merge!"
|
|
exit 1
|
|
fi
|
|
|
|
FIRST_TARGET=${TARGETS[0]}
|
|
xcrun -sdk macosx llvm-profdata merge -output-file=${OUTPUT_FILENAME} ${FIRST_TARGET}
|
|
|
|
if [[ ${#TARGETS[@]} -eq 1 ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Reduce over the rest of the targets
|
|
for t in "${TARGETS[@]:1}"; do
|
|
xcrun -sdk macosx llvm-profdata merge -o=${OUTPUT_FILENAME}.tmp ${t} ${OUTPUT_FILENAME}
|
|
mv ${OUTPUT_FILENAME}.tmp ${OUTPUT_FILENAME}
|
|
done
|
|
|
|
set +e
|
|
set +x
|