xref: /openbmc/phosphor-time-manager/meson.build (revision 76ca53e6b690a5808b4d572060396fa76c14f27c)
1*76ca53e6SPatrick Williamsproject(
2*76ca53e6SPatrick Williams    'phosphor-time-manager',
38af2a894SRatan Gupta    'cpp',
48af2a894SRatan Gupta    version: '0.1',
54f0dfa2cSPatrick Williams    meson_version: '>=1.1.1',
6*76ca53e6SPatrick Williams    default_options: [
7*76ca53e6SPatrick Williams        'warning_level=3',
88af2a894SRatan Gupta        'werror=true',
94f0dfa2cSPatrick Williams        'cpp_std=c++23',
10*76ca53e6SPatrick Williams        'buildtype=debugoptimized',
11*76ca53e6SPatrick Williams    ],
12*76ca53e6SPatrick Williams)
138af2a894SRatan Gupta
148af2a894SRatan Gupta########################################################################
158af2a894SRatan Gupta
168af2a894SRatan Gupta# Project Links
178af2a894SRatan Gupta
188af2a894SRatan Guptaproject_pretty_name = 'phosphor-time-manager'
198af2a894SRatan Guptaproject_url = 'https://github.com/openbmc/' + project_pretty_name
208af2a894SRatan Guptaproject_issues_url = project_url + '/issues/new'
218af2a894SRatan Gupta
228af2a894SRatan Guptasummary('Issue', project_issues_url, section: 'Report Issues')
238af2a894SRatan Gupta
248af2a894SRatan Gupta#####################################################################
258af2a894SRatan Gupta
268af2a894SRatan Gupta# Get Compiler and default build type
278af2a894SRatan Gupta
288af2a894SRatan Guptacompiler = meson.get_compiler('cpp')
298af2a894SRatan Gupta
308af2a894SRatan Gupta#########################################################################
318af2a894SRatan Gupta
328af2a894SRatan Gupta# Find the dependencies
338af2a894SRatan Gupta
340fb8ed4dSGeorge Liusdbusplus_dep = dependency('sdbusplus')
350fb8ed4dSGeorge Liuphosphor_logging_dep = dependency('phosphor-logging')
360fb8ed4dSGeorge Liuphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
37*76ca53e6SPatrick Williamsdeps = [sdbusplus_dep, phosphor_logging_dep, phosphor_dbus_interfaces_dep]
388af2a894SRatan Gupta
398af2a894SRatan Gupta###########################################################################
408af2a894SRatan Gupta
418af2a894SRatan Gupta# Get the config data and enable options
428af2a894SRatan Gupta
438af2a894SRatan Guptaconf_data = configuration_data()
448af2a894SRatan Guptaconf_data.set('DEFAULT_TIME_MODE', get_option('default_time_mode'))
45*76ca53e6SPatrick Williamsconf_data.set_quoted(
46*76ca53e6SPatrick Williams    'DEFAULT_TIME_SYNC_OBJECT_PATH',
47*76ca53e6SPatrick Williams    get_option('default_time_sync_object_path'),
48*76ca53e6SPatrick Williams)
498af2a894SRatan Gupta
508af2a894SRatan Guptaconfigure_file(output: 'config.h', configuration: conf_data)
518af2a894SRatan Gupta
528af2a894SRatan Gupta
538af2a894SRatan Gupta############################################################################
548af2a894SRatan Gupta
558af2a894SRatan Gupta# Gather sources for the target binaries
568af2a894SRatan Gupta
578af2a894SRatan Guptaphosphor_time_manager_sources = [
588af2a894SRatan Gupta    'bmc_epoch.cpp',
598af2a894SRatan Gupta    'manager.cpp',
608af2a894SRatan Gupta    'utils.cpp',
618af2a894SRatan Gupta    'settings.cpp',
628af2a894SRatan Gupta]
638af2a894SRatan Gupta
64*76ca53e6SPatrick Williamslibtimemanager = static_library(
65*76ca53e6SPatrick Williams    'libtimemanager',
668af2a894SRatan Gupta    phosphor_time_manager_sources,
67*76ca53e6SPatrick Williams    dependencies: deps,
68*76ca53e6SPatrick Williams)
698af2a894SRatan Gupta############################################################################
708af2a894SRatan Gupta
71f901e9ceSRatan Gupta# Install the files into the build directory
72f901e9ceSRatan Gupta
73f901e9ceSRatan Guptasystemd = dependency('systemd')
74667563c3SPavithra Barithayasystemd_system_unit_dir = systemd.get_variable(
754c5143f0SPatrick Williams    'systemdsystemunitdir',
76*76ca53e6SPatrick Williams    pkgconfig_define: ['prefix', get_option('prefix')],
77*76ca53e6SPatrick Williams)
7883a3bfe7SManojkiran Eda
7983a3bfe7SManojkiran Edafilesystem = import('fs')
80*76ca53e6SPatrick Williamsfilesystem.copyfile(
81*76ca53e6SPatrick Williams    'xyz.openbmc_project.Time.Manager.service',
8283a3bfe7SManojkiran Eda    install: true,
83*76ca53e6SPatrick Williams    install_dir: systemd_system_unit_dir,
84*76ca53e6SPatrick Williams)
85f901e9ceSRatan Gupta
86f901e9ceSRatan Gupta#############################################################################
87f901e9ceSRatan Gupta
888af2a894SRatan Gupta# Build binaries
898af2a894SRatan Gupta
90*76ca53e6SPatrick Williamsexecutable(
91*76ca53e6SPatrick Williams    'phosphor-time-manager',
928af2a894SRatan Gupta    'main.cpp',
938af2a894SRatan Gupta    link_with: libtimemanager,
948af2a894SRatan Gupta    dependencies: deps,
95*76ca53e6SPatrick Williams    install: true,
96*76ca53e6SPatrick Williams)
978af2a894SRatan Gupta
9831ca09abSPatrick Williamsif get_option('tests').allowed()
998af2a894SRatan Gupta    subdir('test')
1008af2a894SRatan Guptaendif
101