cmake_minimum_required(VERSION 3.13)
include(pico-sdk/pico_sdk_init.cmake)

project(pico_usb_rndis)

# initialize the Pico SDK
pico_sdk_init()

add_compile_options(-Wall
        -Wno-format          # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int
        -Wno-unused-function # we have some for the docs that aren't called
        -Wno-maybe-uninitialized
        )

add_compile_definitions(
	MIP_DEBUG=1 
	MG_ENABLE_PACKED_FS=1
	MG_ENABLE_FILE=0
	MG_ENABLE_MIP=1
	DISABLE_ROUTING
	)

if (TARGET tinyusb_device)

add_executable(firmware
	main.c
	mongoose.c
	net.c
	packed_fs.c
	usb_descriptors.c
	/usr/share/pico_sdk/lib/tinyusb/lib/networking/rndis_reports.c
	)

# Make sure TinyUSB can find tusb_config.h and workaround SDK include paths
target_include_directories(firmware PUBLIC
        ${CMAKE_CURRENT_LIST_DIR}
	/usr/share/pico_sdk/lib/tinyusb/lib/networking
	)

# enable uart output
pico_enable_stdio_usb(firmware 0)
pico_enable_stdio_uart(firmware 1)

else()
    message(WARNING "not building because TinyUSB submodule is not initialized in the SDK")
endif()

target_link_libraries(firmware PUBLIC
	pico_stdlib
	tinyusb_device
	tinyusb_board
	)

# create map/bin/hex file etc.
pico_add_extra_outputs(firmware)
