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

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

    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 "$@"
