option(PICO_NO_FLASH "Default binaries to not not use flash")
option(PICO_COPY_TO_RAM "Default binaries to Copy code to RAM when booting from flash")

set(CMAKE_EXECUTABLE_SUFFIX .elf)

pico_add_subdirectory(hardware_base)
pico_add_subdirectory(hardware_claim)
# HAL items which expose a public (inline) functions/macro API above the raw hardware
pico_add_subdirectory(hardware_adc)
pico_add_subdirectory(hardware_clocks)
pico_add_subdirectory(hardware_dma)
pico_add_subdirectory(hardware_divider)
pico_add_subdirectory(hardware_exception)
pico_add_subdirectory(hardware_flash)
pico_add_subdirectory(hardware_gpio)
pico_add_subdirectory(hardware_i2c)
pico_add_subdirectory(hardware_interp)
pico_add_subdirectory(hardware_irq)
pico_add_subdirectory(hardware_pio)
pico_add_subdirectory(hardware_pll)
pico_add_subdirectory(hardware_pwm)
pico_add_subdirectory(hardware_resets)
pico_add_subdirectory(hardware_rtc)
pico_add_subdirectory(hardware_spi)
pico_add_subdirectory(hardware_sync)
pico_add_subdirectory(hardware_timer)
pico_add_subdirectory(hardware_uart)
pico_add_subdirectory(hardware_vreg)
pico_add_subdirectory(hardware_watchdog)
pico_add_subdirectory(hardware_xosc)

# Helper functions to connect to data/functions in the bootrom
pico_add_subdirectory(pico_bootrom)
pico_add_subdirectory(pico_platform)

if (NOT PICO_BARE_METAL)
    # NOTE THE ORDERING HERE IS IMPORTANT AS SOME TARGETS CHECK ON EXISTENCE OF OTHER TARGETS
    pico_add_subdirectory(boot_stage2)

    pico_add_subdirectory(pico_bootsel_via_double_reset)
    pico_add_subdirectory(pico_multicore)
    pico_add_subdirectory(pico_unique_id)

    pico_add_subdirectory(pico_bit_ops)
    pico_add_subdirectory(pico_divider)
    pico_add_subdirectory(pico_double)
    pico_add_subdirectory(pico_int64_ops)
    pico_add_subdirectory(pico_float)
    pico_add_subdirectory(pico_mem_ops)
    pico_add_subdirectory(pico_malloc)
    pico_add_subdirectory(pico_printf)
    pico_add_subdirectory(pico_rand)

    pico_add_subdirectory(pico_stdio)
    pico_add_subdirectory(pico_stdio_semihosting)
    pico_add_subdirectory(pico_stdio_uart)

    pico_add_subdirectory(cmsis)
    pico_add_subdirectory(tinyusb)
    pico_add_subdirectory(pico_stdio_usb)
    pico_add_subdirectory(pico_i2c_slave)

    # networking libraries - note dependency order is important
    pico_add_subdirectory(pico_async_context)
    pico_add_subdirectory(pico_btstack)
    pico_add_subdirectory(pico_cyw43_driver)
    pico_add_subdirectory(pico_lwip)
    pico_add_subdirectory(pico_cyw43_arch)
    pico_add_subdirectory(pico_mbedtls)

    pico_add_subdirectory(pico_stdlib)

    pico_add_subdirectory(pico_cxx_options)
    pico_add_subdirectory(pico_standard_link)

    pico_add_subdirectory(pico_fix)

    pico_add_subdirectory(pico_runtime)

endif()

set(CMAKE_EXECUTABLE_SUFFIX "${CMAKE_EXECUTABLE_SUFFIX}" PARENT_SCOPE)

pico_add_doxygen(${CMAKE_CURRENT_LIST_DIR})
pico_add_doxygen_exclude(${CMAKE_CURRENT_LIST_DIR}/cmsis)

pico_promote_common_scope_vars()