| #!/usr/bin/env bash | 
 | # | 
 | # Copyright (c) 2020-2023 Project CHIP Authors | 
 | # | 
 | # Licensed under the Apache License, Version 2.0 (the "License"); | 
 | # you may not use this file except in compliance with the License. | 
 | # You may obtain a copy of the License at | 
 | # | 
 | #     http://www.apache.org/licenses/LICENSE-2.0 | 
 | # | 
 | # Unless required by applicable law or agreed to in writing, software | 
 | # distributed under the License is distributed on an "AS IS" BASIS, | 
 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 | # See the License for the specific language governing permissions and | 
 | # limitations under the License. | 
 | # | 
 |  | 
 | JQ=$(which jq) | 
 | if [ $? -ne 0 ]; then | 
 |     echo "'jq' not detected in PATH. Install using: brew install jq" | 
 |     exit 1 | 
 | fi | 
 |  | 
 | set -e | 
 | set -x | 
 |  | 
 | source "$(dirname "$0")/../../scripts/activate.sh" | 
 | CHIP_ROOT="$(dirname "$0")/../.." | 
 | OUTPUT_DIR=$2 | 
 |  | 
 | # Build the framework | 
 | scripts/examples/gn_build_example.sh "$@" generate_compilation_database=true | 
 |  | 
 | # Clean up any stale DB files | 
 | find "$OUTPUT_DIR" -iname compile_commands\*.json | xargs rm | 
 |  | 
 | # Construct json from fragments generated by xcodebuild | 
 | COMPDB_FRAGMENTS_DIR=$(find "$OUTPUT_DIR" -type d -name compdb) | 
 | sed -e '1s/^/[\'$'\n''/' -e '$s/,$/\'$'\n'']/' "$COMPDB_FRAGMENTS_DIR"/*.json >"$OUTPUT_DIR"/compile_commands_darwin_framework.json | 
 |  | 
 | # Get ninja to build comdb for the rest | 
 | ninja -C "$OUTPUT_DIR" -t compdb >"$OUTPUT_DIR"/compile_commands_rest.json | 
 |  | 
 | # Combine the generated compdb into one | 
 | find "$OUTPUT_DIR" -iname compile_commands\*.json | xargs jq -s 'map(.[])' >"$OUTPUT_DIR"/compile_commands.json |