
include_dirs = ['.', '..']

deps = [
    phosphor_dbus_interfaces_dep,
    phosphor_logging_dep,
    sdbusplus_dep,
    sdeventplus_dep,
    cereal_dep,
]

sources = ['main.cpp']

if conf.has('CONTROL_USE_JSON')
    deps += nlohmann_json_dep
    include_dirs += ['./json', './json/actions', './json/triggers']
    sources += [
        'json/dbus_zone.cpp',
        'json/event.cpp',
        'json/fan.cpp',
        'json/group.cpp',
        'json/manager.cpp',
        'json/profile.cpp',
        'json/zone.cpp',
        'json/actions/count_state_floor.cpp',
        'json/actions/count_state_target.cpp',
        'json/actions/default_floor.cpp',
        'json/actions/get_managed_objects.cpp',
        'json/actions/mapped_floor.cpp',
        'json/actions/missing_owner_target.cpp',
        'json/actions/net_target_decrease.cpp',
        'json/actions/net_target_increase.cpp',
        'json/actions/override_fan_target.cpp',
        'json/actions/pcie_card_floors.cpp',
        'json/actions/request_target_base.cpp',
        'json/actions/set_parameter_from_group_max.cpp',
        'json/actions/target_from_group_max.cpp',
        'json/actions/timer_based_actions.cpp',
        'json/utils/flight_recorder.cpp',
        'json/utils/modifier.cpp',
        'json/utils/pcie_card_metadata.cpp',
        'json/triggers/init.cpp',
        'json/triggers/parameter.cpp',
        'json/triggers/signal.cpp',
        'json/triggers/timer.cpp',
    ]
else
    fan_zone_defs_cpp_dep = custom_target(
        'fan_zone_defs.cpp',
        input: files(
            conf.get_unquoted('FAN_DEF_YAML_FILE'),
            conf.get_unquoted('FAN_ZONE_YAML_FILE'),
            conf.get_unquoted('ZONE_EVENTS_YAML_FILE'),
            conf.get_unquoted('ZONE_CONDITIONS_YAML_FILE'),
            './gen-fan-zone-defs.py',
        ),
        command: [
            python_prog,
            '@INPUT0@',
            '-f',
            '@INPUT1@',
            '-z',
            '@INPUT2@',
            '-e',
            '@INPUT3@',
            '-c',
            '@INPUT4@',
            '-o',
            'control',
        ],
        output: 'fan_zone_defs.cpp',
    )

    sources += [
        'actions.cpp',
        'fan.cpp',
        fan_zone_defs_cpp_dep,
        'manager.cpp',
        'preconditions.cpp',
        'triggers.cpp',
        'utility.cpp',
        'zone.cpp',
    ]

endif

phosphor_fan_control_include_directories = include_directories(include_dirs)
phosphor_fan_control = executable(
    'phosphor-fan-control',
    sources,
    dependencies: deps,
    implicit_include_directories: false,
    include_directories: phosphor_fan_control_include_directories,
    install: true,
)

fanctl = executable(
    'fanctl',
    'fanctl.cpp',
    dependencies: [
        cli11_dep,
        nlohmann_json_dep,
        phosphor_logging_dep,
        sdbusplus_dep,
    ],
    include_directories: phosphor_fan_control_include_directories,
    install: true,
)
