version_script = '-Wl,--version-script=@0@'.format(meson.current_source_dir() / 'version.lds') if not cc.has_link_argument(version_script) version_script = [] endif sources = files( 'fdt.c', 'fdt_addresses.c', 'fdt_check.c', 'fdt_empty_tree.c', 'fdt_overlay.c', 'fdt_ro.c', 'fdt_rw.c', 'fdt_strerror.c', 'fdt_sw.c', 'fdt_wip.c', ) libfdt = library( 'fdt', sources, version: '1.6.0', link_args: ['-Wl,--no-undefined', version_script], link_depends: 'version.lds', install: true, ) libfdt_a = static_library( 'fdt', sources, install: true, ) libfdt_inc = include_directories('.') if static_build link_with = libfdt_a else link_with = libfdt endif libfdt_dep = declare_dependency( include_directories: libfdt_inc, link_with: link_with, ) install_headers( files( 'fdt.h', 'libfdt.h', 'libfdt_env.h', ) ) pkgconfig = import('pkgconfig') pkgconfig.generate( libraries: libfdt, version: meson.project_version(), filebase: 'libfdt', name: 'libfdt', description: 'Flat Device Tree manipulation', )