cmake_minimum_required(VERSION 3.13)
set(PROJECT webkeyboard)
set(PICO_SDK_PATH /home/kenji/programming/pico/c/pico-sdk)
set(PICO_BOARD pico_w)
include (${PICO_SDK_PATH}/external/pico_sdk_import.cmake)
project(${PROJECT} C CXX ASM)

set(MAKE_FS_DATA_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/external/makefsdata)
set(HTML_DIR ${CMAKE_CURRENT_LIST_DIR}/html)

if (NOT EXISTS ${MAKE_FS_DATA_SCRIPT})
        file(DOWNLOAD
                https://raw.githubusercontent.com/lwip-tcpip/lwip/e799c266facc3c70190676eccad49d6c2db2caac/src/apps/http/makefsdata/makefsdata
                ${MAKE_FS_DATA_SCRIPT}
                )
endif()
message("Running makefsdata script")
execute_process(COMMAND
        perl ${MAKE_FS_DATA_SCRIPT}
		WORKING_DIRECTORY ${HTML_DIR}
        ECHO_OUTPUT_VARIABLE
        ECHO_ERROR_VARIABLE
        )
file(RENAME ${HTML_DIR}/fsdata.c ${CMAKE_CURRENT_LIST_DIR}/my_fsdata.c)

pico_sdk_init()

add_executable(${PROJECT})
target_sources(${PROJECT} PRIVATE
	main.c
	server.c
	hid.c
	usb_descriptors.c
	parse_keys.c
	dhcpserver.c
	websocket.c
)

pico_enable_stdio_usb(${PROJECT} 1)
pico_enable_stdio_uart(${PROJECT} 1)

pico_add_extra_outputs(${PROJECT})

target_include_directories(${PROJECT} PRIVATE ${CMAKE_CURRENT_LIST_DIR})

target_link_libraries(${PROJECT} 
	pico_cyw43_arch_lwip_threadsafe_background
	pico_lwip_http
	pico_stdlib
	pico_multicore
	pico_mbedtls
	tinyusb_device
)


