Autoconf will require m4 to build correctly, and will complain with the
following error, at least starting with Autoconf 2.72, when the system
provided m4 is too old:
GNU M4 1.4.8 or later is required; 1.4.16 or newer is recommended.
GNU M4 1.4.15 uses a buggy replacement strstr on some systems.
Glibc 2.9 - 2.12 and GNU M4 1.4.11 - 1.4.15 have another strstr bug.
yes
checking whether stricmp is declared... make: *** [.buildautoconf] Error 1
make: *** Waiting for unfinished jobs....
Ensure that whenever we need to build m4, we build it before autoconf.
It seems `<sdk_name>_simulator_version_min` or `<sdk_name>_version_min` option isn't supported by the latest linker and the build fails with Xcode 15.
This patch will use the recommended `platform_version` option instead.
The `test` call expects two values between an operator like `=` and the
output of pkg-config can be null. In that case, no argument is given for
an empty string without proper quoting and test signal an error.
ffmpeg libraries ie. avcodec, avformat, swscale and postproc were
disabled for emscripten shared compilation as ffmpeg was not built
with position independent code.
Enable pic for ffmpeg, and ultimately enable those libraries
shared compilation.
Emscripten needs symbols to be exported with -s EXPORTED_FUNCTIONS
in case of building with -s SIDE_MODULE=2, otherwise the functions
are not "visible" from other modules or removed as optimization.
This patch will implement exported functions on libtool for
emscripten.
This is how it's done for other targets. They rely on get-contrib-sha.sh
to check if files moved in these folders but we can do that with gitlab
for a pure contrib build which will never get contrib packages.
It contains more preinstalled libraries so more modules are built by default.
protoc/protobuf is also available on the system so it can be picked during
compilation.
The debian job is not using the contribs at all, split the job in two so
that it can be parallelized more easily and so that the debian job
reflect the time it took to build VLC.
Note that it notably changes the folder where debian contribs are
uploaded.
Meson 1.0.0 allows writing 0x0 characters into the junit test output,
which is not allowed in XML files and it prevents gitlab CI from parsing
the output of the tests. This can be checked locally with:
meson setup build
meson test -C build css_parser
xmllint build/meson-logs/testlog.junit.xml
Currently emscripten builds all its libraris statically. This commit
will make necessary changes to the build script to make it possible.
The shared module based building can be triggered with the parameter
--enable-emscripten
Currently libtool.m4 does not have information about
wasm32-unknown-emscripten in host_os. Which causes failure in
enabling shared libraries.
This patch will create a new host_os case named emscripten in
libtool.m4 to allow us to enable shared library compilation
and add emscripten specific shared library building flags.
This patch will also add some shared library configuration in
libtool for emscripten host.
Extract the build target when building luac files.
Before:
MAKE : share
...
luac -o lua/extensions/VLSub.luac ../../share/lua/extensions/VLSub.lua
After:
MAKE : share
...
COMPILE : lua/extensions/VLSub.luac
Taking the same ideas as b46611fee3, we
can ensure the distcheck builds everything when run in the CI, so that
the currently disabled modules are built for real and tests can use
them. They should stay disabled since they would break distcheck when
the mandatory plugins cannot be built, but we can ensure that in the CI
in a reliable way.
We use it as an argument to make so that make actually erase the value
in the makefile.
Refs #27761 but medialibrary still needs to be installed on the platform
since contribs are not enabled with the current distcheck configuration.
The error message is printed (among others) when the major versions
differ, not only when the current version is older than the expected
one, so "too old" may be incorrect.
Before:
> meson too old
After:
> meson incompatible version (expected 0.51.1, got 1.1.1)
No real functional changes but the script was modified to allow building
VLC from the libvlcjni, so make sure the last version still work with
the VLC CI (tested only locally).
The libc++(abi)-dev packages have been removed because one of their
dependencies conflicted with one of the gstreamer dependencies. As a
result, the gstreamer dependency was not installed and pkg-config was
unable to satisfy the requirements for gstreamer. With the conflicting
package now gone, gstreamer is installed properly and the Debian CI job
is now able to build the gstdecode module.
Amends d0c0a3147a.
Some contribs may be disabled depending on the license chosen.
By default we build with GPLv3 compatibility. libvlc-only builds may want
to restrict to LGPL v3 with ad-clause or LGPL v2.1 with ad-clause.
Some contribs may be disabled depending on the license chosen.
By default we build with GPLv3 compatibility. libvlc-only builds may want
to restrict to LGPL v3 with ad-clause or LGPL v2.1 with ad-clause.
faad is automatically picked when building for GPL and not picked
otherwise. We should never force it.