|
| 1 | +if (DEFINED ENV{PICO_CHERRYUSB_PATH} AND (NOT PICO_CHERRYUSB_PATH)) |
| 2 | + set(PICO_CHERRYUSB_PATH $ENV{PICO_CHERRYUSB_PATH}) |
| 3 | + message("Using PICO_CHERRYUSB_PATH from environment ('${PICO_CHERRYUSB_PATH}')") |
| 4 | +endif () |
| 5 | + |
| 6 | +set(CHERRYUSB_TEST_PATH "port/rp2040") |
| 7 | +if (NOT PICO_CHERRYUSB_PATH) |
| 8 | + set(PICO_CHERRYUSB_PATH ${PROJECT_SOURCE_DIR}/lib/cherryusb) |
| 9 | + if (NOT EXISTS ${PICO_CHERRYUSB_PATH}/${CHERRYUSB_TEST_PATH}) |
| 10 | + message(WARNING "CherryUSB submodule has not been initialized; USB support will be unavailable |
| 11 | +hint: try 'git submodule update --init' from your SDK directory (${PICO_SDK_PATH}).") |
| 12 | + endif() |
| 13 | +elseif (NOT EXISTS ${PICO_CHERRYUSB_PATH}/${CHERRYUSB_TEST_PATH}) |
| 14 | + message(WARNING "PICO_CHERRYUSB_PATH specified but content not present.") |
| 15 | +endif() |
| 16 | + |
| 17 | +if (EXISTS ${PICO_CHERRYUSB_PATH}/${CHERRYUSB_TEST_PATH}) |
| 18 | + message("CherryUSB available at ${PICO_CHERRYUSB_PATH}; enabling build support for USB.") |
| 19 | + pico_register_common_scope_var(PICO_CHERRYUSB_PATH) |
| 20 | + |
| 21 | + set(CONFIG_CHERRYUSB_DEVICE 1) |
| 22 | + set(CONFIG_CHERRYUSB_DEVICE_CDC_ACM 1) |
| 23 | + set(CONFIG_CHERRYUSB_DEVICE_HID 1) |
| 24 | + set(CONFIG_CHERRYUSB_DEVICE_MSC 1) |
| 25 | + set(CONFIG_CHERRYUSB_DEVICE_AUDIO 1) |
| 26 | + set(CONFIG_CHERRYUSB_DEVICE_VIDEO 1) |
| 27 | + set(CONFIG_CHERRYUSB_DEVICE_DCD "rp2040") |
| 28 | + include(${PICO_CHERRYUSB_PATH}/cherryusb.cmake) |
| 29 | + pico_add_library(cherryusb_device NOFLAG) |
| 30 | + target_include_directories(cherryusb_device_headers SYSTEM INTERFACE ${cherryusb_incs}) |
| 31 | + target_include_directories(cherryusb_device_headers SYSTEM INTERFACE ${PICO_CHERRYUSB_PATH}/demo) |
| 32 | + target_sources(cherryusb_device INTERFACE ${cherryusb_srcs}) |
| 33 | + |
| 34 | + set(CONFIG_CHERRYUSB_HOST 1) |
| 35 | + set(CONFIG_CHERRYUSB_HOST_CDC_ACM 1) |
| 36 | + set(CONFIG_CHERRYUSB_HOST_HID 1) |
| 37 | + set(CONFIG_CHERRYUSB_HOST_MSC 1) |
| 38 | + set(CONFIG_CHERRYUSB_OSAL "freertos") |
| 39 | + set(CONFIG_CHERRYUSB_HOST_HCD "rp2040") |
| 40 | + |
| 41 | + include(${PICO_CHERRYUSB_PATH}/cherryusb.cmake) |
| 42 | + pico_add_library(cherryusb_host NOFLAG) |
| 43 | + target_include_directories(cherryusb_host_headers SYSTEM INTERFACE ${cherryusb_incs}) |
| 44 | + target_include_directories(cherryusb_host_headers SYSTEM INTERFACE ${PICO_CHERRYUSB_PATH}/demo) |
| 45 | + target_sources(cherryusb_host INTERFACE ${cherryusb_srcs}) |
| 46 | + |
| 47 | + pico_promote_common_scope_vars() |
| 48 | +endif() |
0 commit comments