# Copyright 2021 The Pigweed 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
#
#     https://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.

import("//build_overrides/pigweed.gni")

import("$dir_pw_toolchain/generate_toolchain.gni")

if (dir_third_party_pico_sdk != "") {
  import("target_toolchains.gni")

  generate_toolchains("toolchains") {
    toolchains = toolchains_list
  }

  if (current_toolchain != default_toolchain) {
    _pico_sdk_dir = rebase_path(dir_third_party_pico_sdk)

    config("pico_config") {
      defines = [
        "DIR_THIRD_PARTY_PICO_SDK=\"$_pico_sdk_dir\"",
        "PICO_H_LOCATION=\"${_pico_sdk_dir}/src/boards/include/boards/pico.h\"",
        "RENAME_EXCEPTIONS_H_LOCATION=\"$_pico_sdk_dir/src/rp2_common/cmsis/include/cmsis/rename_exceptions.h\"",
        "CFG_TUSB_DEBUG=0",
        "CFG_TUSB_MCU=OPT_MCU_RP2040",
        "CFG_TUSB_OS=OPT_OS_PICO",
        "LIB_PICO_BIT_OPS=1",
        "LIB_PICO_BIT_OPS_PICO=1",
        "LIB_PICO_DIVIDER=1",
        "LIB_PICO_DIVIDER_HARDWARE=1",
        "LIB_PICO_DOUBLE=1",
        "LIB_PICO_DOUBLE_PICO=1",
        "LIB_PICO_FIX_RP2040_USB_DEVICE_ENUMERATION=1",
        "LIB_PICO_FLOAT=1",
        "LIB_PICO_FLOAT_PICO=1",
        "LIB_PICO_INT64_OPS=1",
        "LIB_PICO_INT64_OPS_PICO=1",
        "LIB_PICO_MALLOC=1",
        "LIB_PICO_MEM_OPS=1",
        "LIB_PICO_MEM_OPS_PICO=1",
        "LIB_PICO_PLATFORM=1",
        "LIB_PICO_PRINTF=1",
        "LIB_PICO_PRINTF_PICO=1",
        "LIB_PICO_RUNTIME=1",
        "LIB_PICO_STANDARD_LINK=1",
        "LIB_PICO_STDIO=1",
        "LIB_PICO_STDIO_USB=1",
        "LIB_PICO_STDLIB=1",
        "LIB_PICO_SYNC=1",
        "LIB_PICO_SYNC_CORE=1",
        "LIB_PICO_SYNC_CRITICAL_SECTION=1",
        "LIB_PICO_SYNC_MUTEX=1",
        "LIB_PICO_SYNC_SEM=1",
        "LIB_PICO_TIME=1",
        "LIB_PICO_UNIQUE_ID=1",
        "LIB_PICO_UTIL=1",
        "PICO_BOARD=\"pico\"",
        "PICO_BUILD=1",
        "PICO_CMAKE_BUILD_TYPE=\"Release\"",
        "PICO_COPY_TO_RAM=0",
        "PICO_CXX_ENABLE_EXCEPTIONS=0",
        "PICO_NO_FLASH=0",
        "PICO_NO_HARDWARE=0",
        "PICO_ON_DEVICE=1",

        # "PICO_TARGET_NAME=\"hello_usb\"",
        "PICO_USE_BLOCKED_RAM=0",
      ]
      include_dirs = [
        "$dir_third_party_pico_sdk/src/common/pico_stdlib/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_gpio/include",
        "$dir_third_party_pico_sdk/src/common/pico_base/include",
        "$dir_pico_build/public_overrides",
        "$dir_third_party_pico_sdk/src/boards/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_platform/include",
        "$dir_third_party_pico_sdk/src/rp2040/hardware_regs/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_base/include",
        "$dir_third_party_pico_sdk/src/rp2040/hardware_structs/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_claim/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_sync/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_uart/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_divider/include",
        "$dir_third_party_pico_sdk/src/common/pico_time/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_timer/include",
        "$dir_third_party_pico_sdk/src/common/pico_sync/include",
        "$dir_third_party_pico_sdk/src/common/pico_util/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_runtime/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_clocks/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_irq/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_resets/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_pll/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_vreg/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_watchdog/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_xosc/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_printf/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_bootrom/include",
        "$dir_third_party_pico_sdk/src/common/pico_bit_ops/include",
        "$dir_third_party_pico_sdk/src/common/pico_divider/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_double/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_int64_ops/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_float/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_malloc/include",
        "$dir_third_party_pico_sdk/src/rp2_common/boot_stage2/include",
        "$dir_third_party_pico_sdk/src/common/pico_binary_info/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio_usb/include",
        "$dir_third_party_pico_sdk/lib/tinyusb/src",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/common",
        "$dir_third_party_pico_sdk/lib/tinyusb/hw",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/include",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_unique_id/include",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_flash/include",
        "$dir_third_party_pico_sdk/src/common/pico_usb_reset_interface/include",
        "-NDEBUG",
      ]
      cflags = [
        "-Wno-unused-function",
        "-Wno-maybe-uninitialized",
        "-ffunction-sections",
        "-fdata-sections",
        "-Wno-error=undef",
        "-Wno-error=cast-qual",
        "-Wno-error=pointer-arith",
      ]
      cflags_c = [ "-std=gnu11" ]
      ldflags = [
        "-Wl,--wrap=sprintf",
        "-Wl,--wrap=snprintf",
        "-Wl,--wrap=vsnprintf",
        "-Wl,--wrap=__clzsi2",
        "-Wl,--wrap=__clzdi2",
        "-Wl,--wrap=__ctzsi2",
        "-Wl,--wrap=__ctzdi2",
        "-Wl,--wrap=__popcountsi2",
        "-Wl,--wrap=__popcountdi2",
        "-Wl,--wrap=__clz",
        "-Wl,--wrap=__clzl",
        "-Wl,--wrap=__clzll",
        "-Wl,--wrap=__aeabi_idiv",
        "-Wl,--wrap=__aeabi_idivmod",
        "-Wl,--wrap=__aeabi_ldivmod",
        "-Wl,--wrap=__aeabi_uidiv",
        "-Wl,--wrap=__aeabi_uidivmod",
        "-Wl,--wrap=__aeabi_uldivmod",
        "-Wl,--wrap=__aeabi_lmul",
        "-Wl,--wrap=__aeabi_fadd",
        "-Wl,--wrap=__aeabi_fdiv",
        "-Wl,--wrap=__aeabi_fmul",
        "-Wl,--wrap=__aeabi_frsub",
        "-Wl,--wrap=__aeabi_fsub",
        "-Wl,--wrap=__aeabi_cfcmpeq",
        "-Wl,--wrap=__aeabi_cfrcmple",
        "-Wl,--wrap=__aeabi_cfcmple",
        "-Wl,--wrap=__aeabi_fcmpeq",
        "-Wl,--wrap=__aeabi_fcmplt",
        "-Wl,--wrap=__aeabi_fcmple",
        "-Wl,--wrap=__aeabi_fcmpge",
        "-Wl,--wrap=__aeabi_fcmpgt",
        "-Wl,--wrap=__aeabi_fcmpun",
        "-Wl,--wrap=__aeabi_i2f",
        "-Wl,--wrap=__aeabi_l2f",
        "-Wl,--wrap=__aeabi_ui2f",
        "-Wl,--wrap=__aeabi_ul2f",
        "-Wl,--wrap=__aeabi_f2iz",
        "-Wl,--wrap=__aeabi_f2lz",
        "-Wl,--wrap=__aeabi_f2uiz",
        "-Wl,--wrap=__aeabi_f2ulz",
        "-Wl,--wrap=__aeabi_f2d",
        "-Wl,--wrap=sqrtf",
        "-Wl,--wrap=cosf",
        "-Wl,--wrap=sinf",
        "-Wl,--wrap=tanf",
        "-Wl,--wrap=atan2f",
        "-Wl,--wrap=expf",
        "-Wl,--wrap=logf",
        "-Wl,--wrap=ldexpf",
        "-Wl,--wrap=copysignf",
        "-Wl,--wrap=truncf",
        "-Wl,--wrap=floorf",
        "-Wl,--wrap=ceilf",
        "-Wl,--wrap=roundf",
        "-Wl,--wrap=sincosf",
        "-Wl,--wrap=asinf",
        "-Wl,--wrap=acosf",
        "-Wl,--wrap=atanf",
        "-Wl,--wrap=sinhf",
        "-Wl,--wrap=coshf",
        "-Wl,--wrap=tanhf",
        "-Wl,--wrap=asinhf",
        "-Wl,--wrap=acoshf",
        "-Wl,--wrap=atanhf",
        "-Wl,--wrap=exp2f",
        "-Wl,--wrap=log2f",
        "-Wl,--wrap=exp10f",
        "-Wl,--wrap=log10f",
        "-Wl,--wrap=powf",
        "-Wl,--wrap=powintf",
        "-Wl,--wrap=hypotf",
        "-Wl,--wrap=cbrtf",
        "-Wl,--wrap=fmodf",
        "-Wl,--wrap=dremf",
        "-Wl,--wrap=remainderf",
        "-Wl,--wrap=remquof",
        "-Wl,--wrap=expm1f",
        "-Wl,--wrap=log1pf",
        "-Wl,--wrap=fmaf",
        "-Wl,--wrap=malloc",
        "-Wl,--wrap=calloc",
        "-Wl,--wrap=free",
        "-Wl,--wrap=memcpy",
        "-Wl,--wrap=memset",
        "-Wl,--wrap=__aeabi_memcpy",
        "-Wl,--wrap=__aeabi_memset",
        "-Wl,--wrap=__aeabi_memcpy4",
        "-Wl,--wrap=__aeabi_memset4",
        "-Wl,--wrap=__aeabi_memcpy8",
        "-Wl,--wrap=__aeabi_memset8",
        "-Wl,-Map=hello_usb.elf.map",
        "-Wl,--script=${_pico_sdk_dir}/src/rp2_common/pico_standard_link/memmap_default.ld",
        "-Wl,-z,max-page-size=4096",
        "-Wl,--gc-sections",
        "-Wl,--wrap=printf",
        "-Wl,--wrap=vprintf",
        "-Wl,--wrap=puts",
        "-Wl,--wrap=putchar",
        "-Wl,--wrap=getchar",
      ]
    }

    pw_source_set("pre_init") {
      sources = [ "init.cc" ]

      public_deps = [
        "$dir_pw_sys_io_pico",
        "//targets/pico:pico_core_sources",
      ]
      deps = []
      remove_configs = [ "$dir_pw_build:strict_warnings" ]
    }

    pw_source_set("pico_core_sources") {
      public_configs = [ ":pico_config" ]
      sources = [
        "$dir_pico_build/bs2_default_padded_checksummed.S",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/audio/audio_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/cdc/cdc_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/dfu/dfu_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/dfu/dfu_rt_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/hid/hid_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/midi/midi_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/msc/msc_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/net/ecm_rndis_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/net/ncm_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/usbtmc/usbtmc_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/vendor/vendor_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/class/video/video_device.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/common/tusb_fifo.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/device/usbd.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/device/usbd_control.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c",
        "$dir_third_party_pico_sdk/lib/tinyusb/src/tusb.c",
        "$dir_third_party_pico_sdk/src/common/pico_sync/critical_section.c",
        "$dir_third_party_pico_sdk/src/common/pico_sync/lock_core.c",
        "$dir_third_party_pico_sdk/src/common/pico_sync/mutex.c",
        "$dir_third_party_pico_sdk/src/common/pico_sync/sem.c",
        "$dir_third_party_pico_sdk/src/common/pico_time/time.c",
        "$dir_third_party_pico_sdk/src/common/pico_time/timeout_helper.c",
        "$dir_third_party_pico_sdk/src/common/pico_util/datetime.c",
        "$dir_third_party_pico_sdk/src/common/pico_util/pheap.c",
        "$dir_third_party_pico_sdk/src/common/pico_util/queue.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_claim/claim.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_clocks/clocks.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_flash/flash.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_gpio/gpio.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_irq/irq.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_irq/irq_handler_chain.S",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_pll/pll.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_sync/sync.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_timer/timer.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_uart/uart.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_vreg/vreg.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_watchdog/watchdog.c",
        "$dir_third_party_pico_sdk/src/rp2_common/hardware_xosc/xosc.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_bootrom/bootrom.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_divider/divider.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_double/double_aeabi.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_double/double_init_rom.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_double/double_math.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_double/double_v1_rom_shim.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_fix/rp2040_usb_device_enumeration/rp2040_usb_device_enumeration.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_float/float_init_rom.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_float/float_math.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_malloc/pico_malloc.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_platform/platform.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_printf/printf.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_runtime/runtime.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_standard_link/binary_info.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_standard_link/crt0.S",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_standard_link/new_delete.cpp",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio/stdio.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio_usb/reset_interface.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio_usb/stdio_usb.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdio_usb/stdio_usb_descriptors.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_stdlib/stdlib.c",
        "$dir_third_party_pico_sdk/src/rp2_common/pico_unique_id/unique_id.c",
      ]
    }
  }
} else {
  config("pico_config") {
  }
  group("pre_init") {
  }
}
