Lines Matching +full:working +full:- +full:directory
9 (64-bit), it can be applied to any board in a similar way.
16 .. code-block::
18 sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential \
19 chrpath socat cpio python3 python3-pip python3-pexpect xz-utils \
20 debianutils iputils-ping python3-git python3-jinja2 python3-subunit zstd \
21 liblz4-tool file locales libacl1
27 ref-manual/system-requirements.html#required-packages-for-the-build-host>`_
36 .. code-block:: none
45 ├── meta-openembedded
46 ├── meta-raspberrypi
51 .. code-block::
53 mkdir -p lvgl_yocto_guide/sources
55 Clone Poky, meta-openembedded and meta-raspberrypi in the sources
57 .. code-block::
60 git clone --branch scarthgap https://git.yoctoproject.org/poky.git
61 git clone --branch scarthgap https://git.openembedded.org/meta-openembedded
62 git clone --branch scarthgap git://git.yoctoproject.org/meta-raspberrypi
70 .. code-block:: none
73 source sources/poky/oe-init-build-env
77 also sets the current directory to the build directory.
79 In the build directory, there is a ``conf`` folder with some files in it
81 .. code-block:: none
86 ├── conf-notes.txt
87 ├── conf-summary.txt
100 .. code-block::
102 bitbake-layers add-layer ../sources/meta-openembedded
103 bitbake-layers add-layer ../sources/meta-raspberrypi
109 .. code-block:: bash
120 ${TOPDIR}/../sources/poky/meta-poky \
121 ${TOPDIR}/../sources/poky/meta-yocto-bsp \
122 ${TOPDIR}/../sources/meta-raspberrypi \
123 ${TOPDIR}/../sources/meta-openembedded/meta-oe \
124 ${TOPDIR}/../sources/meta-openembedded/meta-multimedia \
125 ${TOPDIR}/../sources/meta-openembedded/meta-networking \
126 ${TOPDIR}/../sources/meta-openembedded/meta-python \
132 bitbake-layers show-layers
135 - core
136 - yocto
137 - yoctobsp
138 - raspberrypi
139 - openembedded-layer
140 - multimedia-layer
141 - networking-layer
142 - meta-python
149 .. code-block::
151 ls ../sources/meta-raspberrypi/conf/machine/*.conf
156 .. code-block:: bash
158 MACHINE ??= "raspberrypi3-64"
162 .. code-block:: bash
164 LICENSE_FLAGS_ACCEPTED = "synaptics-killswitch"
168 …n about this variable `here <https://meta-raspberrypi.readthedocs.io/en/latest/ipcompliance.html#l…
172 bitbake core-image-base
181 ---------
192 ----------
200 - **images**: it contains the images that can be flashed or deployed to
202 ext4, .tar.gz, .squashfs), bootloaders (e.g., U-Boot), and other
205 - **rmp/deb/ipk**: These folders contain the individual software packages
210 - **sdk**: This subdirectory contains Software Development Kits (SDKs)
211 that you can use to cross-compile applications for your target system.
212 The SDKs are generated when you use the ``bitbake -c populate_sdk``
216 tmp/sysroots-components
217 -----------------------
227 The sysroot-components directory helps optimize the build process because if
232 - ``all``: Architecture-independent files.
233 - ``cortexa53``: Files for the Cortex-A53 (ARMv8-A) architecture.
234 - ``manifests``: Track files installed in the sysroot by package.
235 - ``raspberrypi3_64``: Files specific to the Raspberry Pi 3 (64-bit).
236 - ``x86_64``: Files for the x86_64 (PC) architecture, typically for
237 cross-compilation tools.
238 - ``x86_64-nativesdk``: Files related to the SDK for cross-compilation on
245 tmp/sysroots-uninative
246 ----------------------
248 The sysroots-uninative directory in Yocto is used to support the "uninative"
255 --------
257 The ``work`` folder in Yocto is a key directory in the ``tmp`` folder that
266 .. code-block:: none
274 ├── sysroot-destdir/
287 There is a recipe in ``meta-openembedded`` since ``honister``.
289 .. list-table:: lvgl recipe version
291 :header-rows: 1
293 * - Branch
294 - Recipe
295 * - scarthgap (Yocto Project 5.0)
296 - lvgl 9.1.0
297 * - nanbield (Yocto Project 4.3)
298 - lvgl 8.3.10
299 * - mickledore (Yocto Project 4.2)
300 - lvgl 8.1.0
301 * - langdale (Yocto Project 4.1)
302 - lvgl 8.1.0
303 * - langdale (Yocto Project 4.1)
304 - lvgl 8.1.0
305 * - kirkstone (Yocto Project 4.0)
306 - lvgl 8.0.3
314 This is the path of lvgl recipes: ``lvgl_yocto_guide/sources/meta-openembedded/
315 meta-oe/recipes-graphics/lvgl``
319 .. code-block:: bash
323 │ ├── 0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch
324 │ ├── 0003-Make-fbdev-device-node-runtime-configurable-via-envi.patch
325 │ ├── 0004-Factor-out-fbdev-initialization-code.patch
326 │ ├── 0005-Add-DRM-KMS-example-support.patch
327 │ ├── 0006-Add-SDL2-example-support.patch
328 │ ├── 0007-fix-cmake-generate-versioned-shared-libraries.patch
329 │ └── 0008-fix-fbdev-set-resolution-prior-to-buffer.patch
330 ├── lv-conf.inc
332 └── lvgl-demo-fb_9.1.0.bb
334 - ``file`` folder contains all the patches that can be applied when
336 - ``lv_conf.inc`` is an include file, usually containing common configuration
338 - ``lvgl_9.1.0.bb`` is the recipe to build lvgl library.
339 - ``lvgl-demo-fb_9.1.0.bb`` is a recipe to build an application using lvgl.
343 .. code-block:: bash
345 # SPDX-FileCopyrightText: Huawei Inc.
347 # SPDX-License-Identifier: MIT
357 file://0002-fix-sdl-handle-both-LV_IMAGE_SRC_FILE-and-LV_IMAGE_S.patch \
358 file://0007-fix-cmake-generate-versioned-shared-libraries.patch \
359 file://0008-fix-fbdev-set-resolution-prior-to-buffer.patch \
365 EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib} -DBUILD_SHARED_LIBS=ON"
368 require lv-conf.inc
371 install -d "${D}${includedir}/${PN}"
372 install -m 0644 "${S}/lv_conf.h" "${D}${includedir}/${PN}/lv_conf.h"
375 FILES:${PN}-dev += "\
389 - The main source repository for LVGL specifying the master branch.
390 - The following arguments are the local patch files that will be applied to
404 **S**: This variable defines the source directory where the unpacked source
406 variable in BitBake that points to the working directory for the recipe.
407 require: This line includes another configuration file, ``lv-conf.inc``,
424 .. code-block:: bash
426 bitbake lvgl -c fetch
440 build/tmp/work/cortexa53-poky-linux/lvgl`` but these folders are empty since
447 .. code-block:: bash
449 bitbake lvgl -c unpack
453 In the ``lvgl_yocto_guide/build/tmp/work/cortexa53-poky-linux/lvgl/9.1.0``
462 .. code-block:: bash
464 bitbake lvgl -c patch
471 current source directory **${S}**.
474 .. code-block:: bash
476 bitbake lvgl -c configure
479 build-time and configuration options for the software being built before
484 In this case, it creates a build directory, It invokes CMake to configure
487 there are operations added in the task in ``lv-conf.inc``.
490 cortexa53-poky-linux/lvgl/9.1.0``, you will find a ``build`` folder that was
496 .. code-block:: bash
498 bitbake lvgl -c compile
511 are available in ``lvgl_yocto_guide/build/tmp/work/ cortexa53-poky-linux/lvgl/9.1.0/build/lib``.
516 .. code-block:: bash
518 bitbake lvgl -c install
521 **${D}**. This task runs with the current working directory **${S}** which
522 is the compilation directory.
524 It creates the necessary directory for the header files in the destination
525 installation directory.
526 It installs the ``lv_conf.h`` header file from the source directory into the
527 appropriate include directory in the destination path, ensuring it has the
538 .. code-block:: bash
548 bitbake core-image-base
553 rpm/cortexa53/lvgl-9.1.0-r0.cortexa53.rpm`` and other rpm files related to
562 - **Development Environment**: The SDK provides developers with a
563 ready-to-use development environment tailored for a specific target
567 - **Cross-Compilation**: The SDK allows developers to cross-compile
571 - **Simplified Development**: By packaging all required components, the SDK
575 - **Consistent Build Environment**: The SDK ensures that developers are
576 working with the same versions of and tools used in the Yocto
582 .. code-block:: bash
584 bitbake core-image-base -c populate_sdk
587 poky-glibc-x86_64-core-image-base-cortexa53-raspberrypi3-64-toolchain-5.0.4.
591 .. code-block:: bash
593 $ ./sdk/poky-glibc-x86_64-core-image-base-cortexa53-raspberrypi3-64-toolchain-5.0.4.sh
596 Enter target directory for SDK (default: /opt/poky/5.0.4): /opt/poky/sdk-with-lvgl
597 You are about to install the SDK to "/opt/poky/sdk-with-lvgl". Proceed [Y/n]? y
602 .. code-block:: bash
604 cd /opt/poky/5.0.4/sysroots/cortexa53-poky-linux
605 find . -name "*lvgl*"
609 Now to use the SDK environment and cross-compile an application:
611 .. code-block:: bash
613 source /opt/poke/5.0.4/environment-setup-cortexa53-poky-linux
633 .. code-block::
635 bitbake-layers create-layer ../sources/meta-mylvgl
636 bitbake-layers add-layer ../sources/meta-mylvgl
638 In the ``sources`` folder, a new folder was created: ``meta-mylvgl`` and the
639 directory tree should look like the following
641 .. code-block:: none
647 └── recipes-example
658 .. code-block::
660 cd ../sources/meta-mylvgl
661 mkdir -p recipes-lvglapp/lvgl-fbdev-benchmark/files
662 touch recipes-lvglapp/lvgl-fbdev-benchmark/lvglbenchmarkfbdev_2.4.bb
667 The content of ``recipes-lvglapp/lvgl-fbdev-benchmark/lvglbenchmarkfbdev_2.4.
670 .. code-block:: none
679 file://0001-change-config-file-to-run-fbdev-with-2-threads.patch \
680 file://0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch \
691 install -d ${D}${bindir}
692 install -m 0755 ${S}/bin/lvglbenchmark ${D}${bindir}
698 -------
702 .. code-block::
704 touch 0001-change-config-file-to-run-fbdev-with-2-threads.patch
706 Content of ``0001-change-config-file-to-run-fbdev-with-2-threads.patch``
708 .. code-block:: none
715 ---
716 lv_conf.h | 34 +++++++++++++++++-----------------
717 1 file changed, 17 insertions(+), 17 deletions(-)
719 diff --git a/lv_conf.h b/lv_conf.h
721 --- a/lv_conf.h
723 @@ -39,9 +39,9 @@
724 * - LV_STDLIB_RTTHREAD: RT-Thread implementation
725 * - LV_STDLIB_CUSTOM: Implement the functions externally
727 -#define LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN
728 -#define LV_USE_STDLIB_STRING LV_STDLIB_BUILTIN
729 -#define LV_USE_STDLIB_SPRINTF LV_STDLIB_BUILTIN
736 @@ -89,7 +89,7 @@
737 * - LV_OS_WINDOWS
738 * - LV_OS_MQX
739 * - LV_OS_CUSTOM */
740 -#define LV_USE_OS LV_OS_NONE
745 @@ -117,12 +117,12 @@
749 -#define LV_DRAW_LAYER_SIMPLE_BUF_SIZE (24 * 1024) /* [bytes] */
755 -#define LV_DRAW_THREAD_STACK_SIZE (8 * 1024) /* [bytes] */
760 @@ -147,7 +147,7 @@
764 - #define LV_DRAW_SW_DRAW_UNIT_CNT 1
767 /* Use Arm-2D to accelerate the sw render */
769 @@ -979,8 +979,8 @@
773 - #define LV_LINUX_FBDEV_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL
774 - #define LV_LINUX_FBDEV_BUFFER_COUNT 0
780 @@ -1069,19 +1069,19 @@
784 -#define LV_USE_DEMO_KEYPAD_AND_ENCODER 1
791 -#define LV_USE_DEMO_RENDER 1
795 -#define LV_USE_DEMO_STRESS 1
799 -#define LV_USE_DEMO_MUSIC 1
804 @@ -1091,16 +1091,16 @@
808 -#define LV_USE_DEMO_FLEX_LAYOUT 1
811 /* Smart-phone like multi-language demo */
812 -#define LV_USE_DEMO_MULTILANG 1
816 -#define LV_USE_DEMO_TRANSFORM 1
820 -#define LV_USE_DEMO_SCROLL 1
825 --
830 -------
834 .. code-block::
836 touch 0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch
838 Content of ``0002-adapt-CMakeLists-file-to-compile-and-link-fbdev.patch``
840 .. code-block:: none
847 ---
848 CMakeLists.txt | 17 +++++------------
849 1 file changed, 5 insertions(+), 12 deletions(-)
851 diff --git a/CMakeLists.txt b/CMakeLists.txt
853 --- a/CMakeLists.txt
855 @@ -1,8 +1,8 @@
859 -set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above
860 -set(CMAKE_CXX_STANDARD 17)#C17
866 @@ -10,15 +10,8 @@ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
870 -add_executable(main main.c mouse_cursor_icon.c)
873 -include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake)
874 -include_directories(${Libdrm_INCLUDE_DIRS})
875 -
876 -find_package(SDL2)
877 -find_package(SDL2_image)
878 -include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS})
879 -
880 …-target_link_libraries(main lvgl lvgl::examples lvgl::demos lvgl::thorvg ${SDL2_LIBRARIES} ${SDL2_…
881 -add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main)
885 --
893 .. code-block::
895 bitbake-layers show-recipes | grep lvglbenchmarkfbdev
900 .. code-block::
906 .. code-block::
908 bitbake core-image-base
913 .. code-block::
916 find . -wholename "*bin/lvglbench*"