Build Matter Light Bulb using ZAP auto generated files dynamically

  

        Sorry for the inconvenience!

        I have downloaded V2.8.0 nRF SDK, and I use this command to build light bulb project:

        west build -p always --build-dir nrf/samples/matter/light_bulb/build -b nrf52840dk_nrf52840 nrf/samples/matter/light_bulb

        It can build pass! But I noticed that bulb project used zap generated files, I want to auto generate zap files in the build flow(that means generating code files by light_bulb.zap dynamically), could you tell me how can I do?

        Furthermore, I have noticed the macro("BYPASS_IDL") in cmake file is TRUE, so it skip auto generate flow, how can I set it to FALSE?

        chip_configure_data_model(app
               INCLUDE_SERVER
               BYPASS_IDL
               GEN_DIR ${CONFIG_NCS_SAMPLE_MATTER_ZAP_FILES_PATH}/zap-generated
               ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_NCS_SAMPLE_MATTER_ZAP_FILES_PATH}/light_bulb.zap
        )

BR

Chuan

        

Parents
  • Hi Chuan,

    When you remove BYPASS_IDL, the chip_configure_data_model() function tries to generate source files from a .matter IDL file, but it cannot find the .matter file. You must provide it using the IDL option, for example:

    chip_configure_data_model(app
        INCLUDE_SERVER
        GEN_DIR ${CONFIG_NCS_SAMPLE_MATTER_ZAP_FILES_PATH}/zap-generated
        ZAP_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${CONFIG_NCS_SAMPLE_MATTER_ZAP_FILES_PATH}/light_bulb.zap
        IDL ${CMAKE_CURRENT_SOURCE_DIR}/src/light_bulb.matter
    )

    Please note that you need to have zap-cli installed, and the installed version must match the version used in the SDK you are using. If not, you will get an error when it tries to generate the zap files.
    You can install it by running the following in modules/lib/matter:

    python3 scripts/setup/nrfconnect/get_zap.py -l <location_path> -o

    Best regards,
    Marte

  •  

            What is '<location_path>' ?

            When I run this command, there's no result output, is it reasonable?

            

    @PC21040223 MINGW64 /c/ncs/v2.8.0
    $ cd modules/lib/matter/

    @PC21040223 MINGW64 /c/ncs/v2.8.0/modules/lib/matter ((v2.8.0))
    $ python3 scripts/setup/nrfconnect/get_zap.py -l zap_path -o

    @PC21040223 MINGW64 /c/ncs/v2.8.0/modules/lib/matter ((v2.8.0))
    $

  • Hi,

    susepc said:
    What is '<location_path>' ?

    <location_path> is where you want to install zap-cli.

    susepc said:
    When I run this command, there's no result output, is it reasonable?

    You should get an output showing which version you have installed if it is already installed or an output showing that it gets installed, like this:

    You can also see this in Installing the ZAP tool.

    Please note that this documentation is from nRF Connect SDK v2.6.2. This is because this is how the ZAP tool was installed previously. From v2.7.0 and on, the ZAP commands are provided as west commands. However, when testing, I found that not having zap-cli installed resulted in errors when trying to generate the files by removing BYPASS_IDL.

    Best regards,
    Marte

  •   

            Yes, when omit BYPASS_IDL, I'll meet build error too.

            So Nordic do not support ZAP auto generate(omit BYPASS_IDL) in the build flow? And user must use zap tool to generate files manually?

    BR

    Chuan

Reply Children
No Data
Related