Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Systemview over TCP #45

Merged
merged 119 commits into from
Jul 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
b8ce2af
sigrok can now be enabled/disabled completely
rgrr May 1, 2023
1852922
USB string descriptors now with enum
rgrr May 1, 2023
cc4f27b
USB descriptors for RNDIS, some cb functions are missing, will switch
rgrr May 1, 2023
2ac80d8
compiles but does not connect RNDIS interface
rgrr May 1, 2023
14ec894
playing around (without success)
rgrr May 1, 2023
929df4a
now lwip stuff in an extra module (still not working)
rgrr May 2, 2023
17e5068
wip: RNDIS under Windows works only if there is just a single RNDIS and
rgrr May 3, 2023
20054d2
bcdUSB must be 2.1 for CMSIS-DAPv2 (under Windows)
rgrr May 3, 2023
d93d3dd
this version has a working lwip, culprit was the MAC :-/
rgrr May 6, 2023
b1dbe22
clean up & correct MAC address
rgrr May 6, 2023
4d4b8d3
split and rename net_starter
rgrr May 6, 2023
b9f71d4
OPT_MSC
rgrr May 6, 2023
1ede084
cmake options for CMSIS-DAPv1/2
rgrr May 6, 2023
5a46213
USB target uart as an option
rgrr May 6, 2023
4322bac
new OPT_PROBE_DEBUG_OUT
rgrr May 6, 2023
daf0822
performance enhancement: "nmap -p- 192.168.10.1" factor >10 and no more
rgrr May 6, 2023
e836531
DNS as an option
rgrr May 6, 2023
fa664c1
rename OPT_NET_SYSVIEW -> OPT_NET
rgrr May 6, 2023
88e8e8a
options: OPT_NET_ECHO_SERVER and OPT_NET_IPERF_SERVER
rgrr May 7, 2023
e6bcc07
added static at some places
rgrr May 7, 2023
a79c5d4
OPT_NET_SYSVIEW_SERVER as an option (currently the echo server)
rgrr May 7, 2023
c9ac19f
server frame
rgrr May 7, 2023
9662d38
send characters to SysView target (untested)
rgrr May 7, 2023
ef14311
INCLUDE_RAM_UF2 -> OPT_MSC_RAM_UF2
rgrr May 7, 2023
a69fb44
INCLUDE_RAM_UF2 -> OPT_MSC_RAM_UF2 part II
rgrr May 7, 2023
a214ec8
sysview server works first time
rgrr May 7, 2023
f5cf635
correct handling of tcp_write() without additional thread
rgrr May 8, 2023
429a949
config: give tasks big stacks
rgrr May 9, 2023
a441858
print_task_stat() is now an extra task
rgrr May 9, 2023
821e548
minor
rgrr May 9, 2023
d882346
debugging around with lock-ups
rgrr May 9, 2023
9ab3ff9
assure that the up/down buffers exist on target (to target of sysview is
rgrr May 9, 2023
c527f8e
no threading in lwIP!
rgrr May 9, 2023
e6a8b95
clean up
rgrr May 9, 2023
677a890
cleaning up
rgrr May 9, 2023
e189c1f
again with dual core
rgrr May 9, 2023
e12c42e
reworked downstream a little bit, but SysView to target disabled
rgrr May 9, 2023
5752b12
lot of minor(?) changes
rgrr May 10, 2023
80744a4
lot of minor things
rgrr May 12, 2023
88c9923
was für ein nerviger Scheiß mit net
rgrr May 12, 2023
392f1a9
urrgsss, back again at SysView CDC
rgrr May 12, 2023
c000118
wip
rgrr May 12, 2023
1bc779a
fiddling around (still in stutter mode)
rgrr May 12, 2023
8a4e7a0
SystemView (over net) can now send again characters to target
rgrr May 14, 2023
f591b78
net_sysview_send() / cdc_uart_write() can now tell rtt_console stream
rgrr May 15, 2023
21559a7
features etc in get_config
rgrr May 16, 2023
7a31528
configuration now also in 0_README.TXT of MSC drive
rgrr May 16, 2023
6b7d10c
net protocol can now be specified via cmake
rgrr May 16, 2023
3cdb1b7
MAJOR core affinity reworked (plus bug fixes)
rgrr May 18, 2023
956af3a
this is really a breakthrough: TCP output has to be triggered
rgrr May 18, 2023
e5fafec
configUSE_TRACE_FACILITY must be enabled
rgrr May 18, 2023
2b2c4f3
minor changes
rgrr Jun 6, 2023
8b2c69d
lwip-notes updated
rgrr Jun 26, 2023
22be079
now ncm_device is always called from TinyUSB context (but this does
rgrr Jun 27, 2023
48687bc
disable other USB classes
rgrr Jun 29, 2023
4a4dea7
update doc
rgrr Jun 29, 2023
b8b35fb
some enhancements(?)
rgrr Jun 29, 2023
0a84045
comments & renaming
rgrr Jun 29, 2023
6acd73a
own version of ncm_device
rgrr Jun 29, 2023
349b816
reformatted
rgrr Jun 29, 2023
34affa5
current version of ncm_device with a lot of fixes(?)
rgrr Jun 29, 2023
5fe76f9
.wNtbOutMaxDatagrams = 1 : works with iperf but not with Systemview
rgrr Jun 29, 2023
18256d6
config
rgrr Jun 29, 2023
8851751
minor other changes
rgrr Jun 29, 2023
bdb7e63
mini
rgrr Jun 29, 2023
183681c
trying to understand buffering
rgrr Jun 29, 2023
cbd6e46
remove old code
rgrr Jun 29, 2023
712cea1
renamed
rgrr Jun 29, 2023
fef0a1d
this works with "iperf -c 192.168.14.1 -e -i 1 -l 1400 -M 1400"
rgrr Jun 29, 2023
7bf8b16
minor
rgrr Jun 29, 2023
22f4717
still works
rgrr Jun 29, 2023
b90c249
more checking
rgrr Jun 29, 2023
e838a00
rename
rgrr Jun 29, 2023
a5dbb73
best version til now, BUT
rgrr Jun 29, 2023
51cc65a
works better without debugoutput, but still not as perfect as ECM
rgrr Jun 29, 2023
91507af
removed some temp variables
rgrr Jun 29, 2023
6e02af6
minor renaming etc
rgrr Jun 29, 2023
8fc7031
renaming rcv buffers
rgrr Jun 29, 2023
76c4f20
removed rcv_usb_datagram
rgrr Jun 29, 2023
a67de1f
- moved some common things into ncm.h
rgrr Jun 29, 2023
4e5e8c1
ncm_device_simple uses ncm_device as base
rgrr Jun 29, 2023
3b05f0f
this simple version can already communicate
rgrr Jun 29, 2023
ab50479
the ZLP is important!
rgrr Jun 29, 2023
f0a3051
switch off debugging messages: now works even better
rgrr Jun 29, 2023
eec2a9a
handle_incoming_datagram() simplyfied
rgrr Jun 29, 2023
9130590
it works with multicore as well (wasn't sure before)
rgrr Jun 29, 2023
9f065e5
latest working versions
rgrr Jun 29, 2023
4e8deed
more frame checking
rgrr Jun 30, 2023
08755c9
minor simplifications
rgrr Jun 30, 2023
b6661f8
ncm_device plus ZLP works better
rgrr Jul 1, 2023
b6cbfda
remove original ncm_device.c from build list
rgrr Jul 1, 2023
fe1a9b3
input/output buffer
rgrr Jul 1, 2023
230eebb
now better
rgrr Jul 1, 2023
28f3256
good version
rgrr Jul 1, 2023
6f3fdaa
mini build fix
rgrr Jul 6, 2023
a18f9cb
minor
rgrr Jul 13, 2023
cf0f589
Issue #57 is now understood
rgrr Jul 13, 2023
698a0a1
removed old code
rgrr Jul 13, 2023
588b8db
updated udev rules for sysview
rgrr Jul 13, 2023
52182d9
lot of minor fine-tuning (now again compilable)
rgrr Jul 13, 2023
68b7fd8
removed some debug output
rgrr Jul 13, 2023
ed13af0
also show uptime
rgrr Jul 13, 2023
60a97e9
rtt_from_target_reset() on SysView connect
rgrr Jul 13, 2023
0a13784
less debugging
rgrr Jul 13, 2023
817da0e
cosmetic changes
rgrr Jul 13, 2023
0795205
more cosmetic changes
rgrr Jul 13, 2023
c3862bf
NCM configuration for Win10/11
rgrr Jul 13, 2023
8ab8605
mini
rgrr Jul 13, 2023
fbe6222
reduce stream size again
rgrr Jul 14, 2023
1028017
new OPT_MCU_OVERCLOCK_MHZ
rgrr Jul 14, 2023
85e53a7
reorder priorities
rgrr Jul 14, 2023
256b7d7
lwIP -> TineUSB cleanup
rgrr Jul 14, 2023
c754db7
cleanup TinyUSB -> lwIP direction
rgrr Jul 14, 2023
d58f71f
minor
rgrr Jul 14, 2023
d588ade
performance optimization
rgrr Jul 14, 2023
b987f0c
raised prio of lwIP
rgrr Jul 14, 2023
6918f36
docu
rgrr Jul 14, 2023
6914ff1
Merge pull request #59 from rgrr/feature/systemview-ncm-debugging
rgrr Jul 14, 2023
4da34c2
minor things
rgrr Jul 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
_build
images
232 changes: 198 additions & 34 deletions CMakeLists.txt
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,15 +1,55 @@
# CMakeLists.txt for YaPicoprobe
#
# Parameters
# ----------
# - PICO_BOARD pico|pico_w|pico_debug_probe, default "pico"
# - PICOPROBE_VERSION_MAJOR major version number
# - PICOPROBE_VERSION_MINOR minor version number
# - lot more options below
#
# - GIT_HASH short git hash
# - PROJECT project name for cmake
#
cmake_minimum_required(VERSION 3.12)

#
# board definition: pico or pico_w, default is pico
# Compile options
#
if(PICO_BOARD STREQUAL "")
set(PICO_BOARD pico)
endif()
set(PICO_STDIO_UART 0)
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(DEFAULT_OPT_PROBE_DEBUG_OUT 1)
else()
set(DEFAULT_OPT_PROBE_DEBUG_OUT 1)
endif()

option(OPT_CMSIS_DAPV1 "Enable CMSIS-DAPv1" 1)
option(OPT_CMSIS_DAPV2 "Enable CMSIS-DAPv2" 1)
option(OPT_TARGET_UART "Enable CDC for target UART I/O" 1)
option(OPT_PROBE_DEBUG_OUT "Enable CDC for probe debug output" ${DEFAULT_OPT_PROBE_DEBUG_OUT})
option(OPT_SIGROK "Enable sigrok" 0)
option(OPT_MSC "Enable Mass Storage Device" 1)
option(OPT_MSC_RAM_UF2 "Enable file 'RAM.UF2' on Mass Storage" 1)
set(OPT_MCU_OVERCLOCK_MHZ "240" CACHE STRING "Set processor frequency. Should be a multiple of 24MHz, disable with empty string (=120MHz)")
set(OPT_NET "NCM" CACHE STRING "Enable lwIP on the Pico via NCM/ECM/RNDIS, disable NET with empty string")
set(OPT_NET_192_168 14 CACHE STRING "Set the subnet of 192.168.x")
option(OPT_NET_ECHO_SERVER "Enable echo server for testing" 1)
option(OPT_NET_IPERF_SERVER "Enable iperf server for tuning" 1)
option(OPT_NET_SYSVIEW_SERVER "Enable SysView over TCPIP" 1)
option(OPT_CDC_SYSVIEW "Enable SysView over CDC" 0)

# extra
option(OPT_SPECIAL_CLK_FOR_PIO "Ignore clock frequency request of 1MHz (this is for PlatformIO tuning)" 0)


#
# SDK options
#
# below order is important
set(PICO_STDIO_UART 0) # disable stdio UART, actually this goes to a CDC

#
# below (and above) order is important
#
include(pico_sdk_import.cmake)

Expand All @@ -19,8 +59,30 @@ include(FreeRTOS_Kernel_import.cmake)
set(PICO_BOARD_HEADER_DIRS ${CMAKE_CURRENT_LIST_DIR}/include/boards)
pico_sdk_init()

# message("--------- " ${PICO_LWIP_PATH})
# message("--------- " ${PICO_LWIP_CONTRIB_PATH})
# message("--------- " ${PICO_TINYUSB_PATH})

#
# set some things inherited from Makefile / command line
#
if(PICOPROBE_VERSION_MAJOR)
add_definitions(-DPICOPROBE_VERSION_MAJOR=${PICOPROBE_VERSION_MAJOR})
else()
set(PICOPROBE_VERSION_MAJOR 0)
endif()
if(PICOPROBE_VERSION_MINOR)
add_definitions(-DPICOPROBE_VERSION_MINOR=${PICOPROBE_VERSION_MINOR})
else()
set(PICOPROBE_VERSION_MINOR 0)
endif()

project(${PROJECT})
project(${PROJECT}
VERSION ${PICOPROBE_VERSION_MAJOR}.${PICOPROBE_VERSION_MINOR}
DESCRIPTION "YAPicoprobe CMSIS-DAP"
HOMEPAGE_URL https://github.com/rgrr/yapicoprobe
LANGUAGES C CXX ASM
)

string(TOUPPER ${PICO_BOARD} PICO_BOARD_UPPER)

Expand All @@ -32,31 +94,21 @@ add_definitions(
-DPICO_HEAP_SIZE=0x0
-DPICO_STACK_SIZE=0x400
-DTARGET_BOARD_${PICO_BOARD_UPPER}
-DOPT_SPECIAL_CLK_FOR_PIO=${OPT_SPECIAL_CLK_FOR_PIO}
)

#
# set some things inherited from Makefile / command line
#
if (PICOPROBE_VERSION_MAJOR)
add_definitions(-DPICOPROBE_VERSION_MAJOR=${PICOPROBE_VERSION_MAJOR})
else()
set(PICOPROBE_VERSION_MAJOR 0)
endif()
if (PICOPROBE_VERSION_MINOR)
add_definitions(-DPICOPROBE_VERSION_MINOR=${PICOPROBE_VERSION_MINOR})
else()
set(PICOPROBE_VERSION_MINOR 0)
if(NOT OPT_MCU_OVERCLOCK_MHZ STREQUAL "")
add_compile_definitions(OPT_MCU_OVERCLOCK_MHZ=${OPT_MCU_OVERCLOCK_MHZ})
endif()

# set version string to "x.yy"
# there are perhaps smarter ways...
if (PICOPROBE_VERSION_MINOR LESS "10")
if(PICOPROBE_VERSION_MINOR LESS "10")
add_definitions(-DPICOPROBE_VERSION_STRING="${PICOPROBE_VERSION_MAJOR}.0${PICOPROBE_VERSION_MINOR}")
else()
add_definitions(-DPICOPROBE_VERSION_STRING="${PICOPROBE_VERSION_MAJOR}.${PICOPROBE_VERSION_MINOR}")
endif()

if (GIT_HASH)
if(GIT_HASH)
add_definitions(-DGIT_HASH="${GIT_HASH}")
endif()

Expand All @@ -65,9 +117,8 @@ endif()


add_executable(${PROJECT}
src/cdc_uart.c
src/dap_util.c
src/get_serial.c
src/get_config.c
src/led.c
src/main.c
src/misc_utils.c
Expand All @@ -78,12 +129,6 @@ add_executable(${PROJECT}
src/usb_descriptors.c
)

if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
target_sources(${PROJECT} PRIVATE
src/cdc_debug.c
)
endif()

target_sources(${PROJECT} PRIVATE
CMSIS_5/CMSIS/DAP/Firmware/Source/DAP.c
CMSIS_5/CMSIS/DAP/Firmware/Source/JTAG_DP.c
Expand All @@ -102,8 +147,6 @@ target_include_directories(${PROJECT} PRIVATE
# this is for MSC/DAPLink operation
#
target_sources(${PROJECT} PRIVATE
src/msc/msc_drive.c
src/msc/msc_utils.c
src/daplink/daplink/util.c
src/daplink/daplink/drag-n-drop/flash_manager.c
src/daplink/daplink/interface/swd_host.c
Expand Down Expand Up @@ -144,22 +187,143 @@ add_compile_definitions(DAPLINK_HIC_ID=0x08154711)
# required to get required DAPLink functions
add_compile_definitions(DRAG_N_DROP_SUPPORT=1)

#--------------------------------------------------------------------------------------------------
#
# Enable/disable several USB endpoints
#
if(OPT_TARGET_UART)
add_compile_definitions(OPT_TARGET_UART=1)
target_sources(${PROJECT} PRIVATE
src/cdc/cdc_uart.c
)
endif()
if(OPT_PROBE_DEBUG_OUT)
add_compile_definitions(OPT_PROBE_DEBUG_OUT=1)
target_sources(${PROJECT} PRIVATE
src/cdc/cdc_debug.c
)
endif()
if(OPT_CMSIS_DAPV1)
add_compile_definitions(OPT_CMSIS_DAPV1=1)
endif()
if(OPT_CMSIS_DAPV2)
add_compile_definitions(OPT_CMSIS_DAPV2=1)
endif()
if(OPT_CDC_SYSVIEW)
add_compile_definitions(OPT_CDC_SYSVIEW=1)
target_sources(${PROJECT} PRIVATE
src/cdc/cdc_sysview.c
)
endif()

#--------------------------------------------------------------------------------------------------
#
# this is for SIGROK operation (taken from https://github.com/pico-coder/sigrok-pico)
#
target_sources(${PROJECT} PRIVATE
if(OPT_SIGROK)
add_compile_definitions(OPT_SIGROK=1)

target_sources(${PROJECT} PRIVATE
src/pico-sigrok/cdc_sigrok.c
src/pico-sigrok/sigrok.c
src/pico-sigrok/sigrok_int.c
)
)

target_link_libraries(${PROJECT} PRIVATE
target_link_libraries(${PROJECT} PRIVATE
hardware_adc
hardware_dma
)
)

pico_generate_pio_header(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/src/pico-sigrok/sigrok.pio)
endif()

#--------------------------------------------------------------------------------------------------
#
# this is for SystemView operation (requires RTT)
#
if(NOT OPT_NET STREQUAL "")
if(OPT_NET STREQUAL "ECM")
add_compile_definitions(OPT_NET_PROTO_ECM=1)
elseif(OPT_NET STREQUAL "NCM")
add_compile_definitions(OPT_NET_PROTO_NCM=1)
elseif(OPT_NET STREQUAL "RNDIS")
add_compile_definitions(OPT_NET_PROTO_RNDIS=1)
else()
message(FATAL_ERROR "OPT_NET must be either empty or one of ECM/NCM/RNDIS but is '${OPT_NET}'")
endif()

add_compile_definitions(OPT_NET=1)
add_compile_definitions(OPT_NET_192_168=${OPT_NET_192_168})

target_sources(${PROJECT} PRIVATE
src/net/net_glue.c

${PICO_TINYUSB_PATH}/lib/networking/dhserver.c
)

if(OPT_NET STREQUAL "NCM")
# NCM: use own copy of ncm_device, original one is removed from target_sources() with a trick
message("--------- " ${PICO_TINYUSB_PATH})
target_sources(${PROJECT} PRIVATE
src/net/tinyusb/ncm_device_simple.c
)
set_source_files_properties(
${PICO_TINYUSB_PATH}/src/class/net/ncm_device.c
PROPERTIES HEADER_FILE_ONLY ON
)
else()
# !NCM
target_sources(${PROJECT} PRIVATE
${PICO_TINYUSB_PATH}/lib/networking/rndis_reports.c
)
endif()

target_include_directories(${PROJECT} PRIVATE
${PICO_TINYUSB_PATH}/lib/networking
)

target_link_libraries(${PROJECT} PRIVATE
pico_lwip_freertos
)

pico_generate_pio_header(${PROJECT} ${CMAKE_CURRENT_LIST_DIR}/src/pico-sigrok/sigrok.pio)
if(OPT_NET_SYSVIEW_SERVER)
add_compile_definitions(OPT_NET_SYSVIEW_SERVER=1)
target_sources(${PROJECT} PRIVATE
src/net/net_sysview.c
)
endif()

if(OPT_NET_ECHO_SERVER)
add_compile_definitions(OPT_NET_ECHO_SERVER=1)
target_sources(${PROJECT} PRIVATE
src/net/net_echo.c
)
endif()

if(OPT_NET_IPERF_SERVER)
add_compile_definitions(OPT_NET_IPERF_SERVER=1)
target_sources(${PROJECT} PRIVATE
${PICO_LWIP_PATH}/src/apps/lwiperf/lwiperf.c
)
endif()
endif()

#--------------------------------------------------------------------------------------------------
#
# this is for MSC operation
#
if(OPT_MSC)
add_compile_definitions(OPT_MSC=1)

target_sources(${PROJECT} PRIVATE
src/msc/msc_drive.c
src/msc/msc_utils.c
)

if(OPT_MSC_RAM_UF2)
add_compile_definitions(OPT_MSC_RAM_UF2=1)
endif()
endif()

#--------------------------------------------------------------------------------------------------

Expand Down
17 changes: 11 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
#

VERSION_MAJOR := 1
VERSION_MINOR := 14
VERSION_MINOR := 15

BUILD_DIR := build
BUILD_DIR := _build
PROJECT := picoprobe


Expand Down Expand Up @@ -45,7 +45,7 @@ details: all

.PHONY: cmake-create-debug
cmake-create-debug:
cmake -B $(BUILD_DIR) -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DPICO_BOARD=$(PICO_BOARD) $(CMAKE_FLAGS)
cmake -B $(BUILD_DIR) -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DPICO_BOARD=$(PICO_BOARD) $(if $(OPT_SIGROK),-DOPT_SIGROK=$(OPT_SIGROK)) $(CMAKE_FLAGS)
# don't know if this is required
@cd $(BUILD_DIR) && sed -i 's/arm-none-eabi-gcc/gcc/' compile_commands.json

Expand Down Expand Up @@ -73,16 +73,16 @@ flash: all
.PHONY: create-images
create-images:
$(MAKE) clean-build
$(MAKE) cmake-create-debug PICO_BOARD=pico
$(MAKE) cmake-create-release PICO_BOARD=pico OPT_SIGROK=0
$(MAKE) all
mkdir -p images
cp $(BUILD_DIR)/$(PROJECT).uf2 images/yapicoprobe-$(shell printf "%02d%02d" $(VERSION_MAJOR) $(VERSION_MINOR))-pico-$(GIT_HASH).uf2
#
$(MAKE) cmake-create-debug PICO_BOARD=pico_w
$(MAKE) cmake-create-release PICO_BOARD=pico_w OPT_SIGROK=0
$(MAKE) all
cp $(BUILD_DIR)/$(PROJECT).uf2 images/yapicoprobe-$(shell printf "%02d%02d" $(VERSION_MAJOR) $(VERSION_MINOR))-picow-$(GIT_HASH).uf2
#
$(MAKE) cmake-create-debug PICO_BOARD=pico_debug_probe
$(MAKE) cmake-create-release PICO_BOARD=pico_debug_probe OPT_SIGROK=0
$(MAKE) all
cp $(BUILD_DIR)/$(PROJECT).uf2 images/yapicoprobe-$(shell printf "%02d%02d" $(VERSION_MAJOR) $(VERSION_MINOR))-picodebugprobe-$(GIT_HASH).uf2

Expand All @@ -91,3 +91,8 @@ create-images:
check-clang:
# clang-tidy has its limit if another target is used...
@cd $(BUILD_DIR) && run-clang-tidy -checks='-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling'

.PHONY: show-options
show-options:
@cd $(BUILD_DIR) && cmake -LH . | sed -n -e '/OPT_/{x;1!p;g;$!N;p;D;}' -e h

Loading