headphones/firmware/code/CMakeLists.txt

87 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
include(pico_extras_import.cmake)
project(ploopy_headphones_project C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
pico_sdk_init()
add_executable(ploopy_headphones
run.c
ringbuf.c
i2s.c
fix16.c
bqf.c
configuration_manager.c
)
target_include_directories(ploopy_headphones PRIVATE
${CMAKE_SOURCE_DIR}
${CMAKE_BINARY_DIR}/generated
)
pico_generate_pio_header(ploopy_headphones ${CMAKE_CURRENT_LIST_DIR}/i2s.pio)
# in case Git is not available, we default to "unknown"
set(GIT_HASH "unknown")
# find Git and if available set GIT_HASH variable
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --always --dirty
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET
)
endif()
message(STATUS "Git hash is ${GIT_HASH}")
# generate file version.hpp based on version.hpp.in
configure_file(
${CMAKE_CURRENT_LIST_DIR}/version.h.in
${CMAKE_BINARY_DIR}/generated/version.h
@ONLY
)
list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/version.cc" version.hh)
target_compile_definitions(ploopy_headphones PRIVATE
# ours are zero based, so say so
PICO_USBDEV_USE_ZERO_BASED_INTERFACES=1
# need large descriptor
PICO_USBDEV_MAX_DESCRIPTOR_SIZE=256
PICO_USBDEV_ISOCHRONOUS_BUFFER_STRIDE_TYPE=1
# make the git hash available to the firmware
GIT_HASH="${GIT_HASH}"
PICO_XOSC_STARTUP_DELAY_MULTIPLIER=64
)
pico_enable_stdio_usb(ploopy_headphones 0)
pico_enable_stdio_uart(ploopy_headphones 0)
pico_add_extra_outputs(ploopy_headphones)
target_link_libraries(ploopy_headphones
hardware_pio
hardware_clocks
hardware_dma
hardware_irq
hardware_pwm
hardware_i2c
hardware_vreg
hardware_sync
pico_stdlib
pico_multicore
pico_unique_id
usb_device
)