aboutsummaryrefslogtreecommitdiff
path: root/cmake/scripts
AgeCommit message (Collapse)Author
2023-04-10[UWP][Build] Remove requirement of specific Windows SDK versionthexai
Let's CMake choose latest SDK installed at time of build. Is already like this for Windows x64 desktop.
2023-04-06Merge pull request #23092 from webosbrew/feature/webOSWolfgang Schupp
[webOS] Hardware accelerated video decoding / Magic Remote
2023-04-06webos: Initial starfish video accelerationStephan Sundermann
2023-04-02Merge pull request #22823 from fuzzard/cmake_win_maxthreadsjenkins4kodi
2023-03-27[webos] remove uncecessary keyboard overridewsnipex
2023-03-23[webos] package binary addonswsnipex
2023-03-23[webos] improve packagingwsnipex
2023-03-23[webos] strip all binaries before packaging for release buildswsnipex
2023-03-22Merge pull request #23026 from webosbrew/mariadb-gssapi-webosWolfgang Schupp
[webOS] Stop building mariadb gssapi plugin
2023-03-20webos: Stop building mariadb gssapi pluginStephan Sundermann
2023-03-19webos: dynamically package missing dependency librarieswsnipex
2023-03-18Change to IN_LISTcraigcarnell
2023-03-18Move webos protocol xml target to installcraigcarnell
2023-03-18Add libatomic for webOS 4.9 and libcrypt for webOS 7craigcarnell
2023-03-18webos: move packaging to cmakewsnipex
2023-03-18Initial support for webOS shellcraigcarnell
2023-03-15[Android] Remove OBB expansion filesJose Luis Marti
2023-03-14[cmake][win] allow MAXTHREADS env var for /MP usefuzzard
2023-03-11[tools/depends][target] Build libass as static onlyfuzzard
We also change android packaging to expect static libass
2023-03-11[cmake][android] install remove superfluous loopfuzzard
foreach loop only used for shairplay, where we already explicitly bundle shairplay 3 lines later. Just remove the loop. Add a target test for adding the shairplay lib to bundlefiles
2023-03-11[android][packaging] ANDROID_DEBUGGABLE isnt used since commit 7586145fuzzard
2023-03-10[cmake][android] install use Shairplay::Shairplay target for bundle_filesfuzzard
2023-03-10[cmake][android] add_bundle_file add support for IMPORTED targetsfuzzard
2023-03-01Merge pull request #22873 from CastagnaIT/addon_build_group_sourcesStefano Gottardo
[cmake][addons] Group sources by folder
2023-02-26[cmake][addons] Group sources by folderCastagnaIT
2023-02-22[cmake] set minimum required CMake version to 3.12 everywhereRechi
2023-02-22[cmake] remove smbclient installing on android after 7e5835bfaaRechi
2023-02-22[cmake] remove leftover from Android GCC supportRechi
2023-02-22[cmake] remove deprecated CMAKE_COMPILER_IS_GNUCXXRechi
2023-02-19[cmake] drop disabling compiler warningsRechi
2023-01-14fix cross compilation on windowssscobici
2022-12-24[cmake][win] BUILD_DEP_TARGET macro pass project compiler flags throughfuzzard
We dont use a toolchain for windows (unlike most other unix platforms), so manually pass project compiler flags through to externalproject_add calls for windows cmake projects
2022-11-10[cmake][android] explicitly set j1 for android targets apk/obb/apk-obb/apk-cleanfuzzard
Currently jenkins throws this message for these targets 18:59:59 make[4]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. which effectively forces them to run as -j1. On macos (GNU Make 3.81) if i run multi threaded, it doesnt fall back to -j1, but instead throws errors like the following [100%] Built target bundle cp: directory xbmc/obj/local/arm64-v8a does not exist make[4]: *** [libs] Error 1 make[4]: *** Waiting for unfinished jobs.... rm: assets/addons/metadata.generic.artists/resources/language: Permission denied rm: assets/addons/metadata.generic.artists/resources: Permission denied rm: assets/addons/metadata.generic.artists: Permission denied rm: assets/addons: Permission denied rm: assets: Permission denied make[4]: *** [apk-clean] Error 1 cp: directory xbmc/res/values does not exist make[4]: *** [res] Error 1 make[3]: *** [CMakeFiles/apk] Error 2 make[2]: *** [CMakeFiles/apk.dir/all] Error 2 make[1]: *** [CMakeFiles/apk.dir/rule] Error 2 Forcing j1 on these targets only reduces the final Makefile for packaing to run as j1, but the rest of the build (main app/lib and there dependencies) as whatever is requested
2022-11-10[cmake][android] add bundle_files dependency on app targetfuzzard
When doing a multi threaded build i come across the following CMake Error at build/BundleFiles.cmake:1 (file): file COPY cannot find "/Users/brent/Dev/macos/build/addons/skin.estuary/media/Textures.xbt": No such file or directory. make[3]: *** [CMakeFiles/bundle_files] Error 1 make[2]: *** [CMakeFiles/bundle_files.dir/all] Error 2 The bundle_files target is being executed before several files are in place. This affects both the pack-skins target and the libdvdnav target. Rather than add both to the dependency list of bundle_files, have just added the main app target. The idea is that the main app target, and all its dependencies (eg .so, skin packing) are done, so the bundle copy commands can work without any hassle
2022-11-06Copy Android.mk to the package folderJose Luis Marti
2022-11-03[Android] remove google breakpad scriptJose Luis Marti
2022-10-26Add LoongArch CPU support.Allow building kodi on LoongArch Linux systems.phorcys
2022-10-13Fix CMake warning in windows/ArchSetup.cmakeszx
2022-09-30[cmake] BUILD_DEP_TARGET macro: Support RelwithDebInfofuzzard
2022-09-28[cmake] dependent_option functionfuzzard
This function allows us to handle in a generic way our use of internal lib state, and to then allow it to be overridden more easily by the user. cmake_dependent_option has proven too restrictive for our use of it.
2022-09-28[cmake] modulehelper function to get only version from a specific VERSION filefuzzard
The use of this is to allow a find module to get a version of a dependency from a VERSION file without smashing the find module SETUP_BUILD_VARS variables to allow us to provide a version to a find_package call of the dependency
2022-09-05Merge pull request #21743 from dlan17/masterfuzzard
[cmake] link atomic library for certain CPU architectures
2022-08-13[cmake][addons] allow passing extra args to built addon dependenciesfuzzard
Allows a user to pass through cmake arguments to all addon dependencies that are built Be aware, this is a global addition, and will be passed through to all addons built. Usage: -DADDON_EXTRA_ARGS="-Ddefine1=1 -Ddefine2=2" The arguments will be passed through as a list (ie -Ddefine1=1;-Ddefine2=2) to all addon dependencies built, and will be accessible via their CMakelists.txt files an example is with visualization.projectm. If a user wishes to set -DAPP_RENDER_SYSTEM=gles for the projectm dependency to build projectm as gles compatible. Currently this can be done with a toolchain file, but a user cant set -DAPP_RENDER_SYSTEM=gles as art of their cmake stanza to build the addon, as dependencies are passed through filtered lists, of which APP_RENDER_SYSTEM isnt specifically passed through. https://github.com/xbmc/visualization.projectm/issues/87 This solution provides a more generic way to pass through arguments to cmake dependencies without us explicitly handling each option in HandleDepends.cmake
2022-08-11[cmake] link atomic library for certain CPU architecturesYixun Lan
For those CPU architectures: RISC-V lack 8-bit and 16-bit atomic instructions, and ARM/MIPS/PPC lack 64-bit atomic instruction. GCC is supposed to convert these atomics via masking and shifting like LLVM, which means anything that wants to use these instructions needs the link option -latomic. In this patch, we will try to detect if 8-bit, 64-bit atomic instructions exist, otherwise the atomic library will append to the DEPLIBS list. Original issue: * https://gitlab.kitware.com/cmake/cmake/-/issues/23021#note_1098733 For reference: * https://gcc.gnu.org/wiki/Atomic/GCCMM riscv64 specific: * https://lists.debian.org/debian-riscv/2022/01/msg00009.html Signed-off-by: Yixun Lan <dlan@gentoo.org>
2022-08-04[cmake][addons] enable cpu arch specific flags for flags.txt usagefuzzard
Allows us to append arch specific flags to platform generic deps eg, allow flags-arm64.txt and flags-x86_64.txt to append to extraflags passed to a cmake based dep only when the specific arch type of the platform is built Many platforms have the ability for multiple arch (osx x86_64/arm64, android armv7/aarch64, etc) So this allows us to provide targeted arch specific flags where appropriate This APPENDS to any flags found in flags.txt of a dep. flags.txt continues to hold any flags that are common across all platform arch types.
2022-08-03Merge pull request #21669 from basilgello/unpin-local-tarballsVasyl Gello
2022-08-02CMake:‌ Allow overriding the hashsums of local tarballVasyl Gello
The local tarballs specified via custom MODULE_URL can be different from what is pinned in 'tools/depends/target/*/*-VERSION' files. This manifested during preparation of 20.0 Alpha 2 build in Debian where libdvd* tarballs are custom. Now specifying MODULE_HASH along with MODULE_URL works as expected. Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2022-07-13Merge pull request #21666 from bkuhls/cross_host_can_execute_targetWolfgang Schupp
[cmake] Allow specifying HOST_CAN_EXECUTE_TARGET
2022-07-12[cmake] Allow specifying HOST_CAN_EXECUTE_TARGETBernd Kuhls
Executing the target binary will not work when cross-compiling to a uClibc-based target on a glibc-based host. https://github.com/xbmc/xbmc/commit/b9a0c7b1f402613e96876ccfec316831801352bd broke cross-compiling in this case: -- Found Python3: /home/buildroot/buildroot/output/per-package/kodi/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/python3.10 (found suitable exact version "3.10.5") found components: Development Development.Module Development.Embed -- Could NOT find Python3 (missing: Interpreter) (Required is exact version "3.10") Reason given by package: Interpreter: Cannot run the interpreter "/home/buildroot/buildroot/output/per-package/kodi/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/python3.10" $ file /home/buildroot/buildroot/output/per-package/kodi/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/python3.10 /home/buildroot/buildroot/output/per-package/kodi/host/x86_64-buildroot-linux-uclibc/sysroot/usr/bin/python3.10: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64-uClibc.so.0, not stripped This patch allows to force -DHOST_CAN_EXECUTE_TARGET=FALSE to avoid executing the target version of python3 although the host version was set in configure options: -DPYTHON_EXECUTABLE=/home/buildroot/buildroot/output/per-package/kodi/host/bin/python3.10 $ file /home/buildroot/buildroot/output/per-package/kodi/host/bin/python3.10 /home/buildroot/buildroot/output/per-package/kodi/host/bin/python3.10: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=0502eef4c126feb4162aea6d36f321387f2a58fc, for GNU/Linux 3.2.0, with debug_info, not stripped
2022-07-11[cmake] fix blacklisted files regexenen92