Age | Commit message (Collapse) | Author | Files | Lines |
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1615>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1615>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1583>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1583>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1589>
|
|
Force=False to prevent variant override set previously by user config
Fix: #484
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1550>
|
|
We only support binutils >=2.36 on Linux, which means Ubuntu 22.04 or
Debian Bookworm, or thereabouts.
Fixes https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/490
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1545>
|
|
The code is quite difficult to follow if we're overriding
arch-specific Config values in cookbook.py
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1494>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1368>
|
|
wholesale
In !1191 (commit 643087f3f09fd637b29335efb608ac7a82031ecf), the removal of GCC
support relied on making the Android compiler available to all processes. This
fixed accessing the host's compiler for Meson based builds like fribidi's, and
also allowed OpenSSL to build, but there was a hidden side effect: it broke
Rust's ability to compile build scripts because the linker it finds (LLVM 14
from the NDK) no longer supports `--no-add-needed` [1] [2].
A more Meson-ese fix is to pass the toolchain as a constant in the native file,
and fill the path in manually. This also needs to be injected manually into the
`PATH` for OpenSSL as that's how its configure script consumes the toolchain.
[1]: https://github.com/llvm/llvm-project/issues/54756
[2]: https://github.com/llvm/llvm-project/commit/815a1207bfe121c8dcf3804a4f4638e580f63519
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1368>
|
|
We can enable these now with the various fixes that have gone in.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1341>
|
|
From !915 and !1191, the following bits were missing:
- Autotools expects the raw linker to perform detection for version
scripting. If that parameter isn't detected in the `--help`, shared
libraries are disabled (breaks libpng).
- Cargo, conversely, expects implicitly the clang executable itself
because of a new dependency on libunwind starting with 1.68
To appease both, I pass the corresponding linkers separately, then
massage the flags into link-args entries in the TOML's rustflags entry.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1255>
|
|
We are already setting the minimum version via a (-m) argument and the
-Wl, variant now produces errors from clang.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1289>
|
|
Needed for some abseil-cpp code:
../subprojects/abseil-cpp-20230125.1/absl/status/status.cc:129:30: error: 'value' is unavailable: introduced in iOS 12.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1236>
|
|
There are a bunch of reasons to do this:
1. This is the oldest version of macOS that people still use
- Released 5½ years ago, went out of security support 2½ years ago
- 93.5% according to https://www.statista.com/statistics/944559/worldwide-macos-version-market-share/
- 96.8% according to https://gs.statcounter.com/os-version-market-share/macos/desktop/worldwide
2. GLib uses `utimensat` added in 10.13 for nanosecond granularity
file timestamps, which is an important feature
3. This is also the oldest version supported by Qt5
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1115>
|
|
APIs that are only available on newer macOS versions need to be
guarded with __builtin_available for a runtime check that won't load
the symbol at all on older OS versions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1115>
|
|
The relevant c++ standard library is now automaticaly added by the
compiler/linker and our gross hack involving gnustl.pc/la is not longer
needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1191>
|
|
Everything is done through clang/++ now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1191>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1191>
|
|
Wix allows to build MSI package in a cross
platform environment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/821>
|
|
|
|
Seems unnecessary now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/864>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/864>
|
|
This makes it much easier to read
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/864>
|
|
Doesn't seem to be needed with API level 21.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/864>
|
|
To fix glib 2.74 build issues.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/864>
|
|
Starting with Xcode 14, clang emits `_objc_msgSend` stubs that are
unsupported by older Xcode toolchains. This makes artifacts created
with Xcode 14 unusable with older Xcode versions.
Disable this for now. Other projects are doing the same thing:
https://github.com/llvm/llvm-project/issues/56034
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1034>
|
|
We were setting the default visualstudio variant too late, and the
prefix was being set to mingw_x86_64 in the case when no variant is
specified on Windows, even though Visual Studio is used for
compilation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1006>
|
|
When possible, we now build using Visual Studio by default, unless you
pass -v mingw.
This flips the previous default of using the MinGW toolchain unless
you pass -v visualstudio
The migration path for users on Windows is to wipe their build-tools
prefix and rebuild it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/991>
|
|
Also update the bootstrap step for the Fedora image to download Rust
toolchain files for cross-mingw and cross-android, purely for testing
purposes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/915>
|
|
Apple has deprecated Bitcode support in XCode 14 with a loud warning
asking users to stop using it, and submissions to the App Store now
strip bitcode information. Time to just delete all the relevant code.
https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes#Deprecations
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/879>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/839>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/743>
|
|
This is the initial commit to start supporting MSYS2
(https://www.msys2.org/) in favor of the old MSYS/MinGW.
MSYS2 brings several important improvements:
* Project with active development
* In sync with latest Cygwin
* Up-to-date packages
* Package manager
Here is a more detailed writeup of MSYS2 from Git's migration
https://github.com/git/git/commit/df5218b4c30b2fa1ba0d1ada4166ad85bc83be26
The old msys will still be supported to ease the migration but
a deprecation warning will be shown to migrate to MSYS2
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/743>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/752>
|
|
This may be important for anything produced by the C Preprocesser
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/715>
|
|
When building for universal, the build-tools pkg-config is not
sufficient as it is not built for the universal archs. We need to build
our own version to distribute.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/701>
|
|
OBJCXXFLAGS are not being set correctly so Objective-C++ files
were compiled with the build arch instead of the target one
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/673>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/661>
|
|
When building from Intel we want to cross-compile for ARM64
When building from Apple silicon we want to cross-compile for X86_64
For releases we want universal builds
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/661>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/661>
|
|
It seems like MSYS Perl sometimes hangs on the Windows CI runners and
causes the cerbero build jobs to hang. Maybe the MinGW Perl won't hang
because it's not ancient.
Some recipes such as autoconf and automake fail to build when using
the newer Perl, so continue to use the MSYS perl for those.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/616>
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/607>
|
|
This is identical to how the cross-android-universal target works.
Supported UWP arches are: x86, x86_64, arm64. This covers 100% of
Windows 10 machines:
https://docs.microsoft.com/en-us/windows/msix/package/device-architecture
Advantages are the same as Android:
1. Most people will build apps that target multiple (or all) archs
2. Easier to build and ship all arches at once
3. Easier to download two tarballs rather than six
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/551>
|
|
We've been doing this since the beginning to ensure correct paths
inside various files such as .pc and .la, but we this is not needed
anymore for two reasons:
1. We ship pkg-config with --define-prefix enabled
2. MSI supports installing into any location
So, always use dirs inside the build/ directory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/537>
|
|
Really silly oversight.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/497>
|
|
These haven't been used ever since glib was ported to Meson:
glib_cv_stack_grows is now set as a cross property
glib_cv_uscore is correctly detected with meson
getpwuid_r is correctly detected with meson
getgrgid_r is correctly detected with meson
wchar_t is available and things work fine (added in 2013, no notes)
_NSGetEnviron is fixed in the previous commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/489>
|
|
Since Visual Studio is optional now, this patch is non-trivial.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/480>
|
|
Unlike any other platform, on Windows we build recipes with both
MSVC and MinGW. All Meson recipes can be built with MSVC, but the
Autotools recipes always use MinGW.
This broke the fundamental assumption that `self.config.config_env`
contains all the information needed by the build system to find the
toolchain that we want to use.
At the time, we hacked around it by unsetting MinGW toolchain env vars
inside `build.py`, and storing msvc toolchain env vars in
`self.config.msvc_toolchain_env`. We would then set those only when
building recipes that can use MSVC.
This completely breaks down when you want to cross-compile on Windows,
because we need some env vars to stay in the env, and others to only
be in the cross file.
To fix this, a bunch of things had to change:
1. Use actual objects for environment variable values: `EnvValue` and
other classes that inherit from it. These allow easier
merging/overriding of env var values.
2. Separate out env vars according to their stated purpose:
a) Configuration for build tools (WINEPREFIX, WINDEBUG, etc)
b) Configuration for toolchain (LIBRARY_PATH, INCLUDE, LIB, etc)
c) Configuration for build system (CC, CFLAGS, ac_cv_*, etc)
3. Always use a native-file or a cross-file for selecting the
toolchain when using Meson.
4. Rename meson_cross_properties to meson_properties, since we use
those even when not cross-compiling.
Future TODO: port all env var usage in config.py and config/*.config
to the new EnvValue* objects
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/480>
|
|
While parsing config files such as the platform config files, we were
exposing variants as an unresolved `list` of "operations" that will
enable or disable the variant once they've all been resolved
This is buggy because it means that platform config files have no way
to know whether a variant has actually been disabled or enabled by the
user.
Now we always parse variants into the `Variants` object before parsing
all configuration files.
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/480>
|