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'),
    loas_deps,
]

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

scheduler = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [scheduler_bmc_lib],
)

proto_reader_lib = static_library(
  'proto_reader',
  'proto_reader.cc',
  include_directories: safepower_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
  ],
  cpp_args: ['-fno-exceptions'],
)

proto_reader = declare_dependency(
  dependencies: bmc_deps,
  include_directories: safepower_include,
  link_with: [proto_reader_lib],
)

gmi_reader_lib = static_library(
  'gmi_reader',
  'gmi_reader.cc',
  include_directories: safepower_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: safepower_include,
  link_with: [gmi_reader_lib],
)

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

auth_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [auth_bmc_lib],
)

persistent_storage_lib = static_library(
  'persistent_storage_bmc',
  'persistent_storage_bmc.cc',
  include_directories: safepower_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    proto_reader,
    gpowerd_proto,
  ],
  cpp_args: ['-fno-exceptions'],
)

persistent_storage = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [persistent_storage_lib],
)

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

daemon_context_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [daemon_context_bmc_lib],
)

http_connection_bmc_lib = static_library(
  'http_connection',
  'http_connection.cc',
  include_directories: safepower_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: [safepower_include, '.'],
  link_with: [http_connection_bmc_lib],
)

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

redfish_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [redfish_bmc_lib],
)

state_monitor_bmc_lib = static_library(
  'state_monitor_bmc',
  'state_monitor_bmc.cc',
  include_directories: safepower_include,
  implicit_include_directories: false,
  dependencies: [
    bmc_deps,
    http_connection_bmc,
    gpowerd_proto,
  ],
)

state_monitor_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [state_monitor_bmc_lib],
)

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

register_actions_bmc = declare_dependency(
  dependencies: bmc_deps,
  include_directories: [safepower_include, '.'],
  link_with: [register_actions_bmc_lib],
)

