blob: 29e4fbef2be6a152237b701a578f34ebd35b8313 [file] [log] [blame]
Brad Bishop83254dc2015-10-27 17:12:45 -04001SUMMARY = "Phosphor DBUS Object Manager"
2DESCRIPTION = "Phosphor DBUS object manager."
3HOMEPAGE = "http://github.com/openbmc/phosphor-objmgr"
4PR = "r1"
5LICENSE = "Apache-2.0"
6LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc"
7
Matthew Barth11381c42016-10-05 16:20:54 -05008inherit autotools pkgconfig
Matthew Barth730ecb82016-11-16 10:17:02 -06009inherit obmc-phosphor-python-autotools
Brad Bishop83254dc2015-10-27 17:12:45 -040010inherit obmc-phosphor-dbus-service
11inherit obmc-phosphor-systemd
Brad Bishop2ad7ce32017-07-09 23:41:49 -040012inherit phosphor-mapperdir
Brad Bishop83254dc2015-10-27 17:12:45 -040013
Brad Bishop5f077512016-08-07 23:18:32 -040014DEPENDS += "systemd"
Matthew Barth11381c42016-10-05 16:20:54 -050015DEPENDS += "autoconf-archive-native"
Andrew Geissler2a90ad92018-10-02 20:40:17 +000016DEPENDS += "boost"
17DEPENDS += "libtinyxml2"
Matt Spinlera469b142017-06-08 12:35:36 -050018DEPENDS += "sdbusplus"
19DEPENDS += "phosphor-logging"
Brad Bishop2ad7ce32017-07-09 23:41:49 -040020DEPENDS += "${PN}-config-native"
Rick Altherr68aa1402016-08-01 14:20:50 -070021
Brad Bishop59fc7e32016-11-02 15:21:22 -040022DBUS_SERVICE_${PN} += "xyz.openbmc_project.ObjectMapper.service"
Adriana Kobylakfcaf72e2017-04-11 11:06:59 -050023SYSTEMD_SERVICE_${PN} += " \
24 mapper-wait@.service \
25 mapper-subtree-remove@.service \
26 "
Matthew Barth11381c42016-10-05 16:20:54 -050027RDEPENDS_libmapper += "libsystemd"
Brad Bishop83254dc2015-10-27 17:12:45 -040028RDEPENDS_${PN} += " \
Brad Bishop2ad7ce32017-07-09 23:41:49 -040029 python-argparse \
Brad Bishop83254dc2015-10-27 17:12:45 -040030 python-xml \
31 python-dbus \
32 python-pygobject \
Patrick Williams73f46432017-03-03 12:52:30 -060033 pyphosphor-dbus \
Patrick Venture082cb892017-07-31 10:52:27 -070034 pyphosphor-utils \
Matt Spinlera469b142017-06-08 12:35:36 -050035 sdbusplus \
36 phosphor-logging \
Brad Bishop83254dc2015-10-27 17:12:45 -040037 "
Chris Austenb70cb7e2015-12-02 22:32:06 -060038SRC_URI += "git://github.com/openbmc/phosphor-objmgr"
Brad Bishop83254dc2015-10-27 17:12:45 -040039
Andrew Geissler2a90ad92018-10-02 20:40:17 +000040SRCREV = "1036b4d13183f2967115e51e45a9b7de38eb859a"
Brad Bishop83254dc2015-10-27 17:12:45 -040041
42S = "${WORKDIR}/git"
Brad Bishopea4022a2016-07-26 15:52:01 -040043
Brad Bishopea4022a2016-07-26 15:52:01 -040044python populate_packages_prepend () {
45 mapperlibdir = d.getVar("libdir", True)
46 do_split_packages(d, mapperlibdir, '^lib(.*)\.so\.*', 'lib%s', 'Phosphor mapper %s library', extra_depends='', allow_links=True)
47}
48PACKAGES_DYNAMIC += "^libmapper.*"
49FILES_${PN}_remove = "${libdir}/lib*.so.* ${libdir}/*"
Brad Bishop2ad7ce32017-07-09 23:41:49 -040050
51# Construct a systemd environment file with mapper commandline
52# from the native sysroot /usr/share/phosphor-mapper filesystem.
53python do_emit_env() {
54 path = d.getVar('STAGING_DIR_NATIVE', True) + \
55 d.getVar('namespace_dir', True)
56 paths = []
57 for p in os.listdir(path):
Brad Bishop9b3beee2017-08-03 15:56:09 -040058 paths.append(os.sep.join(p.split('-')))
Brad Bishop2ad7ce32017-07-09 23:41:49 -040059
60 path = d.getVar('STAGING_DIR_NATIVE', True) + \
61 d.getVar('interface_dir', True)
62 interfaces = []
63 for i in os.listdir(path):
64 interfaces.append('.'.join(i.split('-')))
65
66 path = d.getVar('STAGING_DIR_NATIVE', True) + \
67 d.getVar('blacklist_dir', True)
68 blacklists = []
69 for b in os.listdir(path):
70 blacklists.append(os.sep + os.sep.join(b.split('-')))
71
72 path = d.getVar('STAGING_DIR_NATIVE', True) + \
73 d.getVar('interfaceblacklist_dir', True)
74 interface_blacklists = []
75 for ib in os.listdir(path):
76 interface_blacklists.append('.'.join(ib.split('-')))
77
78 path = [d.getVar('D', True) + d.getVar('envfiledir', True)]
79 path.append('obmc')
80 path.append('mapper')
81 parent = os.path.join(*path[:-1])
82 path = os.path.join(*path)
83
84 if not os.path.exists(parent):
85 os.makedirs(parent)
86 with open(path, 'w+') as fd:
87 fd.write('MAPPER_NAMESPACES="{}"'.format(' '.join(paths)))
88 fd.write('\n')
89 fd.write('MAPPER_INTERFACES="{}"'.format(' '.join(interfaces)))
90 fd.write('\n')
91 fd.write('MAPPER_BLACKLISTS="{}"'.format(' '.join(blacklists)))
92 fd.write('\n')
93 fd.write('MAPPER_INTERFACEBLACKLISTS="{}"'.format(' '.join(interface_blacklists)))
94 fd.write('\n')
95}
96
97do_install[postfuncs] += "do_emit_env"
98do_install[vardeps] += "PHOSPHOR_MAPPER_NAMESPACES"