Skip to content

Commit a4530cb

Browse files
Parametrize app-common zap-generated path (project-chip#37816)
* [app] Parametrize app-common zap-generated path Parametrize app-common zap-generated path to allow building Matter using custom generated zap files stored in different path. When user adds custom clusters, full zap regeneration is needed. Storing these files in fixed place requires regeneration every time user wants to build different project (with different clusters). This commit allows to store zap-generated files separately and provide their path by seting `CHIP_APP_ZAP_DIR` cmake and `chip_app_zap_dir` GN flags. Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no> * [nrfconnect] Allow switching `CHIP_APP_ZAP_DIR` by cmake. Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no> --------- Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
1 parent 8c011e0 commit a4530cb

File tree

5 files changed

+30
-12
lines changed

5 files changed

+30
-12
lines changed

config/common/cmake/chip_gn.cmake

+5-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ if (NOT CHIP_ROOT)
3636
get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../.. REALPATH)
3737
endif()
3838

39+
if (NOT CHIP_APP_ZAP_DIR)
40+
get_filename_component(CHIP_APP_ZAP_DIR ${CHIP_ROOT}/zzz_generated/app-common REALPATH)
41+
endif()
42+
3943
# ==============================================================================
4044
# Find required programs
4145
# ==============================================================================
@@ -165,7 +169,7 @@ macro(matter_build target)
165169
${CHIP_ROOT}/third_party/nlassert/repo/include
166170
${CHIP_ROOT}/third_party/nlio/repo/include
167171
${CHIP_ROOT}/third_party/nlfaultinjection/include
168-
${CHIP_ROOT}/zzz_generated/app-common
172+
${CHIP_APP_ZAP_DIR}
169173
${CMAKE_CURRENT_BINARY_DIR}/gen/include
170174
)
171175

config/nrfconnect/chip-module/CMakeLists.txt

+6
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ include(generate_factory_data.cmake)
4141
if (NOT CHIP_ROOT)
4242
get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../.. REALPATH)
4343
endif()
44+
45+
if (NOT CHIP_APP_ZAP_DIR)
46+
get_filename_component(CHIP_APP_ZAP_DIR ${CHIP_ROOT}/zzz_generated/app-common REALPATH)
47+
endif()
48+
4449
get_filename_component(GN_ROOT_TARGET ${CHIP_ROOT}/config/nrfconnect/chip-gn REALPATH)
4550
get_filename_component(COMMON_CMAKE_SOURCE_DIR ${CHIP_ROOT}/config/common/cmake REALPATH)
4651

@@ -132,6 +137,7 @@ matter_common_gn_args(
132137
matter_add_gn_arg_string("zephyr_ar" ${CMAKE_AR})
133138
matter_add_gn_arg_string("zephyr_cc" ${CMAKE_C_COMPILER})
134139
matter_add_gn_arg_string("zephyr_cxx" ${CMAKE_CXX_COMPILER})
140+
matter_add_gn_arg_string("chip_app_zap_dir" ${CHIP_APP_ZAP_DIR})
135141
matter_add_gn_arg_bool ("chip_logging" CONFIG_LOG)
136142
matter_add_gn_arg_bool ("chip_enable_openthread" CONFIG_NET_L2_OPENTHREAD)
137143
matter_add_gn_arg_bool ("chip_openthread_ftd" CONFIG_OPENTHREAD_FTD)

src/app/chip_data_model.cmake

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616

1717
set(CHIP_APP_BASE_DIR ${CMAKE_CURRENT_LIST_DIR})
1818

19+
if (NOT CHIP_APP_ZAP_DIR)
20+
get_filename_component(CHIP_APP_ZAP_DIR ${CHIP_ROOT}/zzz_generated/app-common REALPATH)
21+
endif()
22+
1923
include("${CHIP_ROOT}/build/chip/chip_codegen.cmake")
2024
include("${CHIP_ROOT}/src/data-model-providers/codegen/model.cmake")
2125

@@ -144,7 +148,7 @@ function(chip_configure_data_model APP_TARGET)
144148
add_dependencies(${APP_TARGET} ${APP_TARGET}-zapgen)
145149

146150
target_sources(${APP_TARGET} ${SCOPE}
147-
${CHIP_APP_BASE_DIR}/../../zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp
151+
${CHIP_APP_ZAP_DIR}/app-common/zap-generated/attributes/Accessors.cpp
148152
${CHIP_APP_BASE_DIR}/reporting/reporting.cpp
149153
${CHIP_APP_BASE_DIR}/util/attribute-storage.cpp
150154
${CHIP_APP_BASE_DIR}/util/attribute-table.cpp

src/app/common/BUILD.gn

+11-10
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,24 @@
1313
# limitations under the License.
1414

1515
import("//build_overrides/chip.gni")
16+
import("${chip_root}/src/app/common_flags.gni")
1617

1718
config("includes") {
18-
include_dirs = [ "${chip_root}/zzz_generated/app-common" ]
19+
include_dirs = [ "${chip_app_zap_dir}" ]
1920
}
2021

2122
source_set("attribute-type") {
22-
sources = [ "${chip_root}/zzz_generated/app-common/app-common/zap-generated/attribute-type.h" ]
23+
sources = [ "${chip_app_zap_dir}/app-common/zap-generated/attribute-type.h" ]
2324

2425
public_configs = [ ":includes" ]
2526
}
2627

2728
source_set("ids") {
2829
sources = [
29-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/ids/Attributes.h",
30-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/ids/Clusters.h",
31-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/ids/Commands.h",
32-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/ids/Events.h",
30+
"${chip_app_zap_dir}/app-common/zap-generated/ids/Attributes.h",
31+
"${chip_app_zap_dir}/app-common/zap-generated/ids/Clusters.h",
32+
"${chip_app_zap_dir}/app-common/zap-generated/ids/Commands.h",
33+
"${chip_app_zap_dir}/app-common/zap-generated/ids/Events.h",
3334
]
3435

3536
public_deps = [ "${chip_root}/src/app/util:types" ]
@@ -41,8 +42,8 @@ static_library("cluster-objects") {
4142
output_name = "libClusterObjects"
4243

4344
sources = [
44-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp",
45-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h",
45+
"${chip_app_zap_dir}/app-common/zap-generated/cluster-objects.cpp",
46+
"${chip_app_zap_dir}/app-common/zap-generated/cluster-objects.h",
4647
]
4748

4849
public_deps = [
@@ -61,8 +62,8 @@ static_library("cluster-objects") {
6162

6263
source_set("enums") {
6364
sources = [
64-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h",
65-
"${chip_root}/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h",
65+
"${chip_app_zap_dir}/app-common/zap-generated/cluster-enums-check.h",
66+
"${chip_app_zap_dir}/app-common/zap-generated/cluster-enums.h",
6667
"CompatEnumNames.h",
6768
]
6869

src/app/common_flags.gni

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ declare_args() {
2525
# communicated to OperationalSessionSetup API consumers.
2626
chip_enable_busy_handling_for_operational_session_setup = true
2727

28+
# Flag that sets path to zap-generated app-common directory
29+
chip_app_zap_dir = chip_root + "/zzz_generated/app-common"
30+
2831
# Controls whether the device commissioning process requires the user to
2932
# acknowledge terms and conditions during commissioning.
3033
chip_terms_and_conditions_required = false

0 commit comments

Comments
 (0)