if (TARGET usb_device)
    PROJECT(pico_1bit_dac_v2.30)

    add_executable(pico_1bit_dac_v2.30
        main.c
        bsp.c
        dsp.c
        dsp_asm.S
        i2s_rx.c
        pdm_output.c
        pdm_output_asm.S
        simple_queue.c
        usb_audio.c
        uart_command_interface.c
        parameter.c
        i2c_target.c
        ssd1306_i2c.c
        i2c_dma.c
        dsd_output.c
        )

        pico_generate_pio_header(pico_1bit_dac_v2.30 ${CMAKE_CURRENT_LIST_DIR}/pdm_output.pio)
        pico_generate_pio_header(pico_1bit_dac_v2.30 ${CMAKE_CURRENT_LIST_DIR}/dsd_output.pio)
        pico_generate_pio_header(pico_1bit_dac_v2.30 ${CMAKE_CURRENT_LIST_DIR}/i2s_rx.pio)


        target_compile_definitions(pico_1bit_dac_v2.30 PRIVATE

            # ours are zero based, so say so
            PICO_USBDEV_USE_ZERO_BASED_INTERFACES=1

            # need large descriptor
            PICO_USBDEV_MAX_DESCRIPTOR_SIZE=256

            # Endpoint Buffer Size[Byte]; _TYPE=1:256,2:512,3:1024
            PICO_USBDEV_ISOCHRONOUS_BUFFER_STRIDE_TYPE=3
            PICO_USBDEV_ENABLE_DEBUG_TRACE

    )

    target_link_libraries(pico_1bit_dac_v2.30
            pico_stdlib
            usb_device
            pico_multicore
            hardware_interp
            hardware_pio
            hardware_i2c
            hardware_pwm
            pico_i2c_slave
    )

    target_compile_definitions(pico_1bit_dac_v2.30 PUBLIC
        RPI5_SUPPORTED=1    # Raspberry Pi 5 Supported 0:No 1:Yes
        HARDWARE_PWM_MUTE_ENABLED=1  # 0:Disabled 1:Enabled
    )
    
    pico_add_extra_outputs(pico_1bit_dac_v2.30)
endif()
