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