# Copyright 2023 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_build/target_types.gni") import("$dir_pw_docgen/docs.gni") import("ambiq.gni") pw_doc_group("docs") { sources = [ "docs.rst" ] } # This file defines a GN source_set for an external installation of Ambiq SDK. # To use, checkout the Ambiq Apollo4 SDK source into a directory, then set # the build arg dir_pw_third_party_ambiq_SDK to point to that directory. The # Ambiq Apollo 4 SDK library will be available in GN # at "$dir_pw_third_party/apollo4". if (dir_pw_third_party_ambiq_SDK != "") { config("apollo4p_sdk_defines") { defines = [ "AM_PART_APOLLO4P=1", "apollo4p_evb=1", "gcc=1", "AM_PACKAGE_BGA=1", ] visibility = [ ":*" ] } config("apollo4b_sdk_defines") { defines = [ "AM_PART_APOLLO4B=1", "apollo4b_evb=1", "gcc=1", "AM_PACKAGE_BGA=1", ] visibility = [ ":*" ] } config("disable_warnings") { cflags = [ "-Wno-sign-compare", "-Wno-unused-parameter", "-Wno-cast-qual", "-Wno-shadow", "-Wno-implicit-fallthrough", "-Wno-maybe-uninitialized", ] cflags_c = [ "-Wno-old-style-declaration" ] visibility = [ ":*" ] } config("apollo4_include_dirs") { include_dirs = [ "$dir_pw_third_party_ambiq_SDK/devices", "$dir_pw_third_party_ambiq_SDK/utils", "$dir_pw_third_party_ambiq_SDK/CMSIS/ARM/Include", "$dir_pw_third_party_ambiq_SDK/CMSIS/AmbiqMicro/Include", ] } config("apollo4p_include_dirs") { include_dirs = [ "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p", "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp", ] } config("apollo4b_include_dirs") { include_dirs = [ "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b", "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp", ] } pw_source_set("apollo4p") { remove_configs = [ "$dir_pw_build:extra_strict_warnings" ] public_configs = [ ":disable_warnings", ":apollo4_include_dirs", ":apollo4p_include_dirs", ":apollo4p_sdk_defines", ] sources = [ "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp/am_bsp.c", "$dir_pw_third_party_ambiq_SDK/boards/apollo4p_evb/bsp/am_bsp_pins.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_access.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_adc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_audadc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_dcu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_global.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_gpio.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_i2s.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_otp.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pdm.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pin.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_pwrctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_queue.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_security.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_stimer.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_timer.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_usb.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/am_hal_wdt.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_bootrom_helper.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_cachectrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_card.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_card_host.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_clkgen.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_cmdq.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_dsi.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_fault.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_interrupt.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_iom.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_ios.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_itm.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_itm.h", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mcuctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mpu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mram.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_mspi.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_reset.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_rtc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_sdhc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_secure_ota.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_sysctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_systick.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_tpiu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_uart.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4p/hal/mcu/am_hal_utils.c", ] } pw_source_set("apollo4b") { remove_configs = [ "$dir_pw_build:extra_strict_warnings" ] public_configs = [ ":disable_warnings", ":apollo4_include_dirs", ":apollo4b_include_dirs", ":apollo4b_sdk_defines", ] sources = [ "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp/am_bsp.c", "$dir_pw_third_party_ambiq_SDK/boards/apollo4b_evb/bsp/am_bsp_pins.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_access.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_adc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_audadc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_dcu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_global.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_gpio.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_i2s.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_otp.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pdm.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pin.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_pwrctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_queue.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_security.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_stimer.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_timer.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_usb.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/am_hal_wdt.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_bootrom_helper.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_cachectrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_card.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_card_host.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_clkgen.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_cmdq.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_dsi.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_fault.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_interrupt.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_iom.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_ios.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_itm.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_itm.h", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mcuctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mpu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mram.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_mspi.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_reset.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_rtc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_sdhc.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_secure_ota.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_sysctrl.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_systick.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_tpiu.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_uart.c", "$dir_pw_third_party_ambiq_SDK/mcu/apollo4b/hal/mcu/am_hal_utils.c", ] } pw_source_set("sdk") { if (pw_third_party_ambiq_PRODUCT == "apollo4p") { public_deps = [ ":apollo4p" ] } else if (pw_third_party_ambiq_PRODUCT == "apollo4b") { public_deps = [ ":apollo4b" ] } } }