# Copyright (c) 2022 Project CHIP Authors
#
# 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.

[metadata]
name = matter_idl
version = 0.0.1
author = Project CHIP Authors
description = Parse matter idl files

[options]
packages = find:
zip_safe = False

[options.package_data]
matter_idl =
    lint/lint_rules_grammar.lark
    matter_grammar.lark
    generators/java/ChipClustersRead.jinja
    generators/java/ChipClustersCpp.jinja
    generators/cpp/application/CallbackStubSource.jinja
    generators/cpp/application/PluginApplicationCallbacksHeader.jinja
    generators/bridge/BridgeClustersHeader.jinja
    generators/bridge/BridgeClustersCommon.jinja
    generators/bridge/BridgeClustersCpp.jinja
    generators/bridge/BridgeClustersGlobalStructs.jinja
