#!/bin/bash
# SPDX-FileCopyrightText: 2020 Efabless Corporation
#
# 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.
# SPDX-License-Identifier: Apache-2.0

# To use: sh apply_caravel.sh <target_project_path> <template_caravel_path>

target_project=$1
original_caravel=$2

find $original_caravel/def/* -type f ! -name "user_project_wrapper.def" ! -name "user_proj_example.def" -exec cp {} $target_project/def \;
find $original_caravel/lef/* -type f ! -name "user_project_wrapper.lef" ! -name "user_proj_example.lef" -exec cp {} $target_project/lef \;
find $original_caravel/gds/* -type f ! -name "user_project_wrapper.gds" ! -name "user_proj_example.gds" -exec cp {} $target_project/gds \;
find $original_caravel/mag/* -type f ! -name "user_project_wrapper.mag" ! -name "user_proj_example.mag" -exec cp {} $target_project/mag \;
cp $original_caravel/maglef/* $target_project/maglef
cp -r $original_caravel/ngspice/digital_pll $target_project/ngspice/digital_pll
cp -r $original_caravel/ngspice/simple_por $target_project/ngspice/simple_por
cp -r $original_caravel/scripts $target_project/scripts
find $original_caravel/spi/lvs/* -type f ! -name "user_project_wrapper.spice" ! -name "user_proj_example.spice" -exec cp {} $target_project/spi/lvs/ \;
cp -r $original_caravel/utils $target_project/utils
find $original_caravel/verilog/rtl/* -type f ! -name "user_project_wrapper.v" ! -name "user_proj_example.v" -exec cp {} $target_project/verilog/rtl/ \;
find $original_caravel/verilog/gl/* -type f ! -name "user_project_wrapper.v" ! -name "user_proj_example.v" -exec cp {} $target_project/verilog/gl/ \;
cp $original_caravel/verilog/stubs/*.v $target_project/verilog/stubs/
cp -r $original_caravel/verilog/dv/caravel $target_project/verilog/dv/caravel
cp -r $original_caravel/verilog/dv/wb_utests $target_project/verilog/dv/wb_utests
cp $original_caravel/verilog/dv/dummy_slave.v $target_project/verilog/dv/dummy_slave.v 

echo "You'll have to manually copy the openlane/user_project_wrapper configs based on your preference."
echo "You'll have to manually copy the openlane/Makefile based on your preference."
echo "You'll have to manually copy the Makefile based on your preference."