From ff6eb85731d36296241b3f28dd99619441b0777e Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Mon, 20 Jan 2025 15:14:27 +0000 Subject: [PATCH 1/3] Bump min CMake version to 3.12 and use FindPython This also allows up to set the max version to current as we're not using any removed features. --- 32blit-config.cmake | 8 ++++---- 32blit-stm32/firmware/CMakeLists.txt | 2 +- CMakeLists.txt | 2 +- launcher/CMakeLists.txt | 2 +- utilities/CMakeLists.txt | 2 +- utilities/hardware-test/CMakeLists.txt | 2 +- utilities/picosystem-hardware-test/CMakeLists.txt | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/32blit-config.cmake b/32blit-config.cmake index 18bfb9402..b9595f8fd 100644 --- a/32blit-config.cmake +++ b/32blit-config.cmake @@ -5,10 +5,10 @@ if (NOT DEFINED BLIT_ONCE) set(CMAKE_CXX_EXTENSIONS OFF) set(BLIT_MINIMUM_TOOLS_VERSION "0.7.3") - find_package(PythonInterp 3.6 REQUIRED) + find_package(Python 3.6 REQUIRED) # make sure that the tools are installed - execute_process(COMMAND ${PYTHON_EXECUTABLE} -m ttblit version RESULT_VARIABLE VERSION_STATUS OUTPUT_VARIABLE TOOLS_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${Python_EXECUTABLE} -m ttblit version RESULT_VARIABLE VERSION_STATUS OUTPUT_VARIABLE TOOLS_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) if(${VERSION_STATUS}) # check for the executable if the module isn't found @@ -18,11 +18,11 @@ if (NOT DEFINED BLIT_ONCE) execute_process(COMMAND ${32BLIT_TOOLS_EXECUTABLE} version RESULT_VARIABLE VERSION_STATUS OUTPUT_VARIABLE TOOLS_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) endif() else() - set(32BLIT_TOOLS_EXECUTABLE ${PYTHON_EXECUTABLE} -m ttblit) + set(32BLIT_TOOLS_EXECUTABLE ${Python_EXECUTABLE} -m ttblit) endif() # get just the python command to output to the user - get_filename_component(PYTHON_USER_EXECUTABLE "${PYTHON_EXECUTABLE}" NAME) + get_filename_component(PYTHON_USER_EXECUTABLE "${Python_EXECUTABLE}" NAME) if(${VERSION_STATUS}) message(FATAL_ERROR "32Blit tools not found!\nInstall with: ${PYTHON_USER_EXECUTABLE} -m pip install 32blit\n") diff --git a/32blit-stm32/firmware/CMakeLists.txt b/32blit-stm32/firmware/CMakeLists.txt index 4118f2e2b..a95fc9c3b 100644 --- a/32blit-stm32/firmware/CMakeLists.txt +++ b/32blit-stm32/firmware/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) project (firmware) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/CMakeLists.txt b/CMakeLists.txt index bfbda8aab..cccdaea14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) # has to be before project include(32blit-pico/sdk_import.cmake) diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 592509a73..0e8746138 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) project (launcher) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt index 28badaef1..23a29aab4 100644 --- a/utilities/CMakeLists.txt +++ b/utilities/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) project (examples) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/utilities/hardware-test/CMakeLists.txt b/utilities/hardware-test/CMakeLists.txt index ea3aea68f..eeda9b094 100644 --- a/utilities/hardware-test/CMakeLists.txt +++ b/utilities/hardware-test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) project (hardware-test) find_package (32BLIT CONFIG REQUIRED PATHS ../..) diff --git a/utilities/picosystem-hardware-test/CMakeLists.txt b/utilities/picosystem-hardware-test/CMakeLists.txt index 465ea66bd..354ed6604 100644 --- a/utilities/picosystem-hardware-test/CMakeLists.txt +++ b/utilities/picosystem-hardware-test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.9...3.26) +cmake_minimum_required(VERSION 3.12...3.31) project (picosystem-hardware-test) find_package (32BLIT CONFIG REQUIRED PATHS ../..) From fc8aa267fc99200c3d1ba4f1f7b4d161871e4b07 Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Mon, 20 Jan 2025 15:27:17 +0000 Subject: [PATCH 2/3] Bump min CMake version to 3.15 Now we can use TARGET_FILE_BASE_NAME --- 32blit-stm32/executable.cmake | 14 ++------------ 32blit-stm32/firmware/CMakeLists.txt | 2 +- CMakeLists.txt | 2 +- launcher/CMakeLists.txt | 2 +- utilities/CMakeLists.txt | 2 +- utilities/hardware-test/CMakeLists.txt | 2 +- utilities/picosystem-hardware-test/CMakeLists.txt | 2 +- 7 files changed, 8 insertions(+), 18 deletions(-) diff --git a/32blit-stm32/executable.cmake b/32blit-stm32/executable.cmake index d354838c7..3eaed6594 100644 --- a/32blit-stm32/executable.cmake +++ b/32blit-stm32/executable.cmake @@ -32,13 +32,7 @@ function(blit_executable NAME) add_executable(${NAME} ${USER_STARTUP} ${SOURCES}) - # Ideally we want the .blit filename to match the .elf, but TARGET_FILE_BASE_NAME isn't always available - # (This only affects the firmware updater as it's the only thing setting a custom OUTPUT_NAME) - if(${CMAKE_VERSION} VERSION_LESS "3.15.0") - set(BLIT_FILENAME ${NAME}.blit) - else() - set(BLIT_FILENAME $.blit) - endif() + set(BLIT_FILENAME $.blit) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${BLIT_FILENAME} DESTINATION bin @@ -80,11 +74,7 @@ function(blit_metadata TARGET FILE) include(${CMAKE_CURRENT_BINARY_DIR}/metadata.cmake) - if(${CMAKE_VERSION} VERSION_LESS "3.15.0") - set(BLIT_FILENAME ${TARGET}.blit) - else() - set(BLIT_FILENAME $.blit) - endif() + set(BLIT_FILENAME $.blit) add_custom_command( TARGET ${TARGET} POST_BUILD diff --git a/32blit-stm32/firmware/CMakeLists.txt b/32blit-stm32/firmware/CMakeLists.txt index a95fc9c3b..4472a6bfe 100644 --- a/32blit-stm32/firmware/CMakeLists.txt +++ b/32blit-stm32/firmware/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) project (firmware) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/CMakeLists.txt b/CMakeLists.txt index cccdaea14..f50fac34a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) # has to be before project include(32blit-pico/sdk_import.cmake) diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 0e8746138..d6d5a3bab 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) project (launcher) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt index 23a29aab4..0dbc018e8 100644 --- a/utilities/CMakeLists.txt +++ b/utilities/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) project (examples) find_package (32BLIT CONFIG REQUIRED PATHS ..) diff --git a/utilities/hardware-test/CMakeLists.txt b/utilities/hardware-test/CMakeLists.txt index eeda9b094..f42901c9a 100644 --- a/utilities/hardware-test/CMakeLists.txt +++ b/utilities/hardware-test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) project (hardware-test) find_package (32BLIT CONFIG REQUIRED PATHS ../..) diff --git a/utilities/picosystem-hardware-test/CMakeLists.txt b/utilities/picosystem-hardware-test/CMakeLists.txt index 354ed6604..9fd0a308b 100644 --- a/utilities/picosystem-hardware-test/CMakeLists.txt +++ b/utilities/picosystem-hardware-test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.12...3.31) +cmake_minimum_required(VERSION 3.15...3.31) project (picosystem-hardware-test) find_package (32BLIT CONFIG REQUIRED PATHS ../..) From 44459fa1712d29a4920e1bf20986557009f6f094 Mon Sep 17 00:00:00 2001 From: Charlie Birks Date: Mon, 20 Jan 2025 15:33:28 +0000 Subject: [PATCH 3/3] Don't bother finding readelf in the 32blit toolchain We don't use it any more. (If we need it again we can just bump the min CMake ver to 3.16) --- 32blit.toolchain | 1 - 1 file changed, 1 deletion(-) diff --git a/32blit.toolchain b/32blit.toolchain index 5d2fde5ae..48344c972 100644 --- a/32blit.toolchain +++ b/32blit.toolchain @@ -5,7 +5,6 @@ set(CMAKE_C_COMPILER arm-none-eabi-gcc CACHE PATH "Path to C compiler") set(CMAKE_CXX_COMPILER arm-none-eabi-g++ CACHE PATH "Path to C++ compiler") find_program(CMAKE_SIZE NAMES arm-none-eabi-size) -find_program(CMAKE_READELF NAMES arm-none-eabi-readelf) # handled by CMake in 3.16+ set(MCU_LINKER_SCRIPT STM32H750VBTx.ld) set(MCU_LINKER_FLAGS_INT -Wl,--defsym=FLASH_TARGET_INT=1)