Build improvements (#250)

- Fix case for board configs
-  CMake now only builds a single board instead of all boards for the selected SOC. This makes it quicker to compile a single firmware.
This commit is contained in:
Ken Van Hoeylandt 2025-03-16 22:04:03 +01:00 committed by GitHub
parent 7f33364bf4
commit ebd2c7c6f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 91 additions and 75 deletions

View File

@ -9,23 +9,23 @@ on:
permissions: read-all permissions: read-all
jobs: jobs:
cyd-2432S024c: cyd-2432s024c:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: "Build" - name: "Build"
uses: ./.github/actions/build-firmware uses: ./.github/actions/build-firmware
with: with:
board_id: cyd-2432S024c board_id: cyd-2432s024c
arch: esp32 arch: esp32
cyd-2432S032c: cyd-2432s032c:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: "Build" - name: "Build"
uses: ./.github/actions/build-firmware uses: ./.github/actions/build-firmware
with: with:
board_id: cyd-2432S032c board_id: cyd-2432s032c
arch: esp32 arch: esp32
cyd-jc2432w328c: cyd-jc2432w328c:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -36,14 +36,14 @@ jobs:
with: with:
board_id: cyd-jc2432w328c board_id: cyd-jc2432w328c
arch: esp32 arch: esp32
cyd-8048S043c: cyd-8048s043c:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: "Build" - name: "Build"
uses: ./.github/actions/build-firmware uses: ./.github/actions/build-firmware
with: with:
board_id: cyd-8048S043c board_id: cyd-8048s043c
arch: esp32s3 arch: esp32s3
cyd-jc8048w550c: cyd-jc8048w550c:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -16,7 +16,7 @@ jobs:
- name: "Build" - name: "Build"
uses: ./.github/actions/build-sdk uses: ./.github/actions/build-sdk
with: with:
board_id: cyd-2432S024c board_id: cyd-2432s024c
arch: esp32 arch: esp32
esp32s3: esp32s3:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -1,41 +1,18 @@
cmake_minimum_required(VERSION 3.20) cmake_minimum_required(VERSION 3.20)
if (DEFINED ENV{ESP_IDF_VERSION}) if (DEFINED ENV{ESP_IDF_VERSION})
set(BOARD_COMPONENTS Tactility TactilityC) # Read board id/project
include("../Buildscripts/board.cmake")
if("${IDF_TARGET}" STREQUAL "esp32") init_tactility_globals("../sdkconfig")
list(APPEND BOARD_COMPONENTS get_property(TACTILITY_BOARD_PROJECT GLOBAL PROPERTY TACTILITY_BOARD_PROJECT)
CYD-2432S024C
CYD-2432S032C
CYD-JC2432W328C
ElecrowCrowpanelBasic28
ElecrowCrowpanelBasic35
M5stackCore2
)
endif()
if("${IDF_TARGET}" STREQUAL "esp32s3")
list(APPEND BOARD_COMPONENTS
CYD-4848S040C
CYD-8048S043C
CYD-JC8048W550C
ElecrowCrowpanelAdvance28
ElecrowCrowpanelAdvance35
ElecrowCrowpanelAdvance50
ElecrowCrowpanelBasic50
LilygoTdeck
M5stackCoreS3
UnPhone
WaveshareS3Touch43
)
endif()
idf_component_register( idf_component_register(
SRC_DIRS "Source" SRC_DIRS "Source"
"Source/HelloWorld" "Source/HelloWorld"
REQUIRES ${BOARD_COMPONENTS} REQUIRES ${BOARD_COMPONENTS}
REQUIRES Tactility TactilityC ${TACTILITY_BOARD_PROJECT}
) )
else() else ()
file(GLOB_RECURSE SOURCES "Source/*.c*") file(GLOB_RECURSE SOURCES "Source/*.c*")
add_executable(AppSim ${SOURCES}) add_executable(AppSim ${SOURCES})
@ -49,4 +26,4 @@ else()
add_definitions(-D_Nullable=) add_definitions(-D_Nullable=)
add_definitions(-D_Nonnull=) add_definitions(-D_Nonnull=)
endif() endif ()

View File

@ -9,7 +9,7 @@
#define TT_BOARD_HARDWARE &lilygo_tdeck #define TT_BOARD_HARDWARE &lilygo_tdeck
#elif defined(CONFIG_TT_BOARD_CYD_2432S024C) #elif defined(CONFIG_TT_BOARD_CYD_2432S024C)
#include "CYD2432S024C.h" #include "CYD2432S024C.h"
#define TT_BOARD_HARDWARE &cyd_2432S024c_config #define TT_BOARD_HARDWARE &cyd_2432s024c_config
#elif defined(CONFIG_TT_BOARD_CYD_2432S032C) #elif defined(CONFIG_TT_BOARD_CYD_2432S032C)
#include "CYD2432S032C.h" #include "CYD2432S032C.h"
#define TT_BOARD_HARDWARE &cyd_2432S032c_config #define TT_BOARD_HARDWARE &cyd_2432S032c_config

View File

@ -12,7 +12,7 @@ bool initBoot() {
return driver::pwmbacklight::init(TWODOTFOUR_LCD_PIN_BACKLIGHT); return driver::pwmbacklight::init(TWODOTFOUR_LCD_PIN_BACKLIGHT);
} }
const tt::hal::Configuration cyd_2432S024c_config = { const tt::hal::Configuration cyd_2432s024c_config = {
.initBoot = initBoot, .initBoot = initBoot,
.createDisplay = createDisplay, .createDisplay = createDisplay,
.sdcard = createYellowSdCard(), .sdcard = createYellowSdCard(),

View File

@ -3,4 +3,4 @@
#include <Tactility/hal/Configuration.h> #include <Tactility/hal/Configuration.h>
// Capacitive touch version of the 2.4" yellow board // Capacitive touch version of the 2.4" yellow board
extern const tt::hal::Configuration cyd_2432S024c_config; extern const tt::hal::Configuration cyd_2432s024c_config;

60
Buildscripts/board.cmake Normal file
View File

@ -0,0 +1,60 @@
function(INIT_TACTILITY_GLOBALS SDKCONFIG_FILE)
get_filename_component(SDKCONFIG_FILE_ABS ${SDKCONFIG_FILE} ABSOLUTE)
# Find the board identifier in the sdkconfig file
file(READ ${SDKCONFIG_FILE_ABS} sdkconfig_text)
string(REGEX MATCH "(CONFIG_TT_BOARD_ID\=\"[a-z0-9_\-]*\")" sdkconfig_board_id "${sdkconfig_text}")
if (sdkconfig_board_id STREQUAL "")
message(FATAL_ERROR "CONFIG_TT_BOARD_ID not found in sdkconfig:\nMake sure you copied one of the sdkconfig.board.* files into sdkconfig")
endif ()
string(LENGTH ${sdkconfig_board_id} sdkconfig_board_id_length)
set(id_length 0)
math(EXPR id_length "${sdkconfig_board_id_length} - 21")
string(SUBSTRING ${sdkconfig_board_id} 20 ${id_length} board_id)
message("Building board ${board_id}")
if (board_id STREQUAL "cyd-2432s024c")
set(TACTILITY_BOARD_PROJECT CYD-2432S024C)
elseif (board_id STREQUAL "cyd-2432s032c")
set(TACTILITY_BOARD_PROJECT CYD-2432S032C)
elseif (board_id STREQUAL "cyd-4848s040c")
set(TACTILITY_BOARD_PROJECT CYD-4848S040C)
elseif (board_id STREQUAL "cyd-8048s043c")
set(TACTILITY_BOARD_PROJECT CYD-8048S043C)
elseif (board_id STREQUAL "cyd-jc2432w328c")
set(TACTILITY_BOARD_PROJECT CYD-JC2432W328C)
elseif (board_id STREQUAL "cyd-jc8048w550c")
set(TACTILITY_BOARD_PROJECT CYD-JC8048W550C)
elseif (board_id STREQUAL "elecrow-crowpanel-advance-28")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelAdvance28)
elseif (board_id STREQUAL "elecrow-crowpanel-advance-35")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelAdvance35)
elseif (board_id STREQUAL "elecrow-crowpanel-advance-50")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelAdvance50)
elseif (board_id STREQUAL "elecrow-crowpanel-basic-28")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelBasic28)
elseif (board_id STREQUAL "elecrow-crowpanel-basic-35")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelBasic35)
elseif (board_id STREQUAL "elecrow-crowpanel-basic-50")
set(TACTILITY_BOARD_PROJECT ElecrowCrowpanelBasic50)
elseif (board_id STREQUAL "lilygo-tdeck")
set(TACTILITY_BOARD_PROJECT LilygoTdeck)
elseif (board_id STREQUAL "m5stack-core2")
set(TACTILITY_BOARD_PROJECT M5stackCore2)
elseif (board_id STREQUAL "m5stack-cores3")
set(TACTILITY_BOARD_PROJECT M5stackCoreS3)
elseif (board_id STREQUAL "unphone")
set(TACTILITY_BOARD_PROJECT UnPhone)
elseif (board_id STREQUAL "waveshare-s3-touch-43")
set(TACTILITY_BOARD_PROJECT WaveshareS3Touch43)
else ()
set(TACTILITY_BOARD_PROJECT "")
endif ()
if (TACTILITY_BOARD_PROJECT STREQUAL "")
message(FATAL_ERROR "No subproject mapped to \"${TACTILITY_BOARD_ID}\" in root Buildscripts/board.cmake")
else ()
message("Board project: Boards/${TACTILITY_BOARD_PROJECT}")
set_property(GLOBAL PROPERTY TACTILITY_BOARD_PROJECT ${TACTILITY_BOARD_PROJECT})
set_property(GLOBAL PROPERTY TACTILITY_BOARD_ID ${board_id})
endif ()
endfunction()

View File

@ -15,10 +15,14 @@ if (DEFINED ENV{ESP_IDF_VERSION})
message("Building with ESP-IDF v$ENV{ESP_IDF_VERSION}") message("Building with ESP-IDF v$ENV{ESP_IDF_VERSION}")
include($ENV{IDF_PATH}/tools/cmake/project.cmake) include($ENV{IDF_PATH}/tools/cmake/project.cmake)
include("Buildscripts/board.cmake")
init_tactility_globals("sdkconfig")
get_property(TACTILITY_BOARD_PROJECT GLOBAL PROPERTY TACTILITY_BOARD_PROJECT)
set(COMPONENTS App) set(COMPONENTS App)
set(EXTRA_COMPONENT_DIRS set(EXTRA_COMPONENT_DIRS
"App" "App"
"Boards" "Boards/${TACTILITY_BOARD_PROJECT}"
"Drivers" "Drivers"
"Tactility" "Tactility"
"TactilityC" "TactilityC"
@ -34,31 +38,6 @@ if (DEFINED ENV{ESP_IDF_VERSION})
set(EXCLUDE_COMPONENTS "Simulator") set(EXCLUDE_COMPONENTS "Simulator")
# ESP32 target should exclude ESP32-S3 boards
if("${IDF_TARGET}" STREQUAL "esp32")
set(EXCLUDE_COMPONENTS "CYD-8048S043C")
set(EXCLUDE_COMPONENTS "CYD-JC8048W550C")
set(EXCLUDE_COMPONENTS "CYD-4848S040C")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelAdvance28")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelAdvance35")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelAdvance50")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelBasic50")
set(EXCLUDE_COMPONENTS "LilygoTdeck")
set(EXCLUDE_COMPONENTS "M5stackCoreS3")
set(EXCLUDE_COMPONENTS "WaveshareEsp32S3TouchLcd43")
set(EXCLUDE_COMPONENTS "UnPhone")
endif()
# ESP32-S3 target should exclude ESP32 boards
if("${IDF_TARGET}" STREQUAL "esp32s3")
set(EXCLUDE_COMPONENTS "CYD-2432S024C")
set(EXCLUDE_COMPONENTS "CYD-2432S032C")
set(EXCLUDE_COMPONENTS "CYD-JC2432W328C")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelBasic28")
set(EXCLUDE_COMPONENTS "ElecrowCrowpanelBasic35")
set(EXCLUDE_COMPONENTS "M5stackCore2")
endif()
# LVGL # LVGL
get_filename_component( get_filename_component(
LVGL_CONFIG_FULL_PATH Libraries/lvgl_conf ABSOLUTE LVGL_CONFIG_FULL_PATH Libraries/lvgl_conf ABSOLUTE

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_CYD_2432S024C=y CONFIG_TT_BOARD_CYD_2432S024C=y
CONFIG_TT_BOARD_NAME="CYD 2432S024C" CONFIG_TT_BOARD_NAME="CYD 2432S024C"
CONFIG_TT_BOARD_ID="cyd-2432S024c" CONFIG_TT_BOARD_ID="cyd-2432s024c"
CONFIG_IDF_TARGET="esp32" CONFIG_IDF_TARGET="esp32"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_CYD_2432S032C=y CONFIG_TT_BOARD_CYD_2432S032C=y
CONFIG_TT_BOARD_NAME="CYD 2432S032C" CONFIG_TT_BOARD_NAME="CYD 2432S032C"
CONFIG_TT_BOARD_ID="cyd-2432S032c" CONFIG_TT_BOARD_ID="cyd-2432s032c"
CONFIG_IDF_TARGET="esp32" CONFIG_IDF_TARGET="esp32"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_CYD_JC2432W328C=y CONFIG_TT_BOARD_CYD_JC2432W328C=y
CONFIG_TT_BOARD_NAME="CYD JC2432W328C" CONFIG_TT_BOARD_NAME="CYD JC2432W328C"
CONFIG_TT_BOARD_ID="cyd-jc2432W328c" CONFIG_TT_BOARD_ID="cyd-jc2432w328c"
CONFIG_IDF_TARGET="esp32" CONFIG_IDF_TARGET="esp32"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_28=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_28=y
CONFIG_TT_BOARD_NAME="CrowPanel Advance 2.8" CONFIG_TT_BOARD_NAME="CrowPanel Advance 2.8"
CONFIG_TT_BOARD_ID="crowpanel-advance-28" CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-28"
CONFIG_IDF_EXPERIMENTAL_FEATURES=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_IDF_TARGET="esp32s3" CONFIG_IDF_TARGET="esp32s3"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_35=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_35=y
CONFIG_TT_BOARD_NAME="CrowPanel Advance 3.5" CONFIG_TT_BOARD_NAME="CrowPanel Advance 3.5"
CONFIG_TT_BOARD_ID="crowpanel-advance-35" CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-35"
CONFIG_IDF_EXPERIMENTAL_FEATURES=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_IDF_TARGET="esp32s3" CONFIG_IDF_TARGET="esp32s3"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_50=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_ADVANCE_50=y
CONFIG_TT_BOARD_NAME="CrowPanel Advance 5.0" CONFIG_TT_BOARD_NAME="CrowPanel Advance 5.0"
CONFIG_TT_BOARD_ID="crowpanel-advance-50" CONFIG_TT_BOARD_ID="elecrow-crowpanel-advance-50"
CONFIG_IDF_EXPERIMENTAL_FEATURES=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_IDF_TARGET="esp32s3" CONFIG_IDF_TARGET="esp32s3"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_28=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_28=y
CONFIG_TT_BOARD_NAME="CrowPanel Basic 2.8" CONFIG_TT_BOARD_NAME="CrowPanel Basic 2.8"
CONFIG_TT_BOARD_ID="crowpanel-basic-28" CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-28"
CONFIG_IDF_TARGET="esp32" CONFIG_IDF_TARGET="esp32"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_35=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_35=y
CONFIG_TT_BOARD_NAME="CrowPanel Basic 3.5" CONFIG_TT_BOARD_NAME="CrowPanel Basic 3.5"
CONFIG_TT_BOARD_ID="crowpanel-basic-35" CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-35"
CONFIG_IDF_TARGET="esp32" CONFIG_IDF_TARGET="esp32"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y

View File

@ -30,7 +30,7 @@ CONFIG_FATFS_VOLUME_COUNT=3
# Hardware: Main # Hardware: Main
CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_50=y CONFIG_TT_BOARD_ELECROW_CROWPANEL_BASIC_50=y
CONFIG_TT_BOARD_NAME="CrowPanel Basic 5.0" CONFIG_TT_BOARD_NAME="CrowPanel Basic 5.0"
CONFIG_TT_BOARD_ID="crowpanel-basic-50" CONFIG_TT_BOARD_ID="elecrow-crowpanel-basic-50"
CONFIG_IDF_EXPERIMENTAL_FEATURES=y CONFIG_IDF_EXPERIMENTAL_FEATURES=y
CONFIG_IDF_TARGET="esp32s3" CONFIG_IDF_TARGET="esp32s3"
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y