From 9e048738e82077549434647d12abfc810e2914e4 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 16:30:56 +0200 Subject: [PATCH 1/9] cmake: use dynamic include folder --- Source/core/CMakeLists.txt | 2 +- Source/cryptalgo/CMakeLists.txt | 2 +- Source/extensions/warningreporting/CMakeLists.txt | 2 +- Source/messaging/CMakeLists.txt | 6 +++--- Source/plugins/CMakeLists.txt | 2 +- Source/websocket/CMakeLists.txt | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/core/CMakeLists.txt b/Source/core/CMakeLists.txt index ddacb09c8..1c61be581 100644 --- a/Source/core/CMakeLists.txt +++ b/Source/core/CMakeLists.txt @@ -248,7 +248,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ #core.h - $) + $) if(LIBRT_FOUND) target_link_libraries(${TARGET} diff --git a/Source/cryptalgo/CMakeLists.txt b/Source/cryptalgo/CMakeLists.txt index eb42f04f6..2ca25af8c 100644 --- a/Source/cryptalgo/CMakeLists.txt +++ b/Source/cryptalgo/CMakeLists.txt @@ -81,7 +81,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) install( diff --git a/Source/extensions/warningreporting/CMakeLists.txt b/Source/extensions/warningreporting/CMakeLists.txt index 4e751ac72..c7f9d5f36 100644 --- a/Source/extensions/warningreporting/CMakeLists.txt +++ b/Source/extensions/warningreporting/CMakeLists.txt @@ -57,7 +57,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) install( diff --git a/Source/messaging/CMakeLists.txt b/Source/messaging/CMakeLists.txt index d8125bc44..e190eda82 100644 --- a/Source/messaging/CMakeLists.txt +++ b/Source/messaging/CMakeLists.txt @@ -72,7 +72,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) install( @@ -95,8 +95,8 @@ include(CreateLink) InstallCompatibleCMakeConfig( TARGET ${TARGET} LEGACY_TARGET ${NAMESPACE}Tracing - LEGACY_INCLUDE_DIR "include/${NAMESPACE}" - LEGACY_PUBLIC_HEADER_LOCATION "include/${NAMESPACE}/tracing") + LEGACY_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}" + LEGACY_PUBLIC_HEADER_LOCATION "${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/tracing") createlink( LINK ${CMAKE_CURRENT_BINARY_DIR}/tracing.h diff --git a/Source/plugins/CMakeLists.txt b/Source/plugins/CMakeLists.txt index d97383671..a018bbc2f 100644 --- a/Source/plugins/CMakeLists.txt +++ b/Source/plugins/CMakeLists.txt @@ -111,7 +111,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) target_include_directories( ${TARGET_PROXYSTUBS} diff --git a/Source/websocket/CMakeLists.txt b/Source/websocket/CMakeLists.txt index 2f39a23b1..2a571b06e 100644 --- a/Source/websocket/CMakeLists.txt +++ b/Source/websocket/CMakeLists.txt @@ -71,7 +71,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) install( From d0cdc1e0e16fb36f7e26972d0f5d4c1abdc90973 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 16:31:51 +0200 Subject: [PATCH 2/9] cmake: find templates relative to the helper functions file --- cmake/common/CmakeHelperFunctions.cmake | 26 +++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/cmake/common/CmakeHelperFunctions.cmake b/cmake/common/CmakeHelperFunctions.cmake index 78fd3b245..5239f60f2 100644 --- a/cmake/common/CmakeHelperFunctions.cmake +++ b/cmake/common/CmakeHelperFunctions.cmake @@ -18,6 +18,8 @@ include(CMakePackageConfigHelpers) include(GNUInstallDirs) +set(TEMPLATES_LOCATION_RELATIVE_FROM_ME "${CMAKE_CURRENT_LIST_DIR}/../templates/" CACHE INTERNAL "relative location to the templates from this file") + macro(add_element list element) list(APPEND ${list} ${element}) endmacro() @@ -317,7 +319,11 @@ function(InstallCMakeConfig) if("${Argument_TEMPLATE}" STREQUAL "") find_file( _config_template NAMES "defaultConfig.cmake.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH @@ -327,7 +333,11 @@ function(InstallCMakeConfig) find_file(_config_template NAMES "defaultConfig.cmake.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" ) + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" ) if(NOT EXISTS "${_config_template}") message(SEND_ERROR "Config file generation failed, template '${_config_template}' not found") @@ -480,7 +490,11 @@ function(InstallPackageConfig) if("${Argument_TEMPLATE}" STREQUAL "") find_file( _pc_template NAMES "default.pc.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH @@ -490,7 +504,11 @@ function(InstallPackageConfig) find_file(_pc_template NAMES "default.pc.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates") + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates") if(NOT EXISTS "${_pc_template}") message(SEND_ERROR "PC file generation failed, template '${_pc_template}' not found") From c484bfa9efbebb1f441da1941fc9b8cc3e2399c5 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 16:59:41 +0200 Subject: [PATCH 3/9] cmake: find templates relative to the header only install function file --- cmake/common/HeaderOnlyInstall.cmake | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/cmake/common/HeaderOnlyInstall.cmake b/cmake/common/HeaderOnlyInstall.cmake index e2f569682..2b3dc3cea 100644 --- a/cmake/common/HeaderOnlyInstall.cmake +++ b/cmake/common/HeaderOnlyInstall.cmake @@ -1,3 +1,5 @@ +set(TEMPLATES_LOCATION_RELATIVE_FROM_ME "${CMAKE_CURRENT_LIST_DIR}/../templates/" CACHE INTERNAL "relative location to the templates from this file") + function(HeaderOnlyInstallCMakeConfig) set(optionsArgs NO_SKIP_INTERFACE_LIBRARIES, TREAT_AS_NORMAL) set(oneValueArgs LOCATION TEMPLATE TARGET) @@ -21,7 +23,11 @@ function(HeaderOnlyInstallCMakeConfig) if("${Argument_TEMPLATE}" STREQUAL "") find_file( _config_template NAMES "defaultConfig.cmake.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH @@ -31,7 +37,11 @@ function(HeaderOnlyInstallCMakeConfig) find_file(_config_template NAMES "defaultConfig.cmake.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" ) + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" ) if(NOT EXISTS "${_config_template}") message(SEND_ERROR "Config file generation failed, template '${_config_template}' not found") @@ -174,7 +184,11 @@ function(HeaderOnlyInstallPackageConfig) if("${Argument_TEMPLATE}" STREQUAL "") find_file( _pc_template NAMES "default.pc.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" NO_DEFAULT_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_PATH @@ -184,7 +198,11 @@ function(HeaderOnlyInstallPackageConfig) find_file(_pc_template NAMES "default.pc.in" - PATHS "${PROJECT_SOURCE_DIR}/cmake/templates" "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates") + PATHS + "${TEMPLATES_LOCATION_RELATIVE_FROM_ME}" + "${PROJECT_SOURCE_DIR}/cmake/templates" + "${CMAKE_SYSROOT}/usr/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates" + "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/templates") if(NOT EXISTS "${_pc_template}") message(SEND_ERROR "PC file generation failed, template '${_pc_template}' not found") From bf5bfc945152f50bdd919dd2eb307a75d4c2c74e Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 17:07:14 +0200 Subject: [PATCH 4/9] cmake: local source path should not be dynamic --- Source/extensions/localtracer/CMakeLists.txt | 2 +- Source/extensions/privilegedrequest/CMakeLists.txt | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Source/extensions/localtracer/CMakeLists.txt b/Source/extensions/localtracer/CMakeLists.txt index a978c7e84..d51548ac5 100644 --- a/Source/extensions/localtracer/CMakeLists.txt +++ b/Source/extensions/localtracer/CMakeLists.txt @@ -25,7 +25,7 @@ target_compile_features(${MODULE_NAME} INTERFACE cxx_std_11) install(TARGETS ${MODULE_NAME} EXPORT ${MODULE_NAME}Targets) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/localtracer/localtracer.h +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/localtracer/localtracer.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/localtracer COMPONENT ${NAMESPACE}_Development) include(HeaderOnlyInstall) diff --git a/Source/extensions/privilegedrequest/CMakeLists.txt b/Source/extensions/privilegedrequest/CMakeLists.txt index a64eb7e6d..21369ce91 100644 --- a/Source/extensions/privilegedrequest/CMakeLists.txt +++ b/Source/extensions/privilegedrequest/CMakeLists.txt @@ -39,8 +39,7 @@ target_compile_features(${MODULE_NAME} INTERFACE cxx_std_11) install(TARGETS ${MODULE_NAME} EXPORT ${MODULE_NAME}Targets) -install(FILES - ${CMAKE_CURRENT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/privilegedrequest/PrivilegedRequest.h +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/privilegedrequest/PrivilegedRequest.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${NAMESPACE}/privilegedrequest COMPONENT ${NAMESPACE}_Development) include(HeaderOnlyInstall) From c7cc50ab0e1777bfd7029e15de3f6aab2b0b6c0f Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 21:01:55 +0200 Subject: [PATCH 5/9] cmake: add component definitions --- cmake/common/CmakeHelperFunctions.cmake | 13 ++++++++----- cmake/common/HeaderOnlyInstall.cmake | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cmake/common/CmakeHelperFunctions.cmake b/cmake/common/CmakeHelperFunctions.cmake index 5239f60f2..c071e235d 100644 --- a/cmake/common/CmakeHelperFunctions.cmake +++ b/cmake/common/CmakeHelperFunctions.cmake @@ -467,12 +467,14 @@ function(InstallCMakeConfig) install(EXPORT "${_target}Targets" FILE "${_name}Targets.cmake" NAMESPACE "${_name}::" - DESTINATION "${_install_path}/${_name}") + DESTINATION "${_install_path}/${_name}" + COMPONENT ${NAMESPACE}_Development) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_name}ConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${_name}Config.cmake" - DESTINATION "${_install_path}/${_name}") + DESTINATION "${_install_path}/${_name}" + COMPONENT ${NAMESPACE}_Development) endforeach() endfunction(InstallCMakeConfig) @@ -633,7 +635,8 @@ function(InstallPackageConfig) @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_pc_filename}" - DESTINATION "${_install_path}") + DESTINATION "${_install_path}" + COMPONENT ${NAMESPACE}_Development) endforeach() endfunction(InstallPackageConfig) @@ -656,11 +659,11 @@ function(InstallFindModule) else() file(GLOB_RECURSE extra_files "${DIRECTORY}/*.cmake") endif(Argument_RECURSE) - install(FILES "${extra_files}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/modules) + install(FILES "${extra_files}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/modules COMPONENT ${NAMESPACE}_Development) endif() if (Argument_FILES) - install(FILES "${Argument_FILES}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/modules) + install(FILES "${Argument_FILES}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAMESPACE}/modules COMPONENT ${NAMESPACE}_Development) endif() endfunction(InstallFindModule) diff --git a/cmake/common/HeaderOnlyInstall.cmake b/cmake/common/HeaderOnlyInstall.cmake index 2b3dc3cea..53e0f8498 100644 --- a/cmake/common/HeaderOnlyInstall.cmake +++ b/cmake/common/HeaderOnlyInstall.cmake @@ -11,7 +11,7 @@ function(HeaderOnlyInstallCMakeConfig) message(FATAL_ERROR "Unknown keywords given to HeaderOnlyInstallCMakeConfig(): \"${Argument_UNPARSED_ARGUMENTS}\"") endif() - set(_install_path "lib/cmake") # default path + set(_install_path "${CMAKE_INSTALL_LIBDIR}/cmake") # default path set(TARGET ${Argument_TARGET}) set(NAME ${Argument_NAME}) @@ -161,12 +161,14 @@ function(HeaderOnlyInstallCMakeConfig) EXPORT "${TARGET}Targets" FILE "${_name}Targets.cmake" NAMESPACE "${_name}::" - DESTINATION "${_install_path}/${_name}") + DESTINATION "${_install_path}/${_name}" + COMPONENT ${NAMESPACE}_Development) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_name}ConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${_name}Config.cmake" - DESTINATION "${_install_path}/${_name}") + DESTINATION "${_install_path}/${_name}" + COMPONENT ${NAMESPACE}_Development) endfunction(HeaderOnlyInstallCMakeConfig) @@ -247,7 +249,7 @@ function(HeaderOnlyInstallPackageConfig) endif() # Default path on UNIX, if you want Windows or Apple support add the path here. ;-) - set(_install_path "lib/pkgconfig") + set(_install_path "${CMAKE_INSTALL_LIBDIR}/pkgconfig") if (${Argument_OUTPUT_NAME}) set(_pc_filename ${Argument_OUTPUT_NAME}) @@ -319,5 +321,6 @@ function(HeaderOnlyInstallPackageConfig) @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_pc_filename}" - DESTINATION "${_install_path}") + DESTINATION "${_install_path}" + COMPONENT ${NAMESPACE}_Development) endfunction(HeaderOnlyInstallPackageConfig) From 2633423509a367073bfe32e7570abb9cd9c7f178 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Mon, 1 Jul 2024 21:02:49 +0200 Subject: [PATCH 6/9] cmake: move to dynamic cmake paths --- Source/extensions/processcontainers/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/extensions/processcontainers/CMakeLists.txt b/Source/extensions/processcontainers/CMakeLists.txt index 996b13834..b25939a34 100644 --- a/Source/extensions/processcontainers/CMakeLists.txt +++ b/Source/extensions/processcontainers/CMakeLists.txt @@ -85,7 +85,7 @@ target_include_directories( ${TARGET} PUBLIC $ $ - $ + $ ) if (PROCESSCONTAINERS_LXC) From 83459a0d3de9e6960ab1eca941a1850d9160cdb2 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Tue, 2 Jul 2024 14:19:02 +0200 Subject: [PATCH 7/9] docs: remove note --- docs/introduction/intro.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/introduction/intro.md b/docs/introduction/intro.md index 3e2ed0d8e..d343b1429 100644 --- a/docs/introduction/intro.md +++ b/docs/introduction/intro.md @@ -1,6 +1,4 @@ # What is Thunder? -!!! note - The terms "**Thunder**" and "**Thunder**" may be used interchangeably throughout this documentation. The project was originally known as Thunder (since it was developed by the Web Platform for Embedded, or WPE, team). The name was changed to Thunder when it was incorporated into RDK, but the code still uses the name Thunder internally. ## Introduction From 6257c48c9b190b5833b8b5ffa50688046695a260 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Tue, 2 Jul 2024 14:24:45 +0200 Subject: [PATCH 8/9] docs: add missing package --- docs/introduction/build_linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/introduction/build_linux.md b/docs/introduction/build_linux.md index c8ccb5373..d677a310f 100644 --- a/docs/introduction/build_linux.md +++ b/docs/introduction/build_linux.md @@ -16,7 +16,7 @@ The following instructions will use the `CMAKE_INSTALL_PREFIX` option to install These instructions are based on Ubuntu 22.04 - you may need to change this for your distros package manager ``` -sudo apt install build-essential cmake ninja-build libusb-1.0-0-dev zlib1g-dev libssl-dev +sudo apt install build-essential pkg-config cmake ninja-build libusb-1.0-0-dev zlib1g-dev libssl-dev ``` Thunder also uses Python 3 for code and documentation generation scripts. Ensure you have at least **Python 3.5** installed and install the [**jsonref**](https://pypi.org/project/jsonref/) library with pip: From f9d20506c9f8f0787a883115df0005eb5f233de3 Mon Sep 17 00:00:00 2001 From: Bram Oosterhuis Date: Tue, 2 Jul 2024 14:33:38 +0200 Subject: [PATCH 9/9] docs: cleanup double thunder --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49ff9dbae..b04266727 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![Linux Build](https://github.com/rdkcentral/Thunder/actions/workflows/Build%20Thunder%20on%20Linux.yml/badge.svg) ![Windows Build](https://github.com/rdkcentral/Thunder/actions/workflows/Build%20Thunder%20on%20Windows.yml/badge.svg) ![Unit Test](https://github.com/rdkcentral/Thunder/actions/workflows/Test%20Thunder.yml/badge.svg) -Thunder (also known as Thunder) is an open-source plugin-based device abstraction layer, where business functionality can be implemented as plugins and applications can query and control those plugins. Using Thunder provides a consistent interface-driven development model for both plugins and client applications, with an RPC engine that is suited to both web-based and native apps. +Thunder is an open-source plugin-based device abstraction layer, where business functionality can be implemented as plugins and applications can query and control those plugins. Using Thunder provides a consistent interface-driven development model for both plugins and client applications, with an RPC engine that is suited to both web-based and native apps. Designed from the ground up for embedded platforms and written in C++11, Thunder can be run on even the most low-power of devices (including ARM and MIPS-based platforms).