# Copyright (c) 2021 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.

import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")

import("$dir_pw_build/python.gni")
import("${chip_root}/build/chip/chip_codegen.gni")
import("${chip_root}/build/chip/java/config.gni")
import("${chip_root}/src/app/chip_data_model.gni")

chip_data_model("data_model") {
  zap_file = "controller-clusters.zap"

  zap_pregenerated_dir =
      "${chip_root}/zzz_generated/controller-clusters/zap-generated"

  allow_circular_includes_from = [ "${chip_root}/src/controller" ]
}

if (current_os == "android" || build_java_matter_controller) {
  config("java-build-config") {
    if (build_java_matter_controller) {
      include_dirs = java_matter_controller_dependent_paths
    }
  }

  chip_codegen("java-jni-generate") {
    input = "controller-clusters.matter"
    generator = "java-jni"

    outputs = [
      "jni/AccessControlClient-InvokeSubscribeImpl.cpp",
      "jni/AccessControlClient-ReadImpl.cpp",
      "jni/AccountLoginClient-InvokeSubscribeImpl.cpp",
      "jni/AccountLoginClient-ReadImpl.cpp",
      "jni/ActionsClient-InvokeSubscribeImpl.cpp",
      "jni/ActionsClient-ReadImpl.cpp",
      "jni/ActivatedCarbonFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/ActivatedCarbonFilterMonitoringClient-ReadImpl.cpp",
      "jni/AdministratorCommissioningClient-InvokeSubscribeImpl.cpp",
      "jni/AdministratorCommissioningClient-ReadImpl.cpp",
      "jni/AirQualityClient-InvokeSubscribeImpl.cpp",
      "jni/AirQualityClient-ReadImpl.cpp",
      "jni/ApplicationBasicClient-InvokeSubscribeImpl.cpp",
      "jni/ApplicationBasicClient-ReadImpl.cpp",
      "jni/ApplicationLauncherClient-InvokeSubscribeImpl.cpp",
      "jni/ApplicationLauncherClient-ReadImpl.cpp",
      "jni/AudioOutputClient-InvokeSubscribeImpl.cpp",
      "jni/AudioOutputClient-ReadImpl.cpp",
      "jni/BallastConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/BallastConfigurationClient-ReadImpl.cpp",
      "jni/BarrierControlClient-InvokeSubscribeImpl.cpp",
      "jni/BarrierControlClient-ReadImpl.cpp",
      "jni/BasicInformationClient-InvokeSubscribeImpl.cpp",
      "jni/BasicInformationClient-ReadImpl.cpp",
      "jni/BinaryInputBasicClient-InvokeSubscribeImpl.cpp",
      "jni/BinaryInputBasicClient-ReadImpl.cpp",
      "jni/BindingClient-InvokeSubscribeImpl.cpp",
      "jni/BindingClient-ReadImpl.cpp",
      "jni/BooleanStateClient-InvokeSubscribeImpl.cpp",
      "jni/BooleanStateClient-ReadImpl.cpp",
      "jni/BridgedDeviceBasicInformationClient-InvokeSubscribeImpl.cpp",
      "jni/BridgedDeviceBasicInformationClient-ReadImpl.cpp",
      "jni/CeramicFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/CeramicFilterMonitoringClient-ReadImpl.cpp",
      "jni/ChannelClient-InvokeSubscribeImpl.cpp",
      "jni/ChannelClient-ReadImpl.cpp",
      "jni/CHIPCallbackTypes.h",
      "jni/CHIPReadCallbacks.h",
      "jni/ColorControlClient-InvokeSubscribeImpl.cpp",
      "jni/ColorControlClient-ReadImpl.cpp",
      "jni/ContentLauncherClient-InvokeSubscribeImpl.cpp",
      "jni/ContentLauncherClient-ReadImpl.cpp",
      "jni/DescriptorClient-InvokeSubscribeImpl.cpp",
      "jni/DescriptorClient-ReadImpl.cpp",
      "jni/DiagnosticLogsClient-InvokeSubscribeImpl.cpp",
      "jni/DiagnosticLogsClient-ReadImpl.cpp",
      "jni/DoorLockClient-InvokeSubscribeImpl.cpp",
      "jni/DoorLockClient-ReadImpl.cpp",
      "jni/ElectricalMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/ElectricalMeasurementClient-ReadImpl.cpp",
      "jni/ElectrostaticFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/ElectrostaticFilterMonitoringClient-ReadImpl.cpp",
      "jni/EthernetNetworkDiagnosticsClient-InvokeSubscribeImpl.cpp",
      "jni/EthernetNetworkDiagnosticsClient-ReadImpl.cpp",
      "jni/FanControlClient-InvokeSubscribeImpl.cpp",
      "jni/FanControlClient-ReadImpl.cpp",
      "jni/FaultInjectionClient-InvokeSubscribeImpl.cpp",
      "jni/FaultInjectionClient-ReadImpl.cpp",
      "jni/FixedLabelClient-InvokeSubscribeImpl.cpp",
      "jni/FixedLabelClient-ReadImpl.cpp",
      "jni/FlowMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/FlowMeasurementClient-ReadImpl.cpp",
      "jni/FuelTankMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/FuelTankMonitoringClient-ReadImpl.cpp",
      "jni/GeneralCommissioningClient-InvokeSubscribeImpl.cpp",
      "jni/GeneralCommissioningClient-ReadImpl.cpp",
      "jni/GeneralDiagnosticsClient-InvokeSubscribeImpl.cpp",
      "jni/GeneralDiagnosticsClient-ReadImpl.cpp",
      "jni/GroupKeyManagementClient-InvokeSubscribeImpl.cpp",
      "jni/GroupKeyManagementClient-ReadImpl.cpp",
      "jni/GroupsClient-InvokeSubscribeImpl.cpp",
      "jni/GroupsClient-ReadImpl.cpp",
      "jni/HepaFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/HepaFilterMonitoringClient-ReadImpl.cpp",
      "jni/IcdManagementClient-InvokeSubscribeImpl.cpp",
      "jni/IcdManagementClient-ReadImpl.cpp",
      "jni/IdentifyClient-InvokeSubscribeImpl.cpp",
      "jni/IdentifyClient-ReadImpl.cpp",
      "jni/IlluminanceMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/IlluminanceMeasurementClient-ReadImpl.cpp",
      "jni/InkCartridgeMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/InkCartridgeMonitoringClient-ReadImpl.cpp",
      "jni/IonizingFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/IonizingFilterMonitoringClient-ReadImpl.cpp",
      "jni/KeypadInputClient-InvokeSubscribeImpl.cpp",
      "jni/KeypadInputClient-ReadImpl.cpp",
      "jni/LevelControlClient-InvokeSubscribeImpl.cpp",
      "jni/LevelControlClient-ReadImpl.cpp",
      "jni/LocalizationConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/LocalizationConfigurationClient-ReadImpl.cpp",
      "jni/LowPowerClient-InvokeSubscribeImpl.cpp",
      "jni/LowPowerClient-ReadImpl.cpp",
      "jni/MediaInputClient-InvokeSubscribeImpl.cpp",
      "jni/MediaInputClient-ReadImpl.cpp",
      "jni/MediaPlaybackClient-InvokeSubscribeImpl.cpp",
      "jni/MediaPlaybackClient-ReadImpl.cpp",
      "jni/ModeSelectClient-InvokeSubscribeImpl.cpp",
      "jni/ModeSelectClient-ReadImpl.cpp",
      "jni/NetworkCommissioningClient-InvokeSubscribeImpl.cpp",
      "jni/NetworkCommissioningClient-ReadImpl.cpp",
      "jni/OccupancySensingClient-InvokeSubscribeImpl.cpp",
      "jni/OccupancySensingClient-ReadImpl.cpp",
      "jni/OnOffClient-InvokeSubscribeImpl.cpp",
      "jni/OnOffClient-ReadImpl.cpp",
      "jni/OnOffSwitchConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/OnOffSwitchConfigurationClient-ReadImpl.cpp",
      "jni/OperationalCredentialsClient-InvokeSubscribeImpl.cpp",
      "jni/OperationalCredentialsClient-ReadImpl.cpp",
      "jni/OtaSoftwareUpdateProviderClient-InvokeSubscribeImpl.cpp",
      "jni/OtaSoftwareUpdateProviderClient-ReadImpl.cpp",
      "jni/OtaSoftwareUpdateRequestorClient-InvokeSubscribeImpl.cpp",
      "jni/OtaSoftwareUpdateRequestorClient-ReadImpl.cpp",
      "jni/OzoneFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/OzoneFilterMonitoringClient-ReadImpl.cpp",
      "jni/PowerSourceClient-InvokeSubscribeImpl.cpp",
      "jni/PowerSourceClient-ReadImpl.cpp",
      "jni/PowerSourceConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/PowerSourceConfigurationClient-ReadImpl.cpp",
      "jni/PressureMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/PressureMeasurementClient-ReadImpl.cpp",
      "jni/ProxyConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/ProxyConfigurationClient-ReadImpl.cpp",
      "jni/ProxyDiscoveryClient-InvokeSubscribeImpl.cpp",
      "jni/ProxyDiscoveryClient-ReadImpl.cpp",
      "jni/ProxyValidClient-InvokeSubscribeImpl.cpp",
      "jni/ProxyValidClient-ReadImpl.cpp",
      "jni/PulseWidthModulationClient-InvokeSubscribeImpl.cpp",
      "jni/PulseWidthModulationClient-ReadImpl.cpp",
      "jni/PumpConfigurationAndControlClient-InvokeSubscribeImpl.cpp",
      "jni/PumpConfigurationAndControlClient-ReadImpl.cpp",
      "jni/RelativeHumidityMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/RelativeHumidityMeasurementClient-ReadImpl.cpp",
      "jni/ScenesClient-InvokeSubscribeImpl.cpp",
      "jni/ScenesClient-ReadImpl.cpp",
      "jni/SmokeCoAlarmClient-ReadImpl.cpp",
      "jni/SmokeCoAlarmClient-InvokeSubscribeImpl.cpp",
      "jni/SoftwareDiagnosticsClient-InvokeSubscribeImpl.cpp",
      "jni/SoftwareDiagnosticsClient-ReadImpl.cpp",
      "jni/SwitchClient-InvokeSubscribeImpl.cpp",
      "jni/SwitchClient-ReadImpl.cpp",
      "jni/TargetNavigatorClient-InvokeSubscribeImpl.cpp",
      "jni/TargetNavigatorClient-ReadImpl.cpp",
      "jni/TemperatureMeasurementClient-InvokeSubscribeImpl.cpp",
      "jni/TemperatureMeasurementClient-ReadImpl.cpp",
      "jni/ThermostatClient-InvokeSubscribeImpl.cpp",
      "jni/ThermostatClient-ReadImpl.cpp",
      "jni/ThermostatUserInterfaceConfigurationClient-InvokeSubscribeImpl.cpp",
      "jni/ThermostatUserInterfaceConfigurationClient-ReadImpl.cpp",
      "jni/ThreadNetworkDiagnosticsClient-InvokeSubscribeImpl.cpp",
      "jni/ThreadNetworkDiagnosticsClient-ReadImpl.cpp",
      "jni/TimeFormatLocalizationClient-InvokeSubscribeImpl.cpp",
      "jni/TimeFormatLocalizationClient-ReadImpl.cpp",
      "jni/TimeSynchronizationClient-InvokeSubscribeImpl.cpp",
      "jni/TimeSynchronizationClient-ReadImpl.cpp",
      "jni/TonerCartridgeMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/TonerCartridgeMonitoringClient-ReadImpl.cpp",
      "jni/UnitLocalizationClient-InvokeSubscribeImpl.cpp",
      "jni/UnitLocalizationClient-ReadImpl.cpp",
      "jni/UnitTestingClient-InvokeSubscribeImpl.cpp",
      "jni/UnitTestingClient-ReadImpl.cpp",
      "jni/UserLabelClient-InvokeSubscribeImpl.cpp",
      "jni/UserLabelClient-ReadImpl.cpp",
      "jni/UvFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/UvFilterMonitoringClient-ReadImpl.cpp",
      "jni/WakeOnLanClient-InvokeSubscribeImpl.cpp",
      "jni/WakeOnLanClient-ReadImpl.cpp",
      "jni/WaterTankMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/WaterTankMonitoringClient-ReadImpl.cpp",
      "jni/WiFiNetworkDiagnosticsClient-InvokeSubscribeImpl.cpp",
      "jni/WiFiNetworkDiagnosticsClient-ReadImpl.cpp",
      "jni/WindowCoveringClient-InvokeSubscribeImpl.cpp",
      "jni/WindowCoveringClient-ReadImpl.cpp",
      "jni/ZeoliteFilterMonitoringClient-InvokeSubscribeImpl.cpp",
      "jni/ZeoliteFilterMonitoringClient-ReadImpl.cpp",
    ]

    deps = [
      ":data_model",
      "${chip_root}/src/platform:platform_buildconfig",
    ]

    public_configs = [ ":java-build-config" ]
  }

  source_set("java-jni-sources") {
    public_configs = [
      ":java-build-config",
      ":java-jni-generate_config",
      "${chip_root}/src:includes",
    ]

    deps = [
      ":data_model",
      ":java-jni-generate",
      "${chip_root}/src/inet",
      "${chip_root}/src/lib",
      "${chip_root}/src/platform",
    ]

    if (build_java_matter_controller) {
      if (current_os == "mac") {
        deps += [ "${chip_root}/src/platform/Darwin" ]
      } else {
        deps += [ "${chip_root}/src/platform/Linux" ]
      }
    } else {
      deps += [ "${chip_root}/src/platform/android" ]
    }
  }
}
