meson: static lib for utils and settings
`settings.cpp` and `utils.cpp` were compiled multiple times for various
binaries. Create static libraries to compile them once.
Tested: Code compiles.
Change-Id: I0827f44ff6274cf131fb91431af982a4a6eeee6a
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/meson.build b/meson.build
index 77c44b8..a8e94be 100644
--- a/meson.build
+++ b/meson.build
@@ -126,13 +126,23 @@
cereal = cereal_proj.dependency('cereal')
endif
+settings_lib = static_library(
+ 'settings',
+ 'settings.cpp',
+ dependencies: [sdbusplus, phosphorlogging, phosphordbusinterfaces],
+)
+
+utils_lib = static_library(
+ 'utils',
+ 'utils.cpp',
+ dependencies: [sdbusplus, phosphorlogging, phosphordbusinterfaces, libgpiod],
+)
+
executable(
'phosphor-host-state-manager',
'host_state_manager.cpp',
'host_state_manager_main.cpp',
- 'settings.cpp',
'host_check.cpp',
- 'utils.cpp',
dependencies: [
cereal,
libgpiod,
@@ -141,6 +151,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [settings_lib, utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -149,13 +160,13 @@
'phosphor-hypervisor-state-manager',
'hypervisor_state_manager.cpp',
'hypervisor_state_manager_main.cpp',
- 'settings.cpp',
dependencies: [
phosphordbusinterfaces,
phosphorlogging,
sdbusplus,
sdeventplus,
],
+ link_with: [settings_lib],
implicit_include_directories: true,
install: true,
)
@@ -164,7 +175,6 @@
'phosphor-chassis-state-manager',
'chassis_state_manager.cpp',
'chassis_state_manager_main.cpp',
- 'utils.cpp',
dependencies: [
cereal,
libgpiod,
@@ -174,6 +184,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -181,8 +192,8 @@
executable(
'phosphor-chassis-check-power-status',
'chassis_check_power_status.cpp',
- 'utils.cpp',
dependencies: [libgpiod, phosphordbusinterfaces, phosphorlogging, sdbusplus],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -191,7 +202,6 @@
'phosphor-bmc-state-manager',
'bmc_state_manager.cpp',
'bmc_state_manager_main.cpp',
- 'utils.cpp',
dependencies: [
libgpiod,
phosphordbusinterfaces,
@@ -199,6 +209,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -206,9 +217,8 @@
executable(
'phosphor-discover-system-state',
'discover_system_state.cpp',
- 'settings.cpp',
- 'utils.cpp',
dependencies: [cereal, libgpiod, phosphorlogging, sdbusplus],
+ link_with: [settings_lib, utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -219,7 +229,6 @@
'systemd_target_monitor.cpp',
'systemd_target_parser.cpp',
'systemd_target_signal.cpp',
- 'utils.cpp',
dependencies: [
CLI11,
libgpiod,
@@ -228,6 +237,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -236,8 +246,8 @@
'phosphor-scheduled-host-transition',
'scheduled_host_transition_main.cpp',
'scheduled_host_transition.cpp',
- 'utils.cpp',
dependencies: [cereal, libgpiod, phosphorlogging, sdbusplus, sdeventplus],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
@@ -253,8 +263,8 @@
executable(
'phosphor-secure-boot-check',
'secure_boot_check.cpp',
- 'utils.cpp',
dependencies: [sdbusplus, phosphorlogging, libgpiod],
+ link_with: [utils_lib],
implicit_include_directories: true,
install: true,
)
diff --git a/test/meson.build b/test/meson.build
index ef56b48..51496ac 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -17,7 +17,6 @@
'test_systemd_signal',
'systemd_signal.cpp',
'../systemd_target_signal.cpp',
- '../utils.cpp',
dependencies: [
gtest,
libgpiod,
@@ -26,6 +25,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [utils_lib],
implicit_include_directories: true,
include_directories: '../',
),
@@ -37,7 +37,6 @@
'test_scheduled_host_transition',
'test_scheduled_host_transition.cpp',
'../scheduled_host_transition.cpp',
- '../utils.cpp',
dependencies: [
cereal,
gmock,
@@ -47,6 +46,7 @@
sdbusplus,
sdeventplus,
],
+ link_with: [utils_lib],
implicit_include_directories: true,
include_directories: '../',
),