Commit Graph

2164 Commits

Author SHA1 Message Date
78andyp 8cb3418713
Merge pull request #27048 from 78andyp/folderstacks
[Video] Folder Stacks
2025-12-11 14:39:21 +00:00
fuzzard 787605e169 [cmake] FindFFMPEG add dependency tracking for dav1d dependency
Respect dependency force rebuild
2025-12-09 19:16:27 +10:00
fuzzard 4c2d286167 [win] Builddependencies remove prebuilt dav1d 2025-12-09 19:16:27 +10:00
fuzzard 67efed9f3f [cmake] FindDav1d use new default structure for building/searching packages 2025-12-09 19:16:27 +10:00
fuzzard 12c372da21 [cmake] ModuleHelper function to generate dev_env variable for externalproject_add
Currently specifically for windows to set a dev environment for target configure and
build steps for externalproject_add calls
2025-12-08 19:20:56 +10:00
fuzzard b6d2a6af6a [cmake] FindNASM add native tools HINTS path 2025-12-08 19:20:56 +10:00
fuzzard e039c778de [cmake] FindGASPP build tool module
Find Gas-preprocessor script
2025-12-08 19:20:56 +10:00
fuzzard 56dd54c18e [cmake] Add FindPkgConfig module
native cmake FindPkgConfig does not recognise the pkgconf executable, so
we look to override to handle both pkgconfig and pkgconf
2025-12-08 19:20:56 +10:00
fuzzard fd11e2c320 [cmake] FindVcvars introduce module
Upstream source is https://github.com/scikit-build/cmake-FindVcvars
BSD-3 licensed. We use as is. There was an effort for the creators to upstream into
cmake itself, but so far hasnt materialised. For now, add in tree.
2025-12-08 19:20:56 +10:00
fuzzard 912b5f0c76 [cmake] Introduce FindNinja module 2025-12-08 19:20:56 +10:00
fuzzard f6e2c6c30b [cmake] Introduce FindMeson package 2025-12-08 19:20:56 +10:00
fuzzard 7296bdd45a [cmake] FindFFMPEG check VDPAU/VAAPI if optional to platform 2025-12-08 19:20:56 +10:00
fuzzard 24fec175b2 [cmake] meson cross generation - fix module specific flags when empty spaces
Remove extra whitespace from flag variables to avoid adding empty '' arguments
2025-12-08 19:20:56 +10:00
fuzzard 1cf32eb13a [cmake] enable build libmicrohttpd internally 2025-12-07 19:41:14 +10:00
fuzzard 4e88562336 [cmake] Modulehelpers set DEP_BUILDENV for BUILD_COMMAND in BUILD_DEP_TARGET
CONFIGURE_COMMAND and BUILD_COMMAND are separate environments, so set DEP_BUILDENV
to populate tools/info to the build step as well as the configure step
2025-12-07 19:41:14 +10:00
78andyp 53ccef6151 Refactor stacking code in CFileItemList to generate folder stacks.
Improve regex to allow for additional volume qualifiers (eg. part x)
2025-12-06 17:27:49 +00:00
fuzzard cefc179a43
Merge pull request #27550 from fuzzard/fix_cmake_dav1d-ffmpeg
[cmake] FindFFMPEG
2025-12-05 19:37:12 +10:00
fuzzard 59e933e5e9 [cmake] FindFFMPEG loosen version requirements of dav1d for linux/freebsd platforms 2025-12-03 20:01:15 +10:00
fuzzard eebea8cec4 [cmake] FindFFMPEG dont REQUIRE the pkg_check_modules for ffmpeg modules initially 2025-12-02 19:43:01 +10:00
James Le Cuirot bb864e739b
[cmake] Fix double installation of TexturePacker
TexturePacker is being installed twice, but this is only noticeable when
installing Kodi with DESTDIR, which is common in distributions. The copy
installed by FindTexturePacker.cmake normally gets reinstalled in place,
but with DESTDIR applied, it lands under /path/to/destdir/path/to/build.

There is no need for FindTexturePacker.cmake to install it anyway. This
change stubs the install command, runs TexturePacker from its build
location, and the wider Kodi installation sources it from there.
2025-12-01 22:57:16 +00:00
fuzzard 1fae1f01ad [cmake] FindFstrcmp remove incorrect *_DISABLE_VERSION log internal build
*_DISABLE_VERSION shouldnt be used if a lib is actually able able to be built
2025-11-30 20:14:09 +10:00
Stephan Sundermann 46c1922df3 [depends][target] Update to ffmpeg 8.0.1 2025-11-25 20:47:14 +01:00
fuzzard 00facf8a24
Merge pull request #27498 from fuzzard/cmake_ffmpeg_miscfixes
[Cmake] FindFFMPEG build logging, fixes unix ffmpeg link wrapper
2025-11-25 15:58:55 +10:00
fuzzard 124c2c2c14
Merge pull request #27494 from fuzzard/cmake_mesoncross_improvements
[cmake] ModuleHelpers meson cross generation improvements
2025-11-25 15:55:35 +10:00
fuzzard d294bd0033
Merge pull request #27505 from fuzzard/fix_win_hosttoolset
[cmake] windows arch use CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
2025-11-25 15:14:18 +10:00
fuzzard fef97ebb27 [cmake] FindFFMPEG set BUILDMODE to noclean to match jenkins previous behaviour
Jenkins default for make-mingwlibs build step was

%WORKSPACE%\tools\buildsteps\windows\x64\make-mingwlibs.bat noprompt noclean sh

Update BUILDMODE to noclean to continue with that behaviour
2025-11-25 13:40:05 +10:00
fuzzard a134e806a4 [cmake] FindFFMPEG use pkgconfig searches for non win platforms
Do single pkg search using pkgconfig to initially populate _FOUND variables for
ffmpeg components. This allows us to enforce tools/depends/target/ffmpeg versioning
to correctly rebuild internal ffmpeg for tools/depends platforms whilst still respecting
API compat minimum versioning
2025-11-25 13:40:05 +10:00
fuzzard 13d46c76bb [cmake] FindFFMPEG add version for internal ffmpeg version
FFMPEG may sometimes be API compatible across major versions, although this is not
guaranteed. For tools/depends platforms and windows, track the version number of
tools/depends/target/ffmpeg versions, but also keep the minimum compat versions
for other platforms that may provide system libs
2025-11-24 17:21:28 +10:00
fuzzard 3239123de0 [cmake] FindFFMPEG always enable build macro for windows
Msys scripts handle rebuild state of ffmpeg
2025-11-24 06:10:05 +10:00
fuzzard 936c372856 [cmake] windows arch use CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE 2025-11-23 08:13:51 +10:00
fuzzard 7a3c0eceba [cmake] FindFFMPEG enable Xcode to build internal FFMPEG
add name pattern to match ios/tvos link
add xcode attribute to use ffmpeg link wrapper
2025-11-22 12:07:21 +10:00
fuzzard 4e7307e2c1 [cmake] FindFFMPEG build logging output 2025-11-22 12:06:32 +10:00
fuzzard e8bd637c5f
Merge pull request #27496 from fuzzard/fix_xcodetahoe_buildfail
[cmake][darwin] blank a number of xcode environment variables
2025-11-22 11:55:37 +10:00
fuzzard fb7c6b57ed [cmake][darwin] blank a number of xcode variables
Tahoe seems to be setting *_DEPLOYMENT_TARGET variables for targets that arent
required for a project. Force unset the unnecessary variables to stop issues with
targets that shell out their process, which would inadvertently then think it was
building an incorrect target

example error
/macos/clang:1:1: conflicting deployment targets, both '12.0' and '25.1' are present in environment

example env
    <...>
    DRIVERKIT_DEPLOYMENT_TARGET = 25.1
    <...>
    IPHONEOS_DEPLOYMENT_TARGET = 12.0
    <...>
    XROS_DEPLOYMENT_TARGET = 26.1
    <...>
2025-11-20 18:27:15 +10:00
fuzzard c581d67a93 [cmake] FindFFMPEG partial revert 77d79c1e3f
android actually builds as a shared library. Removing this meant that android could
not build with internal ffmpeg. Re-add to allow.
2025-11-20 18:21:32 +10:00
fuzzard 0bdb9d1c2e [cmake] ModuleHelpers create_mesonbinaries enable module specific binaries 2025-11-20 18:11:14 +10:00
fuzzard f805ba3931 [cmake] meson-cross enable additional caller specific flags
Allows a caller to provide additional flags for the pairs of builtin options for
C_FLAGS, CXX_FLAGS, EXE_LINKER_FLAGS
2025-11-20 18:05:30 +10:00
fuzzard 7056ef5992 [cmake] meson-cross enable default_library to be set by caller 2025-11-20 18:05:20 +10:00
fuzzard d20b421545 [cmake] create_mesonhostmachine support CMAKE_C_COMPILER_ARCHITECTURE_ID unset 2025-11-20 18:05:06 +10:00
fuzzard 14f7613132 [cmake] ModuleHelpers generate_mesoncrossfile generate unique cross files
generate a cross file named after find module library. This allows us to have
custom meson cross per target to allow customisations on required info to pass to meson
build of a target.
2025-11-20 18:04:55 +10:00
Peter d42f920c22 [cmake] FindLibDovi use correct library name 2025-11-14 20:16:33 +01:00
fuzzard 5232dc14b7
Merge pull request #27463 from fuzzard/fix_cmake_crossguidconfig
[cmake] FindCrossGUID respect cmake config target
2025-11-13 11:20:32 +10:00
fuzzard 165b03dda4
Merge pull request #27465 from fuzzard/fix_cmake_versionchecks
[cmake] Safety check VERSION variables, fix case sensitive issues for flatbuffers search nane
2025-11-13 05:30:37 +10:00
fuzzard 914c356228 [cmake] FindBluetooth remove secondary search name
The second search name causes the expected variables to not be set. Bluez is considered
the defacto for unix, so just drop back to a single search for it.
2025-11-12 17:45:17 +10:00
fuzzard c564cb58d6 [cmake] FindLCMS2 remove custom pkgconfig search name
Fedora/Debian supply lcms2.pc so remove custom search name of liblcms2
2025-11-12 17:45:17 +10:00
fuzzard 2a11a47c20 [cmake] FindFlatBuffers add NAMES alternatives
Some systems have case sensitive FS, FlatBuffersConfig.cmake was not being found
with the search name of flatbuffers. Add NAMES alternatives that respect case
2025-11-12 17:36:32 +10:00
fuzzard 3300331a10 [cmake] Find Modules quote a variable for version checks 2025-11-12 17:35:41 +10:00
fuzzard 419f8d35ab [cmake] FindCrossGUID respect cmake config target 2025-11-12 14:34:22 +10:00
fuzzard 77c3c503ee
Merge pull request #26847 from fuzzard/cmake_remove_fphsa_2
[Cmake] Remove (some) of find_package_handle_standard_args
2025-11-10 14:17:39 +10:00
fuzzard f6d2398d66 [cmake] FindFFMPEG uwp set env var 2025-11-10 09:19:16 +10:00