blob: 1b8800423727c07bd8ce89955cf1592c9cd3b2b4 [file]
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, '.']
libevent_queue = static_library(
'event_queue',
'event_queue_thread.cc',
include_directories: gpowerd_include,
implicit_include_directories: false,
dependencies: [safepower_deps],
)
event_queue = declare_dependency(
dependencies: safepower_deps,
include_directories: gpowerd_include,
link_with: [libevent_queue],
)
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',
]