@@ -13,24 +13,39 @@ endif()
13
13
14
14
15
15
set (SWIFT_TARGET "armv6m-none-none-eabi" ) # default for rp2040
16
+ list (APPEND CLANG_ARCH_ABI_FLAGS "-Xcc" )
16
17
17
18
if (PICO_PLATFORM STREQUAL "rp2350-arm-s" )
18
19
message (STATUS "PICO_PLATFORM is set to rp2350-arm-s, using armv7em" )
19
20
set (SWIFT_TARGET "armv7em-none-none-eabi" )
21
+ list (APPEND CLANG_ARCH_ABI_FLAGS "-mfloat-abi=soft" )
22
+ elseif (PICO_PLATFORM STREQUAL "rp2040" )
23
+ message (STATUS "PICO_PLATFORM is set to RP2040, using armv6m" )
24
+ list (APPEND CLANG_ARCH_ABI_FLAGS "-mfloat-abi=soft" )
20
25
elseif (PICO_PLATFORM STREQUAL "rp2350-riscv" )
21
- # Untested, gives PICO-SDK errors when building
22
- message (WARNING "PICO_PLATFORM is set to rp2350-riscv, using riscv32 (untested). It is recommended to use rp2350-arm-s." )
26
+ message (STATUS "PICO_PLATFORM is set to rp2350-riscv, using riscv32." )
23
27
set (SWIFT_TARGET "riscv32-none-none-eabi" )
28
+ list (APPEND CLANG_ARCH_ABI_FLAGS "-march=rv32imac_zicsr_zifencei_zba_zbb_zbs_zbkb" "-Xcc" "-mabi=ilp32" )
24
29
endif ()
25
30
31
+ gather_vars(COMPILE_DEFINITIONS INTERFACE_COMPILE_DEFINITIONS _touched_cd swift-rp2350-lvgl-st7789)
32
+ list (REMOVE_DUPLICATES COMPILE_DEFINITIONS )
33
+ list (PREPEND COMPILE_DEFINITIONS "" ) # -Xcc -D
34
+ string (REPLACE "$<TARGET_PROPERTY:PICO_TARGET_BINARY_TYPE>" "$<TARGET_PROPERTY:swift-rp2350-lvgl-st7789,PICO_TARGET_BINARY_TYPE>" COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS} " )
35
+ string (REPLACE ";" " -Xcc -D" COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS} " )
36
+
37
+ file (GENERATE OUTPUT ${CMAKE_BINARY_DIR} /swiftc_flags.txt CONTENT "${COMPILE_DEFINITIONS} " )
38
+
26
39
add_executable (swift-rp2350-lvgl-st7789 hstx_spi_lcd.c)
27
40
add_custom_command (
28
41
OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /_swiftcode.o
29
42
COMMAND
30
43
${SWIFTC}
31
- -target ${SWIFT_TARGET} -Xcc -mfloat-abi=soft -Xcc -fshort-enums
44
+ -target ${SWIFT_TARGET} -Xcc -fshort-enums
45
+ @${CMAKE_BINARY_DIR} /swiftc_flags.txt
46
+ ${CLANG_ARCH_ABI_FLAGS}
32
47
-Xfrontend -function-sections -enable-experimental-feature Embedded -wmo -parse-as-library
33
- $$\( echo '$<TARGET_PROPERTY:swift-rp2350-lvgl-st7789 ,INCLUDE_DIRECTORIES >' | tr '\;' '\\n' | sed -e 's/\\\(.*\\\)/-Xcc -I\\1/g' \)
48
+ $$\( echo '$<TARGET_PROPERTY:swift-blinky ,INCLUDE_DIRECTORIES >' | tr '\;' '\\n' | sed -e 's/\\\(.*\\\)/-Xcc -I\\1/g' \)
34
49
$$\( echo '${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} ' | tr ' ' '\\n' | sed -e 's/\\\(.*\\\)/-Xcc -I\\1/g' \)
35
50
-import-bridging-header ${CMAKE_CURRENT_LIST_DIR} /BridgingHeader.h
36
51
${CMAKE_CURRENT_LIST_DIR} /Main.swift
0 commit comments