Create a libvlc_opengl and libvlc_opengles library that are built only
if one other target is needing it, avoiding to compile the OpenGL code
once per module using it and removing the need for OPENGL_COMMON* vars.
As the fact we're using OpenGL or OpenGL ES is defined at compile time,
the clients must use the correct variant depending on what they use.
In addition, this patch refactor the glesv2 detection in order to
enable both the gles2 display plugin and the libvlc_opengles.la target
which must not be built on Windows target for example.
This moves the network device management in a specific IDeviceLister
implementation, and now handles all filesystem (local and network) from
the same code
Older versions of mingw had bogus headers when using WIN32_LEAN_AND_MEAN.
Also integrate the patch from Francois to fix the detection in configure.
Co-authored-by: Francois Cartegnie <fcvlcdev@free.fr>
This is the proper counterpart to windowsapp.
Now that we have a proper Docker image to build it:
registry.videolan.org/vlc-debian-llvm-uwp:20200603145315
A recent mingw64 8 (unreleased) is needed to make use of this. It's available
in our Docker images and in msys2 (although it's using msvcrt so it will
probably fail to link properly)
The forced -lwindowsappcompat is added like the other LDFLAGS in configure.ac.
It may link with iphlpapi but be forbidden in UWP.
This test relies on the fact that -Werror-implicit-function-declaration works
in the compiler. And that's why it's done after it's enabled.
It's only used for the --miface option to set the preferred multicast interface.
If there's one in the process use it. If there's none fallback to
default VLC icon with the old code.
This not only avoids VLC builds depending on GTK, but this should
prevent crashes if GTK 2 is present in the process (e.g. through Qt plugin).
CoreServices is an iOS 12.0+ API so it cannot be linked when targetting
iOS 9.0. However it is still needed for MacOS and available since 10.0+
which is lesser than the target version.
See https://developer.apple.com/documentation/coreservices
Since 255e2ce27, we try not to override _WIN32_WINNT in case it already
is defined on the command line to a higher value. However, if it isn't
specified on the command line, but the toolchain headers default to
a newer version, we should also honor it and keep that version instead
of forcing a lower version here. (If the toolchain defaults to a newer
version, runtime libs of the toolchain may rely on such a new version
anyway, so forcing a lower target within VLC might be useless.)
OS/2 socket APIs use int not unsigned int in place of socklen_t. As
a result, compilation is stopped at function call requiring socklen_t *
because of type mismatch between int * and unsigned int *.
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz>
"enable_brprot" was never set when --disable-branch-protection was passed, so
the test != "no" was always true.
Use the name "enable_branch_protection" instead that will be initialized by
autoconf.
PS: --disable-branch-protection seems to be needed to get symbols via gdb.