| project( |
| 'phosphor-time-manager', |
| 'cpp', |
| version: '0.1', |
| meson_version: '>=1.1.1', |
| default_options: [ |
| 'warning_level=3', |
| 'werror=true', |
| 'cpp_std=c++23', |
| 'buildtype=debugoptimized', |
| ], |
| ) |
| |
| ######################################################################## |
| |
| # Project Links |
| |
| project_pretty_name = 'phosphor-time-manager' |
| project_url = 'https://github.com/openbmc/' + project_pretty_name |
| project_issues_url = project_url + '/issues/new' |
| |
| summary('Issue', project_issues_url, section: 'Report Issues') |
| |
| ##################################################################### |
| |
| # Get Compiler and default build type |
| |
| compiler = meson.get_compiler('cpp') |
| |
| ######################################################################### |
| |
| # Find the dependencies |
| |
| sdbusplus_dep = dependency('sdbusplus') |
| phosphor_logging_dep = dependency('phosphor-logging') |
| phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces') |
| deps = [sdbusplus_dep, phosphor_logging_dep, phosphor_dbus_interfaces_dep] |
| |
| ########################################################################### |
| |
| # Get the config data and enable options |
| |
| conf_data = configuration_data() |
| conf_data.set('DEFAULT_TIME_MODE', get_option('default_time_mode')) |
| conf_data.set_quoted( |
| 'DEFAULT_TIME_SYNC_OBJECT_PATH', |
| get_option('default_time_sync_object_path'), |
| ) |
| |
| configure_file(output: 'config.h', configuration: conf_data) |
| |
| |
| ############################################################################ |
| |
| # Gather sources for the target binaries |
| |
| phosphor_time_manager_sources = [ |
| 'bmc_epoch.cpp', |
| 'manager.cpp', |
| 'utils.cpp', |
| 'settings.cpp', |
| ] |
| |
| libtimemanager = static_library( |
| 'libtimemanager', |
| phosphor_time_manager_sources, |
| dependencies: deps, |
| ) |
| ############################################################################ |
| |
| # Install the files into the build directory |
| |
| systemd = dependency('systemd') |
| systemd_system_unit_dir = systemd.get_variable( |
| 'systemdsystemunitdir', |
| pkgconfig_define: ['prefix', get_option('prefix')], |
| ) |
| |
| filesystem = import('fs') |
| filesystem.copyfile( |
| 'xyz.openbmc_project.Time.Manager.service', |
| install: true, |
| install_dir: systemd_system_unit_dir, |
| ) |
| |
| ############################################################################# |
| |
| # Build binaries |
| |
| executable( |
| 'phosphor-time-manager', |
| 'main.cpp', |
| link_with: libtimemanager, |
| dependencies: deps, |
| install: true, |
| ) |
| |
| if get_option('tests').allowed() |
| subdir('test') |
| endif |