
bmc_deps = [
    dependency('absl_base'),
    dependency('absl_statusor'),
    dependency('absl_flat_hash_set'),
    dependency('absl_flags'),
    dependency('absl_flags_internal'),
    dependency('absl_flags_parse'),
    dependency('fmt'),
    boost,
    dependency('zatar'),
    dependency('one'),
    dependency('gbmchal'),
    loas_deps,
]

gpowerd_include = [safepower_include, '.']


subdir('machine_configs')

bmc_deps += [
    setup_configs,
]


scheduler_bmc_lib = static_library(
  'scheduler_bmc',
  'scheduler_bmc.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [bmc_deps],
  cpp_args: ['-fexceptions'],  # Enable exceptions
)

scheduler = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [scheduler_bmc_lib],
)

gmi_reader_lib = static_library(
  'gmi_reader',
  'gmi_reader.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    proto_reader,
    dependency('gmi_protos'),
  ],
  cpp_args: ['-fno-exceptions'],
)

gmi_reader = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [gmi_reader_lib],
)

auth_file_helper_lib = static_library(
  'auth_file_helper',
  'auth_file_helper.cc',
  include_directories: gpowerd_include,
  dependencies: [
    bmc_deps,
    gmi_reader,
    gpowerd_proto,
  ],
  cpp_args: ['-fno-exceptions'],
)

auth_file_helper = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [auth_file_helper_lib],
)

auth_bmc_lib = static_library(
  'auth_bmc',
  'auth.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [bmc_deps, auth_file_helper, gpowerd_proto,],
  cpp_args: ['-fno-exceptions'],
)

auth_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [auth_bmc_lib],
)

address_resolver_lib = static_library(
  'address_resolver',
  'address_resolver.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [bmc_deps],
)

address_resolver = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [address_resolver_lib],
)

daemon_context_bmc_lib = static_library(
  'daemon_context_bmc',
  'daemon_context_bmc.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    daemon_context,
    bmc_deps,
    proto_reader,
    persistent_storage,
    gpowerd_proto,
    address_resolver,
  ],
  cpp_args: ['-fexceptions'],  # Enable exceptions
)

daemon_context_bmc = declare_dependency(
  dependencies: [bmc_deps, address_resolver],
  include_directories: gpowerd_include,
  link_with: [daemon_context_bmc_lib],
)

http_connection_bmc_lib = static_library(
  'http_connection',
  'http_connection.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    daemon_context,
    daemon_context_bmc,
    bmc_deps,
  ],
  cpp_args: ['-fexceptions'],  # Enable exceptions
)

http_connection_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [http_connection_bmc_lib],
)

redfish_bmc_lib = static_library(
  'redfish',
  'redfish.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    http_connection_bmc,
    gpowerd_proto,
  ],
)

redfish_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [redfish_bmc_lib],
)

address_lookup_lib = static_library(
  'address_lookup',
  'address_lookup.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    gpowerd_proto,
    address_resolver,
  ],
)

address_lookup = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [address_lookup_lib],
)



gnic_monitor_lib = static_library(
  'gnic_monitor',
  'gnic_monitor.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    polling_state_monitor,
    dependency('gbmchal', fallback: ['gbmchal', 'gbmc_hal_system_dep']),
  ],
)

gnic_monitor = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [gnic_monitor_lib],
)

remote_state_monitor_lib = static_library(
  'remote_state_monitor',
  'remote_state_monitor.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    gpowerd_proto,
    polling_state_monitor,
  ],
)

remote_state_monitor = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [remote_state_monitor_lib],
)

remote_state_ping_lib = static_library(
  'remote_state_ping',
  'remote_state_ping.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    gpowerd_proto,
  ],
)

remote_state_ping = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [remote_state_ping_lib],
)

health_state_ping_lib = static_library(
  'health_state_ping',
  'health_state_ping.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    gpowerd_proto,
  ],
)

health_state_ping = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [health_state_ping_lib],
)

state_monitor_bmc_lib = static_library(
  'state_monitor_bmc',
  'state_monitor_bmc.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    address_lookup,
    bmc_deps,
    http_connection_bmc,
    gpowerd_proto,
    remote_state_ping,
    health_state_ping,
    remote_state_monitor,
    internal_boot_counter,
    polling_state_monitor,
    gnic_monitor,
  ],
)

state_monitor_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [state_monitor_bmc_lib],
)

register_actions_bmc_lib = static_library(
  'register_actions_bmc',
  'register_actions_bmc.cc',
  include_directories: gpowerd_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    redfish_bmc,
    gpowerd_proto,
  ],
)

register_actions_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: gpowerd_include,
  link_with: [register_actions_bmc_lib],
)

tests = [
  'scheduler_bmc_test',
  'gmi_reader_test',
  'persistent_storage_impl_test',
  'daemon_context_bmc_test',
  'http_connection_test',
  'register_actions_bmc_test',
  'health_state_ping_test',
  'auth_file_helper_test',
  'auth_test',
]

