From 9fd014db24cf3ace3a968053e4c11f5899351e12 Mon Sep 17 00:00:00 2001 From: FintasticMan Date: Fri, 19 May 2023 18:46:05 +0200 Subject: [PATCH 1/3] node: Add lv_font_conv to node package This means that these can be installed by simply running `npm i`. Also add node_modules to gitignore. --- .gitignore | 3 ++ doc/buildAndProgram.md | 5 +- package-lock.json | 118 +++++++++++++++++++++++++++++++++++++++++ package.json | 5 ++ 4 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.gitignore b/.gitignore index 81e49ae0..14ffa7f3 100644 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,6 @@ src/arm-none-eabi # clangd .cache/ + +# npm +node_modules/ diff --git a/doc/buildAndProgram.md b/doc/buildAndProgram.md index 3b4ed22c..69f8da8a 100644 --- a/doc/buildAndProgram.md +++ b/doc/buildAndProgram.md @@ -15,10 +15,9 @@ To build this project, you'll need: python -m pip install -r tools/mcuboot/requirements.txt ``` - A reasonably recent version of CMake (I use 3.16.5) -- lv_font_conv, to generate the font .c files - - see [lv_font_conv](https://github.com/lvgl/lv_font_conv#install-the-script) +- lv_font_conv and lv_img_conv, to generate the font .c files - install npm (commonly done via the package manager, ensure node's version is at least 12) - - install lv_font_conv: `npm install lv_font_conv` + - install the modules: `npm install` ## Build steps diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..75a67e67 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,118 @@ +{ + "name": "InfiniTime", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "lv_font_conv": "^1.5.2" + } + }, + "node_modules/lv_font_conv": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/lv_font_conv/-/lv_font_conv-1.5.2.tgz", + "integrity": "sha512-0UapRSTkVP/pnB8Z4r2HDHx5p2dJx/xUG1+14u/WXo59mwuC7BahR+Bnx/66jKoDrG1wFQwn9ZzoyMxRHOD9bg==", + "bundleDependencies": [ + "argparse", + "bit-buffer", + "debug", + "make-error", + "mkdirp", + "opentype.js", + "pngjs" + ], + "dependencies": { + "argparse": "^2.0.0", + "bit-buffer": "^0.2.5", + "debug": "^4.1.1", + "make-error": "^1.3.5", + "mkdirp": "^1.0.4", + "opentype.js": "^1.1.0", + "pngjs": "^6.0.0" + }, + "bin": { + "lv_font_conv": "lv_font_conv.js" + } + }, + "node_modules/lv_font_conv/node_modules/argparse": { + "version": "2.0.1", + "inBundle": true, + "license": "Python-2.0" + }, + "node_modules/lv_font_conv/node_modules/bit-buffer": { + "version": "0.2.5", + "inBundle": true, + "license": "MIT" + }, + "node_modules/lv_font_conv/node_modules/debug": { + "version": "4.3.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/lv_font_conv/node_modules/make-error": { + "version": "1.3.6", + "inBundle": true, + "license": "ISC" + }, + "node_modules/lv_font_conv/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lv_font_conv/node_modules/ms": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/lv_font_conv/node_modules/opentype.js": { + "version": "1.3.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string.prototype.codepointat": "^0.2.1", + "tiny-inflate": "^1.0.3" + }, + "bin": { + "ot": "bin/ot" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/lv_font_conv/node_modules/pngjs": { + "version": "6.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/lv_font_conv/node_modules/string.prototype.codepointat": { + "version": "0.2.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/lv_font_conv/node_modules/tiny-inflate": { + "version": "1.0.3", + "inBundle": true, + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..d339766c --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "lv_font_conv": "^1.5.2" + } +} From de04b9ff0f05469fa9cde314446d3276444eb823 Mon Sep 17 00:00:00 2001 From: FintasticMan Date: Wed, 21 Jun 2023 23:27:02 +0200 Subject: [PATCH 2/3] workflows: Remove packages from npm command --- .github/workflows/main.yml | 8 ++++---- src/displayapp/fonts/CMakeLists.txt | 3 ++- src/resources/CMakeLists.txt | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c24e2374..6b040b79 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -74,15 +74,15 @@ jobs: run: | sudo apt-get -y install ninja-build - - name: Install lv_font_conv - run: - npm i -g lv_font_conv@1.5.2 - - name: Checkout source files uses: actions/checkout@v3 with: submodules: recursive + - name: Install npm packages + run: + npm i + - name: Get InfiniSim repo run: | git clone https://github.com/InfiniTimeOrg/InfiniSim.git --depth 1 --branch main diff --git a/src/displayapp/fonts/CMakeLists.txt b/src/displayapp/fonts/CMakeLists.txt index 22627efc..99ca8649 100644 --- a/src/displayapp/fonts/CMakeLists.txt +++ b/src/displayapp/fonts/CMakeLists.txt @@ -2,7 +2,8 @@ set(FONTS jetbrains_mono_42 jetbrains_mono_76 jetbrains_mono_bold_20 jetbrains_mono_extrabold_compressed lv_font_sys_48 open_sans_light fontawesome_weathericons) find_program(LV_FONT_CONV "lv_font_conv" NO_CACHE REQUIRED - HINTS "${CMAKE_SOURCE_DIR}/node_modules/.bin") + HINTS "${CMAKE_SOURCE_DIR}/node_modules/.bin" + HINTS "${InfiniTime_DIR}/node_modules/.bin") message(STATUS "Using ${LV_FONT_CONV} to generate font files") configure_file(${CMAKE_CURRENT_LIST_DIR}/jetbrains_mono_bold_20.c_zero.patch ${CMAKE_CURRENT_BINARY_DIR}/jetbrains_mono_bold_20.c_zero.patch COPYONLY) diff --git a/src/resources/CMakeLists.txt b/src/resources/CMakeLists.txt index 3834e854..b61a84ea 100644 --- a/src/resources/CMakeLists.txt +++ b/src/resources/CMakeLists.txt @@ -1,6 +1,7 @@ find_program(LV_FONT_CONV "lv_font_conv" NO_CACHE REQUIRED - HINTS "${CMAKE_SOURCE_DIR}/node_modules/.bin") + HINTS "${CMAKE_SOURCE_DIR}/node_modules/.bin" + HINTS "${InfiniTime_DIR}/node_modules/.bin") message(STATUS "Using ${LV_FONT_CONV} to generate font files") find_program(LV_IMG_CONV "lv_img_conv.py" NO_CACHE REQUIRED From 1f9e8732b1ba2a9adadc7de8474c5e88f4969e7b Mon Sep 17 00:00:00 2001 From: FintasticMan Date: Thu, 22 Jun 2023 18:02:17 +0200 Subject: [PATCH 3/3] docker: Install node modules locally --- docker/Dockerfile | 1 - docker/build.sh | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 60556594..b9e22905 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -38,7 +38,6 @@ RUN apt-get update -qq \ RUN pip3 install adafruit-nrfutil RUN pip3 install -Iv cryptography==3.3 RUN pip3 install cbor -RUN npm i lv_font_conv@1.5.2 -g # build.sh knows how to compile COPY build.sh /opt/ diff --git a/docker/build.sh b/docker/build.sh index 3a467b9f..dbe9145a 100755 --- a/docker/build.sh +++ b/docker/build.sh @@ -33,6 +33,8 @@ main() { [ ! -d "$TOOLS_DIR/$NRF_SDK_VER" ] && GetNrfSdk [ ! -d "$TOOLS_DIR/mcuboot" ] && GetMcuBoot + npm i + mkdir -p "$BUILD_DIR" CmakeGenerate