cmake_minimum_required(VERSION 3.13) add_library(cs_midi STATIC AH/Debug/Debug.cpp AH/Error/Exit.cpp AH/PrintStream/PrintStream.cpp AH/STL/vector.cpp AH/Hardware/ExtendedInputOutput/ExtendedInputOutput.cpp AH/Hardware/ExtendedInputOutput/ExtendedIOElement.cpp AH/Hardware/Button.cpp AH/Hardware/IncrementButton.cpp AH/Hardware/IncrementDecrementButtons.cpp Submodules/Encoder/AHEncoder.cpp Control_Surface/Control_Surface_Class.cpp MIDI_Senders/RelativeCCSender.cpp Def/Cable.cpp Def/Channel.cpp Def/MIDIAddress.cpp MIDI_Parsers/SerialMIDI_Parser.cpp MIDI_Parsers/SysExBuffer.cpp MIDI_Parsers/MIDI_MessageTypes.cpp MIDI_Interfaces/MIDI_Interface.cpp MIDI_Interfaces/MIDI_Pipes.cpp MIDI_Interfaces/BLEMIDI/BLEMIDIPacketBuilder.cpp MIDI_Interfaces/BLEMIDI/BTstack/gatt_midi.cpp MIDI_Interfaces/BLEMIDI/BTstack/advertising.cpp ) target_include_directories(cs_midi PUBLIC ${CMAKE_CURRENT_LIST_DIR} ) target_compile_definitions(cs_midi PUBLIC MIDI_NUM_CABLES=1 ) # pico_stdlib: needed by the library for millis/micros/gpio # pico_btstack_ble: BTstack BLE headers + objects (linked PRIVATE to avoid # propagating the full btstack source build to consumers) # hardware_sync: save_and_disable_interrupts used by BTstackBackgroundBackend target_link_libraries(cs_midi PUBLIC pico_stdlib hardware_sync hardware_adc PRIVATE pico_btstack_ble pico_btstack_cyw43 pico_cyw43_arch_lwip_threadsafe_background ) target_compile_features(cs_midi PUBLIC cxx_std_17)