Skip to content

Commit 5254202

Browse files
committed
minor update
1 parent 9858d45 commit 5254202

File tree

4 files changed

+83
-42
lines changed

4 files changed

+83
-42
lines changed

cmake/toolchain/arm_gcc.cmake

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,39 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
1616
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
1717

1818
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
19+
20+
# enable all possible warnings for building examples
21+
list(APPEND TOOLCHAIN_COMMON_FLAGS
22+
-fdata-sections
23+
-ffunction-sections
24+
-fsingle-precision-constant
25+
-fno-strict-aliasing
26+
)
27+
28+
set(TOOLCHAIN_WARNING_FLAGS
29+
-Wall
30+
-Wextra
31+
-Werror
32+
-Wfatal-errors
33+
-Wdouble-promotion
34+
-Wstrict-prototypes
35+
-Wstrict-overflow
36+
-Werror-implicit-function-declaration
37+
-Wfloat-equal
38+
-Wundef
39+
-Wshadow
40+
-Wwrite-strings
41+
-Wsign-compare
42+
-Wmissing-format-attribute
43+
-Wunreachable-code
44+
-Wcast-align
45+
-Wcast-function-type
46+
-Wcast-qual
47+
-Wnull-dereference
48+
-Wuninitialized
49+
-Wunused
50+
-Wreturn-type
51+
-Wredundant-decls
52+
)
53+
1954
include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)

cmake/toolchain/set_flags.cmake

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
1-
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
2-
3-
# join the toolchain flags into a single string
4-
list(JOIN TOOLCHAIN_COMMON_FLAGS " " TOOLCHAIN_COMMON_FLAGS)
5-
1+
include(CMakePrintHelpers)
62
foreach(LANG IN ITEMS C CXX ASM)
7-
set(CMAKE_${LANG}_FLAGS_INIT "${TOOLCHAIN_COMMON_FLAGS}")
8-
if (PICO_DEOPTIMIZED_DEBUG)
9-
set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
10-
else()
11-
set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-Og")
12-
endif()
13-
set(CMAKE_${LANG}_LINK_FLAGS "-Wl,--build-id=none")
3+
# join the toolchain flags into a single string
4+
list(APPEND TOOLCHAIN_${LANG}_FLAGS ${TOOLCHAIN_COMMON_FLAGS})
5+
list(JOIN TOOLCHAIN_${LANG}_FLAGS " " TOOLCHAIN_${LANG}_FLAGS)
6+
set(CMAKE_${LANG}_FLAGS_INIT "${TOOLCHAIN_${LANG}_FLAGS}")
147

15-
# try_compile is where the feature testing is done, and at that point,
16-
# pico_standard_link is not ready to be linked in to provide essential
17-
# functions like _exit. So pass -nostdlib so it doesn't link in an exit()
18-
# function at all.
19-
if(IS_IN_TRY_COMPILE)
20-
set(CMAKE_${LANG}_LINK_FLAGS "${CMAKE_${LANG}_LINK_FLAGS} -nostdlib")
21-
endif()
8+
#cmake_print_variables(CMAKE_${LANG}_FLAGS_INIT)
9+
10+
# optimization flags
11+
set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-Og")
2212
endforeach()
13+
14+
# try_compile is cmake test compiling its own example,
15+
# pass -nostdlib to skip stdlib linking
16+
get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
17+
if(IS_IN_TRY_COMPILE)
18+
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
19+
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
20+
endif()

hw/bsp/imxrt/family.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ function(family_configure_target TARGET)
1919

2020
include(${CMAKE_CURRENT_FUNCTION_LIST_DIR}/boards/${BOARD}/board.cmake)
2121

22-
cmake_print_variables(TOP CMAKE_CURRENT_FUNCTION_LIST_DIR)
23-
2422
target_compile_definitions(${TARGET} PUBLIC
2523
CFG_TUSB_MCU=OPT_MCU_MIMXRT
2624
__ARMVFP__=0
@@ -77,6 +75,8 @@ function(family_configure_target TARGET)
7775

7876
# include tinyusb cmake
7977
include(${TOP}/src/CMakeLists.txt)
78+
add_tinyusb(${TARGET})
79+
8080
endfunction()
8181

8282
function(family_add_freertos_config TARGET)

src/CMakeLists.txt

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
11
# cmake_minimum_required(VERSION 3.17)
22
# TODO make tinyusb as library that depends on 'tusb_config' interface that exposes the tusb_config.h file
33

4-
target_sources(${PROJECT} PUBLIC
5-
${CMAKE_CURRENT_LIST_DIR}/tusb.c
6-
${CMAKE_CURRENT_LIST_DIR}/common/tusb_fifo.c
7-
${CMAKE_CURRENT_LIST_DIR}/device/usbd.c
8-
${CMAKE_CURRENT_LIST_DIR}/device/usbd_control.c
9-
${CMAKE_CURRENT_LIST_DIR}/class/audio/audio_device.c
10-
${CMAKE_CURRENT_LIST_DIR}/class/cdc/cdc_device.c
11-
${CMAKE_CURRENT_LIST_DIR}/class/dfu/dfu_device.c
12-
${CMAKE_CURRENT_LIST_DIR}/class/dfu/dfu_rt_device.c
13-
${CMAKE_CURRENT_LIST_DIR}/class/hid/hid_device.c
14-
${CMAKE_CURRENT_LIST_DIR}/class/midi/midi_device.c
15-
${CMAKE_CURRENT_LIST_DIR}/class/msc/msc_device.c
16-
${CMAKE_CURRENT_LIST_DIR}/class/net/ecm_rndis_device.c
17-
${CMAKE_CURRENT_LIST_DIR}/class/net/ncm_device.c
18-
${CMAKE_CURRENT_LIST_DIR}/class/usbtmc/usbtmc_device.c
19-
${CMAKE_CURRENT_LIST_DIR}/class/vendor/vendor_device.c
20-
${CMAKE_CURRENT_LIST_DIR}/class/video/video_device.c
21-
)
4+
function(add_tinyusb TARGET)
5+
target_sources(${TARGET} PUBLIC
6+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tusb.c
7+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/common/tusb_fifo.c
8+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/device/usbd.c
9+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/device/usbd_control.c
10+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/audio/audio_device.c
11+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/cdc/cdc_device.c
12+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/dfu/dfu_device.c
13+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/dfu/dfu_rt_device.c
14+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/hid/hid_device.c
15+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/midi/midi_device.c
16+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/msc/msc_device.c
17+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/net/ecm_rndis_device.c
18+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/net/ncm_device.c
19+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/usbtmc/usbtmc_device.c
20+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/vendor/vendor_device.c
21+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/class/video/video_device.c
22+
)
2223

23-
target_include_directories(${PROJECT} PUBLIC
24-
${CMAKE_CURRENT_LIST_DIR}
25-
)
24+
target_include_directories(${TARGET} PUBLIC
25+
${CMAKE_CURRENT_FUNCTION_LIST_DIR}
26+
)
27+
28+
# enable all possible warnings
29+
target_compile_options(${TARGET} PUBLIC
30+
31+
)
32+
33+
endfunction()

0 commit comments

Comments
 (0)