Closed kloczek closed 1 month ago
Looks loke the same is with MacOS option.
Dependency appleframeworks (modules: Foundation, AudioToolbox) skipped: feature audiounit disabled
Header "AudioToolbox/AudioToolbox.h" has symbol "kAudioUnitSubType_RemoteIO" skipped: feature audiounit disabled
Run-time dependency appleframeworks found: NO (tried framework)
meson.build:802:15: ERROR: Dependency "appleframeworks" not found, tried framework
Not passing --auto-features
works as intended.
--auto-features {enabled,disabled,auto}
Override value of all 'auto' features
(default: auto).
According to meson docs, auto should be the default anyway so I'm not sure where this discrepancy comes from if you explicitly state the default.
auto-features has nothing to do with checking non-Linux features on Linux.
That options should force checking Linux only features as enabled shortening list of meson params.
All distributions are using meson with --auto-features=enabled
in build procedures.
Run meson with --auto-features=enabled.
Not supported use-case and unlikely to be supported. As always patches are welcome, but the burden of system checking every feature manually will make meson.build messy. Of course it could be done nicely, split into smaller meson.build files that would live in say osdep/<target>
, but then targets have sub-targets. For example win32 mingw/msvc or all flavors of posix linux/freebsd/...
Some features simply doesn't make sense to be enabled if they are not supported like if you are building with older macos SDK, macos-12-features
won't work.
Some are mutually exclusive, and disabled, for example if win32-threads
is enabled, pthread-debug
cannot be enabled.
Some features might be not available because the library is too old, even if the target system is "normally" compatible with given feature.
This is what auto detection is for. Detect if given feature is available, regardless of the system. Some features naturally won't be available on other systems, but some others might be. It is job for meson to detect things and not keep static table of enabled features.
All distributions are using meson with --auto-features=enabled in build procedures.
Citation needed. mpv is packaged by many distributions and it was never a problem.
SuSE, Fedora/RHEL .. all uses by default in %meson macro --auto-features=enabled.
Again: what is the sense checking blindly non-linux features on Linux or Linux factures on MacOS?
Mingw/Cygwin it is another story.
Disabling auto detection is not supported currently. You can disable things that are expected to be not available on your distribution after doing --auto-features=enabled
. Should be short enough list compared to enabling everything.
I've also had an idea to improve this, because it would simplify some scripts, but in the end of the day, refactoring whole meson.build was not on my wishlist ;)
mpv is multiplatform software. There are some features that are os-specific. If I on my linux machine pass -Dwin32-threads=enabled
, then the build absolutely should fail because it is impossible for that feature to work. If it doesn't, there is a bug in the meson logic. Passing --auto-features=enabled
makes no sense for mpv. You are blindly enabling every single feature. Of course it won't work on your machine.
I would be strongly against some weird hack that tries to detect if --auto-features=enabled
was passed and then magically ignore os-specific stuff behind the user's back despite the fact they were passing nonsensical options to meson anyway. My suggestion would be simply don't do this. Throw in an --auto-features=auto
after your distro's wrapper if you need to. Only enable what you actually need.
Thera plenty of OS specific packages which ALREADY not checking some OS specyfice options even if they are specified.
This is
mpv
is only known for me packa which ignores that and blindly checks those options.
mpv Information
Other Information
Reproduction Steps
Run meson with
--auto-features=enabled
.Expected Behavior
Only Linux option should be checked when meson is executed on Linux.
Actual Behavior
Look like Windows options are checked.
Log File
Sample Files
No response
I carefully read all instruction and confirm that I did the following:
--log-file=output.txt
.