Build our tools against gstreamer-full when building statically
Currently when building gstreamer-full
the GStreamer tools are basically useless as they do not have any plugin built, in that case we want to build all the tools against gstreamer-full
itself.
Fixes: #826 (comment 1230288)
Merge request reports
Activity
mentioned in issue #826 (closed)
- Resolved by Thibault Saunier
Instead of adding all these
#include
hacks, we can dosubproject(...).get_variable()
maybe?
- Resolved by Thibault Saunier
Maybe we could move tools out of gstreamer core and have them in their own subproject that we configure after building gstreamer-full?
If so, don't you think gstreamer-full should also be in its own subproject? That seems more consistent :)
added 528 commits
-
c6ab0a17...fe16900d - 527 commits from branch
gstreamer:main
- 4222a6fa - tools: Add support for building gstreamer tools against gst-full
-
c6ab0a17...fe16900d - 527 commits from branch
@nirbheek Can you check if that is what you had in mind?
- Resolved by Thibault Saunier
- Resolved by Thibault Saunier
@thiblahute I like the approach, it follows the pattern we already have for all_plugins and all_libraries.
- Resolved by Thibault Saunier
- Resolved by Thibault Saunier
- Resolved by Thibault Saunier
Probably not a blocker because that's something we never tried before, but I gave a try to cross compile gst-full for Windows with this PR, my hope is we could end up with a standalone gst-launch-1.0.exe that just works. After many fixes, I got to the final link stage:
x86_64-w64-mingw32-g++ -o gst-launch-1.0.exe gst-launch-1.0.exe.p/subprojects_gstreamer_tools_gst-launch.c.obj -Wl,--allow-shlib-undefined -Wl,--start-group libgstreamer-full-1.0.dll.a subprojects/glib/glib/libglib-2.0.a subprojects/proxy-libintl/libintl.a subprojects/glib/glib/libcharset/libcharset.a subprojects/glib/glib/gnulib/libgnulib.a subprojects/pcre-8.37/libpcre.a subprojects/glib/gobject/libgobject-2.0.a subprojects/libffi/src/libffi.a subprojects/glib/gmodule/libgmodule-2.0.a subprojects/gstreamer/gst/libgstreamer-1.0.a subprojects/gstreamer/gst/printf/libgstprintf.a -lm -lws2_32 -lwinmm -lws2_32 -Wl,--subsystem,console -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group /usr/bin/x86_64-w64-mingw32-ld: subprojects/proxy-libintl/libintl.a(libintl.c.obj): in function `g_libintl_gettext': /home/xclaesse/programmation/gstreamer/builddir/../subprojects/proxy-libintl/libintl.c:252: multiple definition of `g_libintl_gettext'; libgstreamer-full-1.0.dll.a(d000072.o):(.text+0x0): first defined here
I think tools should link exclusively on libgstreamer-full-1.0.dll.a because that lib is supposed to expose glib/gst API already.
added 1 commit
- b3b2b84c - tools: Add support for building gstreamer tools against gst-full
added 1 commit
- 6bcf7955 - tools: Add support for building gstreamer tools against gst-full
- Resolved by Thibault Saunier
added 84 commits
-
6bcf7955...599257bf - 83 commits from branch
gstreamer:main
- 7ca289dd - tools: Add support for building gstreamer tools against gst-full
-
6bcf7955...599257bf - 83 commits from branch
assigned to @gstreamer-merge-bot