From ceec04b34c8a0b27610a0f0d8c96e3a34ba83555 Mon Sep 17 00:00:00 2001 From: Ken Van Hoeylandt Date: Sat, 11 Jan 2025 22:44:08 +0100 Subject: [PATCH] Implement simulator release package builds (#159) --- .github/actions/build-simulator/action.yml | 51 +++++++++++++++++++++ .github/workflows/build-simulator.yml | 13 ++++++ .github/workflows/pc.yml | 17 ------- .gitignore | 1 + Buildscripts/release-simulator.sh | 17 +++++++ Data/screenshot-AppList.png | Bin 4036 -> 0 bytes Data/screenshot-Launcher.png | Bin 4095 -> 0 bytes Documentation/ideas.md | 1 + Libraries/lvgl_conf/lv_conf_simulator.h | 2 +- 9 files changed, 84 insertions(+), 18 deletions(-) create mode 100644 .github/actions/build-simulator/action.yml create mode 100644 .github/workflows/build-simulator.yml delete mode 100644 .github/workflows/pc.yml create mode 100755 Buildscripts/release-simulator.sh delete mode 100644 Data/screenshot-AppList.png delete mode 100644 Data/screenshot-Launcher.png diff --git a/.github/actions/build-simulator/action.yml b/.github/actions/build-simulator/action.yml new file mode 100644 index 00000000..fc1a590b --- /dev/null +++ b/.github/actions/build-simulator/action.yml @@ -0,0 +1,51 @@ +name: Build + +inputs: + os_name: + description: A descriptive name for the operating system (e.g. linux, windows) + required: true + platform_name: + description: A descriptive name for the target platform (e.g. amd64, aarch64, etc.) + required: true + +runs: + using: "composite" + steps: + - name: "Checkout repo" + uses: actions/checkout@v2 + with: + submodules: recursive + - name: Install Linux Dependencies for SDL + if: ${{ inputs.platform_name }} == 'linux' + shell: bash + # See Libraries/SDL/docs/README-linux.md + run: > + sudo apt-get install build-essential git make + pkg-config cmake ninja-build gnome-desktop-testing libasound2-dev libpulse-dev + libaudio-dev libjack-dev libsndio-dev libx11-dev libxext-dev + libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev + libxkbcommon-dev libdrm-dev libgbm-dev libgl1-mesa-dev libgles2-mesa-dev + libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev + libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev + env: + WLR_BACKENDS: headless + WLR_LIBINPUT_NO_DEVICES: 1 + WAYLAND_DISPLAY: wayland-1 + GTK_USE_PORTAL: 0 + - name: "Configure Project" + uses: threeal/cmake-action@v1.3.0 + - name: "Prepare Project" + shell: bash + run: cmake -S ./ -B buildsim + - name: "Build Tests" + shell: bash + run: cmake --build buildsim --target AppSim + - name: 'Release' + shell: bash + run: Buildscripts/release-simulator.sh buildsim release/Simulator-${{ inputs.os_name }}-${{ inputs.platform_name }} + - name: 'Upload Artifact' + uses: actions/upload-artifact@v4 + with: + name: Simulator-${{ inputs.os_name }}-${{ inputs.platform_name }} + path: release/Simulator-${{ inputs.os_name }}-${{ inputs.platform_name }} + retention-days: 30 diff --git a/.github/workflows/build-simulator.yml b/.github/workflows/build-simulator.yml new file mode 100644 index 00000000..a8148aea --- /dev/null +++ b/.github/workflows/build-simulator.yml @@ -0,0 +1,13 @@ +# Disabled because of issue: https://github.com/libsdl-org/setup-sdl/issues/23 +name: Build Simulator +on: [push] +jobs: + Build-Simulator: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: "Build" + uses: ./.github/actions/build-simulator + with: + os_name: linux + platform_name: amd64 diff --git a/.github/workflows/pc.yml b/.github/workflows/pc.yml deleted file mode 100644 index 9e6644ea..00000000 --- a/.github/workflows/pc.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Disabled because of issue: https://github.com/libsdl-org/setup-sdl/issues/23 -name: Build -on: [push] -jobs: - Build-PC: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v2 - with: - submodules: recursive - - name: Configure Project - uses: threeal/cmake-action@v2.0.0 - - name: Prepare Project - run: cmake -S ./ -B build - - name: Build Project - run: cmake --build build diff --git a/.gitignore b/.gitignore index 5bbe365c..f35bc868 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .DS_Store build/ +buildsim/ build-sim/ cmake-build-*/ CMakeCache.txt diff --git a/Buildscripts/release-simulator.sh b/Buildscripts/release-simulator.sh new file mode 100755 index 00000000..b5f39e2c --- /dev/null +++ b/Buildscripts/release-simulator.sh @@ -0,0 +1,17 @@ +#!/usr/bin/bash + +# +# Usage: release-simulator.sh [builddir] [target_path] +# Example: release-simulator.sh buildsim release/Simulator-linux-amd64 +# Description: Releases the current simulator build files in the specified folder. +# + +build_path=$1 +target_path=$2 + +mkdir -p $target_path + +cp version.txt $target_path +cp $build_path/App/AppSim $target_path/ +cp -r Data/data $target_path/ +cp -r Data/system $target_path/ diff --git a/Data/screenshot-AppList.png b/Data/screenshot-AppList.png deleted file mode 100644 index a8ba8fd4d42cb96567fdc7b187d686cf9ba6ab79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4036 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 SiKFj03*7LgL8Trt=Klb!^}tC0 diff --git a/Data/screenshot-Launcher.png b/Data/screenshot-Launcher.png deleted file mode 100644 index ef16d21da693adb672df49c92f691e30469a7d21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4095 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 diff --git a/Documentation/ideas.md b/Documentation/ideas.md index 75d9bd22..6421f131 100644 --- a/Documentation/ideas.md +++ b/Documentation/ideas.md @@ -16,6 +16,7 @@ - Fix bug in T-Deck/etc: esp_lvgl_port settings has a large stack size (~9kB) to fix an issue where the T-Deck would get a stackoverflow. This sometimes happens when WiFi is auto-enabled and you open the app while it is still connecting. # TODOs +- Make a ledger for setting CPU affinity of various services and tasks - Make "blocking" argument the last one, and put it default to false (or remove it entirely?): void startApp(const std::string& id, bool blocking, std::shared_ptr parameters) { - Boot hooks instead of a single boot method in config. Define different boot phases/levels in enum. - Add toggle to Display app for sysmon overlay: https://docs.lvgl.io/master/API/others/sysmon/index.html diff --git a/Libraries/lvgl_conf/lv_conf_simulator.h b/Libraries/lvgl_conf/lv_conf_simulator.h index 16f9345f..9c0b4358 100644 --- a/Libraries/lvgl_conf/lv_conf_simulator.h +++ b/Libraries/lvgl_conf/lv_conf_simulator.h @@ -163,7 +163,7 @@ #define LV_USE_DRAW_DAVE2D 0 /* Draw using cached SDL textures*/ -#define LV_USE_DRAW_SDL 1 +#define LV_USE_DRAW_SDL 0 /* Use VG-Lite GPU. */ #define LV_USE_DRAW_VG_LITE 0