{"id":18301365,"url":"https://github.com/lvgl/lv_web_emscripten","last_synced_at":"2025-04-05T14:04:22.735Z","repository":{"id":42434901,"uuid":"165475328","full_name":"lvgl/lv_web_emscripten","owner":"lvgl","description":"LVGL ported to Emscripten to be converted to JavaScript","archived":false,"fork":false,"pushed_at":"2025-02-06T09:37:18.000Z","size":28129,"stargazers_count":94,"open_issues_count":4,"forks_count":31,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T13:06:11.985Z","etag":null,"topics":["gui","lvgl","simulator","web"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lvgl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-13T06:51:57.000Z","updated_at":"2025-03-23T17:22:46.000Z","dependencies_parsed_at":"2023-09-22T22:15:01.594Z","dependency_job_id":"796f4d5b-13b5-4ea0-8964-98422d4af095","html_url":"https://github.com/lvgl/lv_web_emscripten","commit_stats":{"total_commits":169,"total_committers":8,"mean_commits":21.125,"dds":0.4970414201183432,"last_synced_commit":"f9cf2aab6963134fda6b8b3aa767e85e552e923c"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_web_emscripten","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_web_emscripten/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_web_emscripten/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lvgl%2Flv_web_emscripten/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lvgl","download_url":"https://codeload.github.com/lvgl/lv_web_emscripten/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345850,"owners_count":20924102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gui","lvgl","simulator","web"],"created_at":"2024-11-05T15:15:27.329Z","updated_at":"2025-04-05T14:04:22.711Z","avatar_url":"https://github.com/lvgl.png","language":"C","readme":"# Emscripten port\n\n**LVGL ported to Emscripten to be converted to JavaScript**\n\nThe result looks like this: [https://lvgl.io/demos](https://lvgl.io/demos)\n\n# How to get started\n\n## Install SDL\n\nDownload [SDL](https://www.libsdl.org/) (a graphics library to open a window and handle the mouse). On Linux:\n\n1. Find the current version of SDL2: `apt-cache search libsdl2` (e.g., `libsdl2-2.0-0`)\n1. Install SDL2: `sudo apt-get install libsdl2-2.0-0` (replace with the found version)\n1. Install the SDL2 development package: `sudo apt-get install libsdl2-dev`\n1. If build essentials are not installed yet: `sudo apt-get install build-essential`\n\n---\n\n## Install Emscripten SDK\n\nDownload the [Emscripten SDK](https://kripken.github.io/emscripten-site/) and make sure it is in your `PATH`.\n\n1. `git clone https://github.com/emscripten-core/emsdk.git`\n1. `cd emsdk`\n1. `git pull`\n1. `./emsdk install latest`\n1. `./emsdk activate latest`\n1. `source ./emsdk_env.sh`\n\nMore info here: [Emscripten Downloads](https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html)\n\n---\n\n## Get the Emscripten-LVGL project\n\n1. Be sure you ran `. \u003cpath-to-emsdk\u003e/emsdk_env.sh` to add EMSDK to `PATH`\n1. In any directory: `git clone --recursive https://github.com/lvgl/lv_web_emscripten.git`\n1. `cd lv_web_emscripten`\n1. `mkdir cmbuild`\n1. `cd cmbuild`\n1. `emcmake cmake ..`\n1. `emmake make -j4`\n1. A file called `index.html` will be generated. Open this in your browser\n\n---\n\n### Build options (environment variables)\n\n* `LVGL_CHOSEN_DEMO` can be set to the desired demo name so that you don't need to change any C files. This is useful to compile many demos in bulk using a script.\n\nExample: \n```bash\nemcmake cmake .. -DLVGL_CHOSEN_DEMO=lv_demo_widgets\n```\n\n### Known issue with Google Chrome browser\nChrome might not be able to open the generated HTML file offline. It works if you copy the files to a server. Use Firefox or other browser for offline testing if needed.\n\n### Known issue with Firefox\nFirefox might not be able to open the generated HTML file offline unless you go to `about:config` and change `privacy.file_unique_origin` to `false`.\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvgl%2Flv_web_emscripten","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flvgl%2Flv_web_emscripten","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flvgl%2Flv_web_emscripten/lists"}