From 8591cbc79be5fbea2368bf88f76a4410e8c45a31 Mon Sep 17 00:00:00 2001 From: Darko Trogrlic Date: Tue, 24 Jan 2023 15:08:34 +0100 Subject: [PATCH 1/5] docs: using cmake with yocto recipe - example --- .../images/coreos-image-full-cmdline.bb | 3 ++ .../recipes-demo/cmake-demo/cmake-demo_0.1.bb | 46 +++++++++++++++++++ .../cmake-demo/files/CMakeLists.txt | 15 ++++++ .../cmake-demo/files/lib/CMakeLists.txt | 17 +++++++ .../cmake-demo/files/lib/lib-demo.c | 12 +++++ .../cmake-demo/files/lib/lib-demo.h | 4 ++ .../cmake-demo/files/src/CMakeLists.txt | 7 +++ .../cmake-demo/files/src/hello.service | 10 ++++ .../cmake-demo/files/src/helloworld.c | 13 ++++++ 9 files changed, 127 insertions(+) create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service create mode 100644 layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c diff --git a/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb b/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb index c2e9e63..c0abb21 100644 --- a/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb +++ b/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb @@ -4,4 +4,7 @@ functionality installed." inherit coreos-image IMAGE_FEATURES += "ssh-server podman dev-tools cockpit networkmanager" + +IMAGE_INSTALL += "cmake-demo" + IMAGE_INSTALL:append = " packagegroup-core-full-cmdline" diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb b/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb new file mode 100644 index 0000000..33e2d5c --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb @@ -0,0 +1,46 @@ +#Example how to make a recipe that uses CMake for building +#Please note that this is a recipe to build the package. For package to be added to an Image, another recipe needs to be changed. +#Example: This package is added to be part of coreos-image-full-cmdline image. +#A new line: IMAGE_INSTALL += "cmake-demo" is added to layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb + +DESCRIPTION = "Simple helloworld cmake application" + +#Recipe must include a licence +LICENSE = "CLOSED" + +#Revision of this recipe (optional) +PR = "r1" + +SYSTEMD_AUTO_ENABLE = "enable" + +#Systemd file +SYSTEMD_SERVICE_${PN} = "hello.service" + +#Recipe needs to know where the needed files are +SRC_URI += "file://CMakeLists.txt\ + file://lib/CMakeLists.txt \ + file://src/CMakeLists.txt \ + file://src/helloworld.c \ + file://src/hello.service \ + file://lib/lib-demo.c \ + file://lib/lib-demo.h" + +#List of files and directories that are placed in a package +FILES:${PN} += "${systemd_unitdir}/system/hello.service" + +#Temporary work directory for each recipe where extracted source files are kept +S="${WORKDIR}" + +#CMake will do most of the work, so it needs to be inherited +inherit cmake systemd + +#Passing any needed configure options to CMake +EXTRA_OECMAKE = "" + +#Systemd service is being installed using this function (this is an example). Other files are installed using CMake +do_install:append() { + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/src/hello.service ${D}/${systemd_unitdir}/system +} + + diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt new file mode 100644 index 0000000..c22b9e4 --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt @@ -0,0 +1,15 @@ +#Top CMakeLists.txt file + +#Firstly a minimum required version of CMake is specified +cmake_minimum_required(VERSION 3.5) + +#Name the project, and give a version +project(cmake_demo VERSION 0.0.1) + +#Setting build logs to verbose (usefull for debugging) +set(CMAKE_VERBOSE_MAKEFILE ON) + +#Adding subdirectories that contain CMakeLists.txt +add_subdirectory(lib) +add_subdirectory(src) + diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt new file mode 100644 index 0000000..b075ba3 --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt @@ -0,0 +1,17 @@ +#CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here + + +# Declare the library target. +add_library(${PROJECT_NAME} SHARED lib-demo.c) + +# Set the version property. +set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) + +# Set the shared object version property to the project's major version. +set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR}) + +# Set the public header property to the one with the actual API. +set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER lib-demo.h) + +#Install library and dependency file +install (TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c new file mode 100644 index 0000000..d250584 --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c @@ -0,0 +1,12 @@ +/* +* Simple C library to be used for demonstration +* Bitbake recipe calls CMake to buld and install +* +*/ +#include +#include "lib-demo.h" + +void demo_print(){ + + printf("Print from demo lib\n"); +} diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h new file mode 100644 index 0000000..087206b --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h @@ -0,0 +1,4 @@ +/* +* Library dependency file +*/ +void demo_print(); diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt new file mode 100644 index 0000000..4293866 --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt @@ -0,0 +1,7 @@ +#CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here + +#Create binary +add_executable(helloworld helloworld.c) + +#Install binary +install(TARGETS helloworld RUNTIME DESTINATION bin) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service new file mode 100644 index 0000000..b48497f --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service @@ -0,0 +1,10 @@ +#Systemd service file + +[Unit] +Description=GNU Hello World startup script for KOAN training course + +[Service] +ExecStart=/usr/bin/helloworld + +[Install] +WantedBy=multi-user.target diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c new file mode 100644 index 0000000..53bdf48 --- /dev/null +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c @@ -0,0 +1,13 @@ +/* +* Simple C code (binary is used for demonstration) +*/ + +#include + +int main() { + + printf("Hello, World!"); + + return 0; + +} From ab673422939b65effd1b330835f0c7ad7feb1866 Mon Sep 17 00:00:00 2001 From: Darko Trogrlic Date: Wed, 25 Jan 2023 08:27:06 +0100 Subject: [PATCH 2/5] docs: editing comments and removing config setting Adding spaces to make comments more readable. Removing a config setting that is already default. --- .../recipes-demo/cmake-demo/cmake-demo_0.1.bb | 28 +++++++++---------- .../cmake-demo/files/CMakeLists.txt | 10 +++---- .../cmake-demo/files/lib/CMakeLists.txt | 4 +-- .../cmake-demo/files/src/CMakeLists.txt | 6 ++-- .../cmake-demo/files/src/hello.service | 2 +- 5 files changed, 24 insertions(+), 26 deletions(-) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb b/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb index 33e2d5c..931954e 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb @@ -1,22 +1,20 @@ -#Example how to make a recipe that uses CMake for building -#Please note that this is a recipe to build the package. For package to be added to an Image, another recipe needs to be changed. -#Example: This package is added to be part of coreos-image-full-cmdline image. -#A new line: IMAGE_INSTALL += "cmake-demo" is added to layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb +# Example how to make a recipe that uses CMake for building +# Please note that this is a recipe to build the package. For package to be added to an Image, another recipe needs to be changed. +# Example: This package is added to be part of coreos-image-full-cmdline image. +# A new line: IMAGE_INSTALL += "cmake-demo" is added to layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb DESCRIPTION = "Simple helloworld cmake application" -#Recipe must include a licence +# Recipe must include a licence LICENSE = "CLOSED" -#Revision of this recipe (optional) +# Revision of this recipe (optional) PR = "r1" -SYSTEMD_AUTO_ENABLE = "enable" - -#Systemd file +# Systemd file SYSTEMD_SERVICE_${PN} = "hello.service" -#Recipe needs to know where the needed files are +# Recipe needs to know where the needed files are SRC_URI += "file://CMakeLists.txt\ file://lib/CMakeLists.txt \ file://src/CMakeLists.txt \ @@ -25,19 +23,19 @@ SRC_URI += "file://CMakeLists.txt\ file://lib/lib-demo.c \ file://lib/lib-demo.h" -#List of files and directories that are placed in a package +# List of files and directories that are placed in a package FILES:${PN} += "${systemd_unitdir}/system/hello.service" -#Temporary work directory for each recipe where extracted source files are kept +# Temporary work directory for each recipe where extracted source files are kept S="${WORKDIR}" -#CMake will do most of the work, so it needs to be inherited +# CMake will do most of the work, so it needs to be inherited inherit cmake systemd -#Passing any needed configure options to CMake +# Passing any needed configure options to CMake EXTRA_OECMAKE = "" -#Systemd service is being installed using this function (this is an example). Other files are installed using CMake +# Systemd service is being installed using this function (this is an example). Other files are installed using CMake do_install:append() { install -d ${D}/${systemd_unitdir}/system install -m 0644 ${WORKDIR}/src/hello.service ${D}/${systemd_unitdir}/system diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt index c22b9e4..9b60eae 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt @@ -1,15 +1,15 @@ -#Top CMakeLists.txt file +# Top CMakeLists.txt file -#Firstly a minimum required version of CMake is specified +# Firstly a minimum required version of CMake is specified cmake_minimum_required(VERSION 3.5) -#Name the project, and give a version +# Name the project, and give a version project(cmake_demo VERSION 0.0.1) -#Setting build logs to verbose (usefull for debugging) +# Setting build logs to verbose (usefull for debugging) set(CMAKE_VERBOSE_MAKEFILE ON) -#Adding subdirectories that contain CMakeLists.txt +# Adding subdirectories that contain CMakeLists.txt add_subdirectory(lib) add_subdirectory(src) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt index b075ba3..4d24d60 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt @@ -1,4 +1,4 @@ -#CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here +# CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here # Declare the library target. @@ -13,5 +13,5 @@ set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJ # Set the public header property to the one with the actual API. set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER lib-demo.h) -#Install library and dependency file +# Install library and dependency file install (TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt index 4293866..5f9d124 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt @@ -1,7 +1,7 @@ -#CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here +# CMakeLists.txt file is gets some info from top CMakeLists.txt file (Minimum required version, Project name), so its not needed to redefine it here -#Create binary +# Create binary add_executable(helloworld helloworld.c) -#Install binary +# Install binary install(TARGETS helloworld RUNTIME DESTINATION bin) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service index b48497f..1ee1d6e 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service @@ -1,4 +1,4 @@ -#Systemd service file +# Systemd service file [Unit] Description=GNU Hello World startup script for KOAN training course From 76ed381b77769783796d85fd0e77219d0ec7f302 Mon Sep 17 00:00:00 2001 From: Darko Trogrlic Date: Fri, 27 Jan 2023 09:12:21 +0100 Subject: [PATCH 3/5] docs: changing cmake version in CMakeLists.txt --- .../recipes-demo/cmake-demo/files/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt index 9b60eae..e42e042 100644 --- a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt +++ b/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt @@ -1,7 +1,7 @@ # Top CMakeLists.txt file # Firstly a minimum required version of CMake is specified -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.22) # Name the project, and give a version project(cmake_demo VERSION 0.0.1) From 89d8e1c0b07721f2e75158c8c9e157ff0e5966f6 Mon Sep 17 00:00:00 2001 From: Darko Trogrlic Date: Fri, 27 Jan 2023 15:29:54 +0100 Subject: [PATCH 4/5] docs: moving cmake-demo to demo layer --- .../recipes-demo/cmake-demo/cmake-demo_0.1.bb | 0 .../recipes-demo/cmake-demo/files/CMakeLists.txt | 0 .../recipes-demo/cmake-demo/files/lib/CMakeLists.txt | 0 .../recipes-demo/cmake-demo/files/lib/lib-demo.c | 0 .../recipes-demo/cmake-demo/files/lib/lib-demo.h | 0 .../recipes-demo/cmake-demo/files/src/CMakeLists.txt | 0 .../recipes-demo/cmake-demo/files/src/hello.service | 0 .../recipes-demo/cmake-demo/files/src/helloworld.c | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/cmake-demo_0.1.bb (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/CMakeLists.txt (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/lib/CMakeLists.txt (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/lib/lib-demo.c (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/lib/lib-demo.h (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/src/CMakeLists.txt (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/src/hello.service (100%) rename layers/{meta-belden-coreos => meta-belden-coreos-demo}/recipes-demo/cmake-demo/files/src/helloworld.c (100%) diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/cmake-demo_0.1.bb similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/cmake-demo_0.1.bb rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/cmake-demo_0.1.bb diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/CMakeLists.txt similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/CMakeLists.txt rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/CMakeLists.txt diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/CMakeLists.txt similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/CMakeLists.txt rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/CMakeLists.txt diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/lib-demo.c similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.c rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/lib-demo.c diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/lib-demo.h similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/lib/lib-demo.h rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/lib/lib-demo.h diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/CMakeLists.txt similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/CMakeLists.txt rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/CMakeLists.txt diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/hello.service similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/hello.service rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/hello.service diff --git a/layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c b/layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/helloworld.c similarity index 100% rename from layers/meta-belden-coreos/recipes-demo/cmake-demo/files/src/helloworld.c rename to layers/meta-belden-coreos-demo/recipes-demo/cmake-demo/files/src/helloworld.c From 44e01e7da8b2104fcf4bfe6578e5a3b857f13c79 Mon Sep 17 00:00:00 2001 From: Darko Trogrlic Date: Fri, 27 Jan 2023 15:49:49 +0100 Subject: [PATCH 5/5] docs: removing from cmake-demo from image recipe --- .../recipes-core/images/coreos-image-full-cmdline.bb | 3 --- 1 file changed, 3 deletions(-) diff --git a/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb b/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb index c0abb21..c2e9e63 100644 --- a/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb +++ b/layers/meta-belden-coreos/recipes-core/images/coreos-image-full-cmdline.bb @@ -4,7 +4,4 @@ functionality installed." inherit coreos-image IMAGE_FEATURES += "ssh-server podman dev-tools cockpit networkmanager" - -IMAGE_INSTALL += "cmake-demo" - IMAGE_INSTALL:append = " packagegroup-core-full-cmdline"