Minor reorg of cmakelists

This commit is contained in:
Allen Hill
2026-05-15 21:00:46 +00:00
parent 263b7c1753
commit 9baa57d6d9
+24 -27
View File
@@ -3,7 +3,7 @@ include(CMakeDependentOption)
set(WITH_MCU OFF) # Disable target name modification setting from toolchain set(WITH_MCU OFF) # Disable target name modification setting from toolchain
set(AVR_MCU "attiny3216") set(AVR_MCU "attiny3216")
set(AVR_UPLOADTOOL_PORT /dev/ttyUSB1) set(AVR_UPLOADTOOL_PORT /dev/ttyUSB0)
set(AVR_PROGRAMMER serialupdi) set(AVR_PROGRAMMER serialupdi)
set(AVR_UPLOADTOOL_BAUDRATE 230400) set(AVR_UPLOADTOOL_BAUDRATE 230400)
@@ -22,6 +22,9 @@ set(FREQSEL 16000000L)
set(AVR_UPLOADTOOL_BASE_OPTIONS ${AVR_UPLOADTOOL_BASE_OPTIONS} -U osccfg:w:0x1:m) set(AVR_UPLOADTOOL_BASE_OPTIONS ${AVR_UPLOADTOOL_BASE_OPTIONS} -U osccfg:w:0x1:m)
endif() endif()
# Set startup time to 8 ms (0x4)
set(AVR_UPLOADTOOL_BASE_OPTIONS ${AVR_UPLOADTOOL_BASE_OPTIONS} -U syscfg1:w:0x4:m)
option(CLK_PRESCALE "Enable the main clock prescaler") option(CLK_PRESCALE "Enable the main clock prescaler")
cmake_dependent_option(CLK_PRESCALE_DIV "Prescaler divisor" CLKCTRL_PDIV_2X_gc STRING "CLK_PRESCALE") cmake_dependent_option(CLK_PRESCALE_DIV "Prescaler divisor" CLKCTRL_PDIV_2X_gc STRING "CLK_PRESCALE")
if(DEFINED CACHE{CLK_PRESCALE_DIV}) if(DEFINED CACHE{CLK_PRESCALE_DIV})
@@ -55,12 +58,25 @@ set_property(CACHE USART_RXMODE PROPERTY STRINGS
USART_RXMODE_NORMAL_gc USART_RXMODE_NORMAL_gc
) )
set(CMAKE_C_STANDARD 23)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_FLAGS_RELEASE "-Wall -Wswitch-enum -Werror -Os")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wswitch-enum -Werror -O2 -save-temps -g -gdwarf-3 -gstrict-dwarf")
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wswitch-enum -Werror -fanalyzer -O0 -save-temps -g -gdwarf-3 -gstrict-dwarf")
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "8.3") if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "13")
message(FATAL_ERROR "Insufficient AVR-GCC version; Support for ATtiny3216 was added in GCC v8") message(FATAL_ERROR "This project requires at least GCC v13")
endif() endif()
endif() endif()
add_avr_executable(mockingboard
src/sniffer.c
src/com232.c
src/queue.c
src/avclandrv.c)
# Handle libc versioning # Handle libc versioning
try_compile(LIBC_VERSION_TEST try_compile(LIBC_VERSION_TEST
SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libc-version-test.cpp" SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libc-version-test.cpp"
@@ -86,33 +102,14 @@ if(NOT LIBC_VERSION_TEST)
if(NOT LIBC_VERSION_TEST) if(NOT LIBC_VERSION_TEST)
message(FATAL_ERROR "Insufficient AVR-LIBC/Microchip pack for chosen MCU '${AVR_MCU}'") message(FATAL_ERROR "Insufficient AVR-LIBC/Microchip pack for chosen MCU '${AVR_MCU}'")
else() else()
include_directories(SYSTEM "${attiny_atpack_SOURCE_DIR}/include") target_include_directories(mockingboard SYSTEM
add_compile_options( PUBLIC "${attiny_atpack_SOURCE_DIR}/include")
-B "${attiny_atpack_SOURCE_DIR}/gcc/dev/${AVR_MCU}"
)
endif()
endif()
set(CMAKE_C_STANDARD 17)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_C_FLAGS_RELEASE "-Wall -Wswitch-enum -Werror -Os")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wswitch-enum -Werror -O2 -save-temps -g -gdwarf-3 -gstrict-dwarf")
set(CMAKE_C_FLAGS_DEBUG "-Wall -Wswitch-enum -Werror -O0 -save-temps -g -gdwarf-3 -gstrict-dwarf")
# Set startup time to 8 ms (0x4)
set(AVR_UPLOADTOOL_BASE_OPTIONS ${AVR_UPLOADTOOL_BASE_OPTIONS} -U syscfg1:w:0x4:m)
add_avr_executable(mockingboard
src/sniffer.c
src/com232.c
src/queue.c
src/avclandrv.c)
target_link_options(mockingboard PUBLIC target_link_options(mockingboard PUBLIC
-B "${attiny_atpack_SOURCE_DIR}/gcc/dev/${AVR_MCU}" -B "${attiny_atpack_SOURCE_DIR}/gcc/dev/${AVR_MCU}"
) )
endif()
endif()
target_compile_definitions(mockingboard PRIVATE target_compile_definitions(mockingboard PRIVATE
FREQSEL=${FREQSEL} FREQSEL=${FREQSEL}
CLK_PRESCALE=$<IF:$<BOOL:${CLK_PRESCALE}>,0x01,0x00> CLK_PRESCALE=$<IF:$<BOOL:${CLK_PRESCALE}>,0x01,0x00>