Files
edmfd_firmware/CMakeLists.txt
2025-02-23 17:21:09 -08:00

72 lines
1.8 KiB
CMake

# == DO NOT EDIT THE FOLLOWING LINES for the Raspberry Pi Pico VS Code Extension to work ==
if(WIN32)
set(USERHOME $ENV{USERPROFILE})
else()
set(USERHOME $ENV{HOME})
endif()
set(sdkVersion 2.1.0)
set(toolchainVersion 13_3_Rel1)
set(picotoolVersion 2.1.0)
set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake)
if (EXISTS ${picoVscode})
include(${picoVscode})
endif()
# ====================================================================================
set(PICO_BOARD pico CACHE STRING "Board type")
cmake_minimum_required(VERSION 3.12)
set(PICO_SDK_PATH ${CMAKE_SOURCE_DIR}/pico-sdk)
include(pico_sdk_import.cmake)
project(EDMFD C CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 20)
set(PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS 3000)
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
)
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
add_compile_options(-Wno-maybe-uninitialized)
add_compile_options(-ffile-prefix-map=${CMAKE_SOURCE_DIR}/src/=)
endif()
include_directories(src)
add_library(logging STATIC
src/logging/log.cc
)
target_include_directories(logging PRIVATE src)
add_executable(edmfd)
target_sources(edmfd PUBLIC
src/edmfd/blink.cc
src/edmfd/hid.cc
src/edmfd/i2c.cc
src/edmfd/main.cc
src/edmfd/mcp23017.cc
src/edmfd/screen.cc
src/edmfd/usb_descriptors.cc
src/edmfd/vendor.cc
)
pico_enable_stdio_uart(edmfd 1)
pico_enable_stdio_uart(edmfd 0)
pico_add_extra_outputs(edmfd)
target_link_libraries(edmfd PUBLIC
logging
pico_stdlib
pico_stdio_uart
pico_unique_id
hardware_i2c
tinyusb_device
tinyusb_board
)