############################################################################### ############################################################################### GPLUGIN_LIBRARY_VERSION = '0.1.0' GPLUGIN_PUBLIC_BUILT_HEADERS = [ GPLUGIN_PUBLIC_BUILT_SOURCES = [ GPLUGIN_PRIVATE_HEADERS = [ GPLUGIN_PRIVATE_SOURCES = [ GPLUGIN_PRIVATE_BUILT_HEADERS = [ GPLUGIN_PRIVATE_BUILT_SOURCES = [ GPLUGIN_NATIVE_HEADERS = [ 'gplugin-native-plugin.h', 'gplugin-native-loader.h', GPLUGIN_NATIVE_SOURCES = [ 'gplugin-native-plugin.c', 'gplugin-native-loader.c', ############################################################################### # gplugin-enum.[ch] generation ############################################################################### enums = gnome.mkenums_simple( install_dir : get_option('includedir') / 'gplugin-1.0' / 'gplugin') GPLUGIN_PUBLIC_BUILT_HEADERS += [ GPLUGIN_PUBLIC_BUILT_SOURCES += [ ############################################################################## ############################################################################### PRIVATE_HEADERS = GPLUGIN_PRIVATE_HEADERS + GPLUGIN_PRIVATE_BUILT_HEADERS + \ ############################################################################### ############################################################################### gplugin_version_h = configure_file( input : 'gplugin-version.h.in', output : 'gplugin-version.h', configuration : version_conf, install_dir : get_option('includedir') / 'gplugin-1.0' / 'gplugin' GPLUGIN_PUBLIC_BUILT_HEADERS += [ gplugin_inc = include_directories('.') foreach header : GPLUGIN_HEADERS + ['gplugin-version.h', 'gplugin-enums.h'] GPLUGIN_H_INCLUDES = '@0@\n#include <gplugin/@1@>'.format( conf = configuration_data() conf.set('GPLUGIN_H_INCLUDES', GPLUGIN_H_INCLUDES) gplugin_h = configure_file( install_dir : get_option('includedir') / 'gplugin-1.0') GPLUGIN_NATIVE_H_INCLUDES = '' foreach header : GPLUGIN_NATIVE_HEADERS GPLUGIN_NATIVE_H_INCLUDES = '@0@\n#include <gplugin/@1@>'.format( GPLUGIN_NATIVE_H_INCLUDES, conf = configuration_data() conf.set('GPLUGIN_NATIVE_H_INCLUDES', GPLUGIN_NATIVE_H_INCLUDES) gplugin_native_h = configure_file( input : 'gplugin-native.h.in', output : 'gplugin-native.h', install_dir : get_option('includedir') / 'gplugin-1.0') ############################################################################### ############################################################################### gplugin = shared_library('gplugin', GPLUGIN_PUBLIC_BUILT_SOURCES, GPLUGIN_PRIVATE_BUILT_SOURCES, GPLUGIN_PUBLIC_BUILT_HEADERS, c_args : ['-DGPLUGIN_COMPILATION', '-DG_LOG_DOMAIN="GPlugin"'], include_directories : toplevel_inc, dependencies : [GLIB, GOBJECT, GMODULE], version : GPLUGIN_LIBRARY_VERSION, gplugin_dep = declare_dependency( include_directories : [toplevel_inc, include_directories('.')], sources : GPLUGIN_PUBLIC_BUILT_HEADERS, # Ensure they're built before use. dependencies : [GLIB, GOBJECT] if meson.version().version_compare('>=0.54.0') meson.override_dependency('gplugin', gplugin_dep) description : 'A fully featured GModule based plugin library', requires : [GLIB, GOBJECT, GMODULE], ############################################################################### # loader-tests static library ############################################################################### gplugin_loader_tests = static_library('gplugin-loader-tests', 'gplugin-loader-tests.c', 'gplugin-loader-tests.h', c_args : ['-DGI_TYPELIB_PATH="@0@"'.format(meson.current_build_dir())], dependencies : [gplugin_dep], ############################################################################### ############################################################################### if get_option('introspection') gplugin_gir = gnome.generate_gir(gplugin, sources : GPLUGIN_SOURCES + GPLUGIN_HEADERS + GPLUGIN_PUBLIC_BUILT_SOURCES + GPLUGIN_PUBLIC_BUILT_HEADERS, includes : ['GModule-2.0', 'GObject-2.0'], symbol_prefix : 'gplugin', export_packages : ['gplugin'], extra_args : ['--quiet', '-DGPLUGIN_COMPILATION']) ############################################################################### ############################################################################### # install the normal includes into the gplugin subdirectory subdir : 'gplugin-1.0/gplugin' ############################################################################### ###############################################################################