#!/bin/bash
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

### generate a compilation database for the current build configuration

## usage: fx compdb

source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/../lib/vars.sh || exit $?
fx-config-read

main () {
    if [ $# -gt 0 ]; then
        echo "Script to generate compile_commands.json files"
        echo "Automatically generates compile_commands.json for Zircon and Fuchsia"
        echo "and concatenates the two compile_commands.json"
        echo "Usage: fx compdb"
        echo
        exit
    fi

    cd ${FUCHSIA_DIR}/zircon
    "${FUCHSIA_DIR}/buildtools/gn" gen "${ZIRCON_BUILDROOT}" --export-compile-commands
    cd ..

    "${FUCHSIA_DIR}/buildtools/gn" gen "${FUCHSIA_BUILD_DIR}" --export-compile-commands

    #concatenate the two files together by making a tmp file and then removing it when done

    rm -f "${FUCHSIA_DIR}/compile_commands.json"
    ${FUCHSIA_DIR}/scripts/editors/cat_compile_commands.py ${ZIRCON_BUILDROOT}/compile_commands.json \
    ${FUCHSIA_BUILD_DIR}/compile_commands.json > ${FUCHSIA_DIR}/compile_commands.json
}

main "$@"
