mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-18 04:05:34 +00:00
gstreamer-full: helpers built as tools
gst-plugin-scanner and gst-completion-helper are now built part of the helpers as tools. Add libraries to the summary to know what library will be built and can be exposed by gstreamer-full Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
This commit is contained in:
parent
5873747a59
commit
8a28136627
2 changed files with 100 additions and 22 deletions
63
meson.build
63
meson.build
|
@ -150,6 +150,10 @@ plugins_doc_caches = []
|
||||||
orc_update_targets = []
|
orc_update_targets = []
|
||||||
all_plugins = []
|
all_plugins = []
|
||||||
all_tools = {}
|
all_tools = {}
|
||||||
|
all_helpers = {}
|
||||||
|
gst_tools = []
|
||||||
|
gst_helpers = []
|
||||||
|
gst_libraries =[]
|
||||||
# Using a list and not a dict to keep the ordering to build the chain of `gir`
|
# Using a list and not a dict to keep the ordering to build the chain of `gir`
|
||||||
# dependencies
|
# dependencies
|
||||||
all_libraries = []
|
all_libraries = []
|
||||||
|
@ -194,6 +198,7 @@ foreach sp : subprojects
|
||||||
all_libraries += subproj.get_variable('gst_libraries', [])
|
all_libraries += subproj.get_variable('gst_libraries', [])
|
||||||
if not get_option('tools').disabled()
|
if not get_option('tools').disabled()
|
||||||
all_tools += subproj.get_variable('gst_tools', {})
|
all_tools += subproj.get_variable('gst_tools', {})
|
||||||
|
all_helpers += subproj.get_variable('gst_helpers', {})
|
||||||
endif
|
endif
|
||||||
|
|
||||||
orc_update_targets += subproj.get_variable('orc_update_targets', [])
|
orc_update_targets += subproj.get_variable('orc_update_targets', [])
|
||||||
|
@ -370,6 +375,7 @@ if building_full
|
||||||
|
|
||||||
foreach pkgname_library : all_libraries
|
foreach pkgname_library : all_libraries
|
||||||
pkg_name = pkgname_library[0]
|
pkg_name = pkgname_library[0]
|
||||||
|
gst_libraries += pkg_name
|
||||||
lib_def = pkgname_library[1]
|
lib_def = pkgname_library[1]
|
||||||
|
|
||||||
if pkg_name in wanted_libs or all_libs
|
if pkg_name in wanted_libs or all_libs
|
||||||
|
@ -471,8 +477,9 @@ if building_full
|
||||||
meson.override_dependency('gstreamer-full-1.0', gst_full_dep)
|
meson.override_dependency('gstreamer-full-1.0', gst_full_dep)
|
||||||
|
|
||||||
if not get_option('tools').disabled()
|
if not get_option('tools').disabled()
|
||||||
|
# Loop for tools
|
||||||
foreach tool, data: all_tools
|
foreach tool, data: all_tools
|
||||||
gst_full_tools += tool
|
gst_tools += tool
|
||||||
exe_name = '@0@-@1@'.format(tool, apiversion)
|
exe_name = '@0@-@1@'.format(tool, apiversion)
|
||||||
|
|
||||||
deps = []
|
deps = []
|
||||||
|
@ -509,7 +516,57 @@ if building_full
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
# Loop for helpers tools
|
||||||
|
foreach helper, data: all_helpers
|
||||||
|
gst_helpers += helper
|
||||||
|
exe_name = '@0@'.format(helper)
|
||||||
|
|
||||||
|
deps = []
|
||||||
|
foreach d : data.get('deps', [])
|
||||||
|
if d not in exposed_deps
|
||||||
|
deps += d
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
exe = executable(exe_name,
|
||||||
|
data.get('files'),
|
||||||
|
install: data.get('install', true),
|
||||||
|
install_tag: data.get('install_tag', 'bin'),
|
||||||
|
install_dir: data.get('install_dir', get_option('bindir')),
|
||||||
|
include_directories : data.get('include_directories', [configinc]),
|
||||||
|
dependencies : [gst_full_dep] + deps,
|
||||||
|
c_args: data.get('extra_c_args', []) + gst_c_args + ['-DG_LOG_DOMAIN="@0@"'.format(exe_name)],
|
||||||
|
cpp_args: data.get('extra_cpp_args', []),
|
||||||
|
objc_args: data.get('extra_objc_args', []),
|
||||||
|
override_options: data.get('override_options', []),
|
||||||
|
)
|
||||||
|
|
||||||
|
if(data.has_key('env'))
|
||||||
|
env = data.get('env')
|
||||||
|
value = env[1]
|
||||||
|
if env[1] == 'exe-full-path'
|
||||||
|
value = exe.full_path()
|
||||||
|
endif
|
||||||
|
meson.add_devenv({env[0]: value})
|
||||||
|
endif
|
||||||
|
|
||||||
|
if data.has_key('man_page')
|
||||||
|
install_man(data.get('man_page'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
endforeach
|
||||||
endif
|
endif
|
||||||
|
else # not gst_full
|
||||||
|
foreach tool, data: all_tools
|
||||||
|
gst_tools += tool
|
||||||
|
endforeach
|
||||||
|
foreach helper, data: all_helpers
|
||||||
|
gst_helpers += helper
|
||||||
|
endforeach
|
||||||
|
foreach library : all_libraries
|
||||||
|
gst_libraries = library[0]
|
||||||
|
endforeach
|
||||||
endif
|
endif
|
||||||
|
|
||||||
message('Building subprojects: ' + ', '.join(subprojects_names))
|
message('Building subprojects: ' + ', '.join(subprojects_names))
|
||||||
|
@ -556,6 +613,8 @@ endif
|
||||||
summary({
|
summary({
|
||||||
'gstreamer-full library': building_full,
|
'gstreamer-full library': building_full,
|
||||||
'gstreamer-full target type': get_option('gst-full-target-type'),
|
'gstreamer-full target type': get_option('gst-full-target-type'),
|
||||||
'Tools': gst_full_tools,
|
'Tools': gst_tools,
|
||||||
|
'Helpers': gst_helpers,
|
||||||
|
'Libraries': gst_libraries,
|
||||||
'Tests and examples disabled': building_full,
|
'Tests and examples disabled': building_full,
|
||||||
}, section: 'Build options', bool_yn: true, list_sep: ' ')
|
}, section: 'Build options', bool_yn: true, list_sep: ' ')
|
||||||
|
|
|
@ -1,30 +1,49 @@
|
||||||
subdir('ptp')
|
subdir('ptp')
|
||||||
|
|
||||||
exe = executable('gst-plugin-scanner',
|
gst_helpers = {
|
||||||
'gst-plugin-scanner.c',
|
'gst-plugin-scanner': {
|
||||||
c_args : gst_c_args,
|
'files': files('gst-plugin-scanner.c'),
|
||||||
include_directories : [configinc],
|
'deps': [gst_dep, mathlib, gmodule_dep],
|
||||||
dependencies : [gst_dep, mathlib, gmodule_dep,],
|
'env': ['GST_PLUGIN_SCANNER', 'exe-full-path'],
|
||||||
install_dir : helpers_install_dir,
|
'install_dir': helpers_install_dir,
|
||||||
install: true,
|
},
|
||||||
)
|
'gst-completion-helper': {
|
||||||
|
'files': files('gst-completion-helper.c'),
|
||||||
|
'deps': [gst_dep],
|
||||||
|
'install_dir': helpers_install_dir,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
meson.add_devenv({'GST_PLUGIN_SCANNER': exe.full_path()})
|
if not get_option('tools').disabled() and not static_build
|
||||||
|
foreach helper, data: gst_helpers
|
||||||
|
exe_name = '@0@'.format(helper)
|
||||||
|
exe = executable(exe_name,
|
||||||
|
data.get('files'),
|
||||||
|
install: data.get('install', true),
|
||||||
|
install_tag: 'bin',
|
||||||
|
install_dir: data.get('install_dir', get_option('bindir')),
|
||||||
|
include_directories : [configinc],
|
||||||
|
dependencies : data.get('deps', []),
|
||||||
|
c_args: data.get('extra_c_args', []) + ['-DG_LOG_DOMAIN="@0@"'.format(exe_name)],
|
||||||
|
)
|
||||||
|
if(data.has_key('env'))
|
||||||
|
env = data.get(('env'))
|
||||||
|
value = env[1]
|
||||||
|
if env[1] == 'exe-full-path'
|
||||||
|
value = exe.full_path()
|
||||||
|
endif
|
||||||
|
meson.add_devenv({env[0]: value})
|
||||||
|
endif
|
||||||
|
|
||||||
|
if data.has_key('man_page')
|
||||||
|
install_man(data.get('man_page'))
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
endif
|
||||||
|
|
||||||
# Used in test env setup to make tests find plugin scanner in build tree
|
# Used in test env setup to make tests find plugin scanner in build tree
|
||||||
gst_scanner_dir = meson.current_build_dir()
|
gst_scanner_dir = meson.current_build_dir()
|
||||||
|
|
||||||
if bashcomp_found
|
|
||||||
executable('gst-completion-helper',
|
|
||||||
'gst-completion-helper.c',
|
|
||||||
c_args : gst_c_args,
|
|
||||||
include_directories : [configinc],
|
|
||||||
dependencies : [gst_dep],
|
|
||||||
install_dir : helpers_install_dir,
|
|
||||||
install_tag : 'bin',
|
|
||||||
install: true,
|
|
||||||
)
|
|
||||||
endif
|
|
||||||
|
|
||||||
install_data(['gst_gdb.py', 'glib_gobject_helper.py'],
|
install_data(['gst_gdb.py', 'glib_gobject_helper.py'],
|
||||||
install_dir : join_paths(get_option('datadir'), 'gstreamer-@0@'.format(apiversion), 'gdb'),
|
install_dir : join_paths(get_option('datadir'), 'gstreamer-@0@'.format(apiversion), 'gdb'),
|
||||||
|
|
Loading…
Reference in a new issue