60 lines
1.5 KiB
CMake
60 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
set(PROJECT webkeyboard)
|
|
set(PICO_SDK_PATH /home/kenji/programming/pico/c/pico-sdk)
|
|
if (NOT DEFINED PICO_BOARD)
|
|
set(PICO_BOARD pico_w)
|
|
endif()
|
|
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)
|
|
|
|
set_target_properties(${PROJECT} PROPERTIES OUTPUT_NAME "${PROJECT}-${PICO_BOARD}")
|
|
|
|
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_board
|
|
tinyusb_device
|
|
)
|
|
|
|
|