blob: 845b55451cb0ba39e91929b59c42887a1f04b505 [file] [log] [blame]
#!/usr/bin/env python3
# pylint: disable=invalid-name,missing-docstring
#
# Copyright 2022 Richard Hughes <richard@hughsie.com>
#
# SPDX-License-Identifier: LGPL-2.1-or-later
import sys
if len(sys.argv) < 3:
print("not enough arguments")
sys.exit(1)
with open(sys.argv[1], "w") as f:
# empty argument is no plugins
plugin_names = []
if sys.argv[3]:
for fullpath in sys.argv[3].split(","):
parts = fullpath.split("/")
name = parts[-1]
if name.startswith("libfu_plugin_"):
name = name[13:]
if name.endswith(".a"):
name = name[:-2]
plugin_names.append((parts[-2], name))
# includes
for dirname, name in plugin_names:
f.write(
'#include "{srcdir}/plugins/{dirname}/fu-{name}-plugin.h"\n'.format(
srcdir=sys.argv[2], dirname=dirname, name=name.replace("_", "-")
)
)
# GTypes
gtypes = [f"fu_{name}_plugin_get_type" for _, name in plugin_names]
f.write(
"GType (*fu_plugin_externals[])(void) = { %s };\n"
% ", ".join(gtypes + ["NULL"])
)
sys.exit(0)