gplugin/gplugin

Fail perl check if it can't find vendorarch.
develop
2020-02-29, Elliott Sales de Andrade
cfb5cfb23db4
Fail perl check if it can't find vendorarch.
if get_option('perl')
if not get_option('gobject-introspection')
error('Perl plugin requires GObject Introspection.')
endif
GPLUGIN_PERL_SOURCES = [
'gplugin-perl-core.c',
'gplugin-perl-loader.c',
'gplugin-perl-plugin.c',
]
GPLUGIN_PERL_HEADERS = [
'gplugin-perl-loader.h',
'gplugin-perl-plugin.h',
]
# make sure we have the perl executable, we need it to figure out the
# build arguments.
PERL = find_program('perl')
# make sure we have the gobject introspection perl module.
run_command(
PERL,
'-e use Glib::Object::Introspection;',
check : true,
)
perl_dep = declare_dependency(
compile_args : run_command(PERL, '-MExtUtils::Embed', '-e', 'ccopts', check : true).stdout().split(),
link_args : run_command(PERL, '-MExtUtils::Embed', '-e', 'ldopts', check : true).stdout().split(),
)
perl_arch = run_command(PERL,
'-MConfig',
'-e', 'if ($Config{vendorarch}) { print "$Config{vendorarch}" } else { exit 1 }',
check : true).stdout().split()
glib_perl_incdir = '-I@0@/Glib/Install'.format(perl_arch[0])
glib_perl_libdir = '@0@/auto/Glib/'.format(perl_arch[0])
glib_perl_dep = compiler.find_library(
'Glib',
dirs : glib_perl_libdir,
has_headers : 'gperl.h',
header_args : glib_perl_incdir
)
glib_perl_dep = declare_dependency(
dependencies : glib_perl_dep,
# Annoyingly, this is not transferred over from the header_args.
compile_args : glib_perl_incdir
)
shared_library('gplugin-perl',
GPLUGIN_PERL_SOURCES,
GPLUGIN_PERL_HEADERS,
name_prefix : '',
dependencies : [GMODULE, gplugin_dep, perl_dep, glib_perl_dep],
install : true,
install_dir : join_paths(get_option('libdir'), 'gplugin')
)
endif # perl
subdir('tests')