Skip to content

Commit

Permalink
Fix shell app build; separate project configs for each project; add Q…
Browse files Browse the repository at this point in the history
…PG shell app to CI (#15467)
  • Loading branch information
lucicop authored and pull[bot] committed Jul 19, 2023
1 parent d413461 commit 7561747
Show file tree
Hide file tree
Showing 20 changed files with 752 additions and 87 deletions.
31 changes: 8 additions & 23 deletions .github/workflows/examples-qpg.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,31 +65,16 @@ jobs:
path: |
.environment/gn_out/.ninja_log
.environment/pigweed-venv/*.log
- name: Build example QPG6105 Lock App
- name: Build QPG6105 example apps
timeout-minutes: 5
run: |
scripts/examples/gn_build_example.sh examples/lock-app/qpg out/lock_app_debug qpg_target_ic=\"qpg6105\"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
qpg qpg6105+debug lock-app \
out/lock_app_debug/chip-qpg6105-lock-example.out \
/tmp/bloat_reports/
- name: Build example QPG6105 Lighting App
timeout-minutes: 5
run: |
scripts/examples/gn_build_example.sh examples/lighting-app/qpg out/lighting_app_debug qpg_target_ic=\"qpg6105\"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
qpg qpg6105+debug lighting-app \
out/lighting_app_debug/chip-qpg6105-lighting-example.out \
/tmp/bloat_reports/
- name: Build example QPG6105 persistent-storage
timeout-minutes: 5
run: |
scripts/examples/gn_build_example.sh examples/persistent-storage/qpg out/persistent-storage_app_debug \
qpg_target_ic=\"qpg6105\"
.environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
qpg qpg6105+debug persistent-storage-app \
out/persistent-storage_app_debug/chip-qpg6105-persistent_storage-example.out \
/tmp/bloat_reports/
./scripts/run_in_build_env.sh \
"./scripts/build/build_examples.py \
--enable-flashbundle \
--target-glob 'qpg6105-{lock,light,shell,persistent-storage}' \
build \
--copy-artifacts-to out/artifacts \
"
- name: Build Matter SDK library
timeout-minutes: 5
run: |
Expand Down
5 changes: 3 additions & 2 deletions config/qpg/chip-gn/args.gni
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ chip_mdns = "platform"
# INCLUDE_xSemaphoreGetMutexHolder
chip_stack_lock_tracking = "none"

chip_project_config_include_dirs =
[ "//examples/platform/qpg/project_include/" ]
# Using lighting-app as template config
# Application specific override to be done as cmd line arg
chip_project_config_include_dirs = [ "//examples/lighting-app/qpg/include" ]
chip_project_config_include = "<CHIPProjectConfig.h>"
chip_system_project_config_include = "<CHIPProjectConfig.h>"
chip_ble_project_config_include = ""
Expand Down
5 changes: 2 additions & 3 deletions examples/lighting-app/qpg/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,14 @@ if (chip_enable_pw_rpc) {

assert(current_os == "freertos")

qpg_project_dir = "${chip_root}/examples/lighting-app/qpg"
examples_plat_dir = "${chip_root}/examples/platform/qpg"

qpg_sdk("sdk") {
sources = [ "${examples_plat_dir}/project_include/CHIPProjectConfig.h" ]

include_dirs = [
"${chip_root}/src/platform/qpg",
"${examples_plat_dir}",
"${examples_plat_dir}/project_include",
"${qpg_project_dir}/include",
]

if (chip_enable_pw_rpc) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@
#pragma once

// Use a default setup PIN code if one hasn't been provisioned in flash.
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
#endif
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00

// Use a default pairing code if one hasn't been provisioned in flash.
#define CHIP_DEVICE_CONFIG_USE_TEST_PAIRING_CODE "CHIPUS"
#endif

// For convenience, enable Chip Security Test Mode and disable the requirement for
// authentication in various protocols.
Expand All @@ -42,19 +43,19 @@
// including message encryption. Because of this they MUST NEVER BE ENABLED IN PRODUCTION BUILDS.
//
#define CHIP_CONFIG_SECURITY_TEST_MODE 0
#define CHIP_CONFIG_REQUIRE_AUTH 0
#define CHIP_CONFIG_REQUIRE_AUTH 1

/**
* CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
*
* 0xFFF1: Test vendor
* 0xFFF1: Test vendor.
*/
#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1

/**
* CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
*
* 0x8005: example lighting-app
* 0x8005: example lighting app
*/
#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8005

Expand Down
5 changes: 2 additions & 3 deletions examples/lock-app/qpg/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,14 @@ if (chip_enable_pw_rpc) {

assert(current_os == "freertos")

qpg_project_dir = "${chip_root}/examples/lock-app/qpg"
examples_plat_dir = "${chip_root}/examples/platform/qpg"

qpg_sdk("sdk") {
sources = [ "${examples_plat_dir}/project_include/CHIPProjectConfig.h" ]

include_dirs = [
"${chip_root}/src/platform/qpg",
"${examples_plat_dir}",
"${examples_plat_dir}/project_include",
"${qpg_project_dir}/include",
]

if (chip_enable_pw_rpc) {
Expand Down
183 changes: 183 additions & 0 deletions examples/lock-app/qpg/include/CHIPProjectConfig.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
/*
*
* Copyright (c) 2020 Project CHIP Authors
* Copyright (c) 2019 Google LLC.
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/**
* @file
* Example project configuration file for CHIP.
*
* This is a place to put application or project-specific overrides
* to the default configuration values for general CHIP features.
*
*/

#pragma once

// Use a default setup PIN code if one hasn't been provisioned in flash.
#ifndef CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_PIN_CODE 20202021
#endif
#define CHIP_DEVICE_CONFIG_USE_TEST_SETUP_DISCRIMINATOR 0xF00

// For convenience, enable Chip Security Test Mode and disable the requirement for
// authentication in various protocols.
//
// WARNING: These options make it possible to circumvent basic Chip security functionality,
// including message encryption. Because of this they MUST NEVER BE ENABLED IN PRODUCTION BUILDS.
//
#define CHIP_CONFIG_SECURITY_TEST_MODE 0
#define CHIP_CONFIG_REQUIRE_AUTH 1

/**
* CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID
*
* 0xFFF1: Test vendor.
*/
#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 0xFFF1

/**
* CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
*
* 0x8006: example lock-app
*/
#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 0x8006

/**
* CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION
*
* The hardware version number assigned to device or product by the device vendor. This
* number is scoped to the device product id, and typically corresponds to a revision of the
* physical device, a change to its packaging, and/or a change to its marketing presentation.
* This value is generally *not* incremented for device software versions.
*/
#define CHIP_DEVICE_CONFIG_DEVICE_HARDWARE_VERSION 1

/**
* CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
*
* A string identifying the software version running on the device.
* CHIP service currently expects the software version to be in the format
* {MAJOR_VERSION}.0d{MINOR_VERSION}
*/
#ifndef CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING
#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING "0.1ALPHA"
#endif
/**
* CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE
*
* Enable support for Chip-over-BLE (CHIPoBLE).
*/
#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1

/**
* CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
*
* Enables synchronizing the device's real time clock with a remote Chip Time service
* using the Chip Time Sync protocol.
*/
#define CHIP_DEVICE_CONFIG_ENABLE_CHIP_TIME_SERVICE_TIME_SYNC 0

/**
* CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER
*
* Enables the use of a hard-coded default serial number if none
* is found in Chip NV storage.
*/
#define CHIP_DEVICE_CONFIG_TEST_SERIAL_NUMBER "TEST_SN"

/**
* CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE
*
* A size, in bytes, of the individual debug event logging buffer.
*/
#define CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE (512)

/**
* CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI
*
* Enable Thread CLI interface at initialisation.
*/
#define CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI 1

/**
* @def CHIP_CONFIG_MAX_FABRICS
*
* @brief
* Maximum number of fabrics the device can participate in. Each fabric can
* provision the device with its unique operational credentials and manage
* its own access control lists.
*/
#define CHIP_CONFIG_MAX_FABRICS 4 // 3 fabrics + 1 for rotation slack

/**
* @name Interaction Model object pool configuration.
*
* @brief
* The following definitions sets the maximum number of corresponding interaction model object pool size.
*
* * #CHIP_IM_MAX_NUM_COMMAND_HANDLER
* * #CHIP_IM_MAX_NUM_READ_HANDLER
* * #CHIP_IM_MAX_REPORTS_IN_FLIGHT
* * #CHIP_IM_SERVER_MAX_NUM_PATH_GROUPS
* * #CHIP_IM_MAX_NUM_WRITE_HANDLER
* * #CHIP_IM_MAX_NUM_WRITE_CLIENT
*
* @{
*/

/**
* @def CHIP_IM_MAX_NUM_COMMAND_HANDLER
*
* @brief Defines the maximum number of CommandHandler, limits the number of active commands transactions on server.
*/
#define CHIP_IM_MAX_NUM_COMMAND_HANDLER 2

/**
* @def CHIP_IM_MAX_NUM_READ_HANDLER
*
* @brief Defines the maximum number of ReadHandler, limits the number of active read transactions on server.
*/
#define CHIP_IM_MAX_NUM_READ_HANDLER 3

/**
* @def CHIP_IM_MAX_REPORTS_IN_FLIGHT
*
* @brief Defines the maximum number of Reports, limits the traffic of read and subscription transactions.
*/
#define CHIP_IM_MAX_REPORTS_IN_FLIGHT 2

/**
* @def CHIP_IM_SERVER_MAX_NUM_PATH_GROUPS
*
* @brief Defines the maximum number of path objects, limits the number of attributes being read or subscribed at the same time.
*/
#define CHIP_IM_SERVER_MAX_NUM_PATH_GROUPS 9

/**
* @def CHIP_IM_MAX_NUM_WRITE_HANDLER
*
* @brief Defines the maximum number of WriteHandler, limits the number of active write transactions on server.
*/
#define CHIP_IM_MAX_NUM_WRITE_HANDLER 2

/**
* @def CHIP_IM_MAX_NUM_WRITE_CLIENT
*
* @brief Defines the maximum number of WriteClient, limits the number of active write transactions on client.
*/
#define CHIP_IM_MAX_NUM_WRITE_CLIENT 2
11 changes: 3 additions & 8 deletions examples/persistent-storage/qpg/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,12 @@ examples_plat_dir = "${chip_root}/examples/platform/qpg"
qpg_sdk("sdk") {
include_dirs = [
"${chip_root}/src/platform/qpg",
"${examples_plat_dir}/project_include",
"${qpg_project_dir}/include",
]

sources = [ "${examples_plat_dir}/project_include/CHIPProjectConfig.h" ]

defines = []
}

qpg_executable("persistent_storage") {
qpg_executable("persistent_storage_app") {
include_dirs = [ "${qpg_project_dir}/.." ]
defines = []
output_name = "chip-${qpg_target_ic}-persistent_storage-example.out"

deps = []
Expand Down Expand Up @@ -70,7 +65,7 @@ qpg_executable("persistent_storage") {
}

group("qpg") {
deps = [ ":persistent_storage" ]
deps = [ ":persistent_storage_app" ]
}

group("default") {
Expand Down
Loading

0 comments on commit 7561747

Please sign in to comment.