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