xref: /openbmc/bios-settings-mgr/meson.build (revision 6a7ee5c2)
1642f437eSKuiying Wangproject(
2642f437eSKuiying Wang    'biosconfig-manager',
3642f437eSKuiying Wang    'cpp',
4fb928424SGeorge Liu    meson_version: '>=0.58.0',
5642f437eSKuiying Wang    default_options: [
6642f437eSKuiying Wang        'warning_level=3',
7642f437eSKuiying Wang        'werror=true',
8fb928424SGeorge Liu        'cpp_std=c++20',
9fb928424SGeorge Liu        'buildtype=debugoptimized'
10642f437eSKuiying Wang    ],
11642f437eSKuiying Wang    license: 'Apache-2.0',
12642f437eSKuiying Wang    version: '1.0',
13642f437eSKuiying Wang)
14642f437eSKuiying Wang
15642f437eSKuiying Wang# Wno-psabi reduces the number of "Note:" messages when cross-compiling some STL
16642f437eSKuiying Wang# stuff for ARM. See https://stackoverflow.com/questions/48149323/strange-gcc-warning-when-compiling-qt-project
17642f437eSKuiying Wang# Basically, gcc 6 and gcc 7 are not ABI compatible, but since the whole OpenBMC
18642f437eSKuiying Wang# project uses the same compiler, we can safely ignmore these info notes.
19642f437eSKuiying Wangadd_project_arguments('-Wno-psabi', language: 'cpp')
20642f437eSKuiying Wang
21f1101df2STom Josephconf_data = configuration_data()
22f1101df2STom Josephconf_data.set_quoted('BIOS_PERSIST_PATH', get_option('bios-persist-path'))
23f1101df2STom Josephconfigure_file(output: 'config.h', configuration: conf_data)
24f1101df2STom Joseph
25642f437eSKuiying Wangboost_args = ['-DBOOST_ALL_NO_LIB',
26642f437eSKuiying Wang              '-DBOOST_ASIO_DISABLE_THREADS',
27642f437eSKuiying Wang              '-DBOOST_ERROR_CODE_HEADER_ONLY',
28642f437eSKuiying Wang              '-DBOOST_NO_RTTI',
29642f437eSKuiying Wang              '-DBOOST_NO_TYPEID',
30642f437eSKuiying Wang              '-DBOOST_SYSTEM_NO_DEPRECATED']
31642f437eSKuiying Wang
32642f437eSKuiying Wangdeps = [dependency('boost'),
33642f437eSKuiying Wang        dependency('phosphor-dbus-interfaces'),
34642f437eSKuiying Wang        dependency('phosphor-logging'),
35642f437eSKuiying Wang        dependency('sdbusplus'),
36642f437eSKuiying Wang        dependency('systemd'),
378f706213SKuiying Wang        dependency('openssl'),
38642f437eSKuiying Wang]
39642f437eSKuiying Wang
40642f437eSKuiying Wangexecutable('biosconfig-manager',
41642f437eSKuiying Wang           'src/manager.cpp',
42f1101df2STom Joseph           'src/manager_serialize.cpp',
43f1101df2STom Joseph        implicit_include_directories: true,
44642f437eSKuiying Wang        include_directories: ['include'],
45642f437eSKuiying Wang        dependencies: deps,
46642f437eSKuiying Wang        cpp_args : boost_args,
47642f437eSKuiying Wang        install: true,
48642f437eSKuiying Wang        install_dir: get_option('bindir'))
49642f437eSKuiying Wang
508f706213SKuiying Wangexecutable('biosconfig-password',
518f706213SKuiying Wang           'src/password.cpp',
528f706213SKuiying Wang        implicit_include_directories: true,
538f706213SKuiying Wang        include_directories: ['include'],
548f706213SKuiying Wang        dependencies: deps,
558f706213SKuiying Wang        cpp_args : boost_args,
568f706213SKuiying Wang        install: true,
578f706213SKuiying Wang        install_dir: get_option('bindir'))
588f706213SKuiying Wang
59642f437eSKuiying Wangsystemd = dependency('systemd')
60*6a7ee5c2SGeorge Liusystemd_system_unit_dir = systemd.get_variable(
61*6a7ee5c2SGeorge Liu    pkgconfig: 'systemdsystemunitdir',
62*6a7ee5c2SGeorge Liu    pkgconfig_define: ['prefix', get_option('prefix')])
63642f437eSKuiying Wang
64642f437eSKuiying Wangconfigure_file(
65642f437eSKuiying Wang    copy: true,
66642f437eSKuiying Wang    input: 'service_files/xyz.openbmc_project.biosconfig_manager.service',
67642f437eSKuiying Wang    install: true,
68642f437eSKuiying Wang    install_dir: systemd_system_unit_dir,
69642f437eSKuiying Wang    output: 'xyz.openbmc_project.biosconfig_manager.service'
70642f437eSKuiying Wang)
718f706213SKuiying Wang
728f706213SKuiying Wangconfigure_file(
738f706213SKuiying Wang    copy: true,
748f706213SKuiying Wang    input: 'service_files/xyz.openbmc_project.biosconfig_password.service',
758f706213SKuiying Wang    install: true,
768f706213SKuiying Wang    install_dir: systemd_system_unit_dir,
778f706213SKuiying Wang    output: 'xyz.openbmc_project.biosconfig_password.service'
788f706213SKuiying Wang)