From 0a3864221426663f1c3be8e07e632c7a62d1d2bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 19 Sep 2016 12:06:05 +0000 Subject: [PATCH] rpicamsrc: Add experimental build using the Meson build system Builds in about 10 seconds vs. 77 seconds with autotools. --- sys/rpicamsrc/gstplugin.map | 3 +++ sys/rpicamsrc/meson.build | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 sys/rpicamsrc/gstplugin.map create mode 100644 sys/rpicamsrc/meson.build diff --git a/sys/rpicamsrc/gstplugin.map b/sys/rpicamsrc/gstplugin.map new file mode 100644 index 0000000000..08d854102a --- /dev/null +++ b/sys/rpicamsrc/gstplugin.map @@ -0,0 +1,3 @@ +{ global: +gst_plugin_desc; +local: *; }; diff --git a/sys/rpicamsrc/meson.build b/sys/rpicamsrc/meson.build new file mode 100644 index 0000000000..62c21451cc --- /dev/null +++ b/sys/rpicamsrc/meson.build @@ -0,0 +1,36 @@ +rpicamsrc_sources = [ + 'gstrpicamsrc.c', + 'gstrpicamsrcdeviceprovider.c', + 'RaspiCapture.c', + 'RaspiCamControl.c', + 'RaspiPreview.c', + 'RaspiCLI.c', +] + +# This can be simplified once meson gets native support for glib-mkenums (soon) +glib_mkenums = find_program('glib-mkenums') + +gstrpicam_enum_types_h = custom_target('gstrpicam-enum-types.h', + output : 'gstrpicam-enum-types.h', + input : files('gstrpicam_types.h'), + command : [glib_mkenums, '--template', meson.current_source_dir() + '/gstrpicam-enums-template.h', '@INPUT@'], + capture : true) + +gstrpicam_enum_types_c = custom_target('gstrpicam-enum-types.c', + output : 'gstrpicam-enum-types.c', + input : files('gstrpicam_types.h'), + depends : [gstrpicam_enum_types_h], + command : [glib_mkenums, '--template', meson.current_source_dir() + '/gstrpicam-enums-template.c', '@INPUT@'], + capture : true) + +mapfile = 'gstplugin.map' + +library('gstrpicamsrc', + rpicamsrc_sources, gstrpicam_enum_types_h, gstrpicam_enum_types_c, + c_args : gst_rpicamsrc_args, + include_directories : config_inc, + link_args : '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), mapfile), + link_depends : mapfile, + dependencies : [gst_dep, gstbase_dep, gstvideo_dep] + mmal_deps, + install : true, + install_dir : plugins_install_dir)