aboutsummaryrefslogtreecommitdiff
path: root/cmake
AgeCommit message (Collapse)Author
2022-12-31Work around Mesa eglchromium.h removalAlan Swanson
I have polished Alan's snippet to buildable state and tested on Kodi from Debian sid. Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2022-12-27[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-12-22[V20] Fix double attempt to find flatc compilerGarrett Brown
find_package(FlatC) is called twice, once from CMakeLists.txt (as it's a required build tool) and once from FindFlatBuffers.cmake (as it's a direct dependency).
2022-12-03Merge pull request #22197 from a1rwulf/android-sdk-31-bumpfuzzard
Android sdk 31 bump
2022-11-28Android: Bump SDK to version 31Wolfgang Haupt
2022-11-28Merge pull request #22120 from fuzzard/build_android_multithreadfuzzard
[cmake][android] Fix Android packaing multithreaded builds
2022-11-27Merge pull request #22145 from basilgello/debian-build-fixesVasyl Gello
2022-11-26Fix crossbuild on Linux with prebuilt texturepackerVasyl Gello
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2022-11-21Merge pull request #22095 from fuzzard/buildtools_flatcfuzzard
[cmake] Fix FlatC buildtools race
2022-11-18[cmake] Fix FlatC buildtools racefuzzard
Ran across a build failure on windows hosts where flatc wasnt built prior to use This fixes that, and ensures flatc target is built as a dependency to flatbuffers::flatbuffers target if the flatc executable doesnt exist.
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-05Games: Refactor port mapping into new Agent ManagerGarrett Brown
2022-11-03[Android] remove google breakpad scriptJose Luis Marti
2022-11-01Merge pull request #22067 from fuzzard/depends_python311fuzzard
[tools/depends] Bump python 3.11
2022-10-31[cmake] FindFmt fix internal build without existing fmt libfuzzard
2022-10-31[tools/depends] Python 3.11.0fuzzard
2022-10-26Add LoongArch CPU support.Allow building kodi on LoongArch Linux systems.phorcys
2022-10-14Merge pull request #22026 from sryze/fix-cmake-warningthexai
Fix CMake warning in windows/ArchSetup.cmake
2022-10-13[cmake] add version parsing to patchRechi
2022-10-13[cmake] fix FindPackageHandleStandardArgs name mismatchRechi
2022-10-13[cmake] add version parsing to clang-formatRechi
2022-10-13[cmake] add version parsing to ccacheRechi
2022-10-13Fix CMake warning in windows/ArchSetup.cmakeszx
2022-10-05Merge pull request #21943 from CastagnaIT/build_nightly_releasefuzzard
[jenkins] Build android as RelWithDebInfo by default
2022-09-30[cmake] BUILD_DEP_TARGET macro: Support RelwithDebInfofuzzard
2022-09-29[cmake] make sure we really link spdlogwsnipex
Spdlog vendor cmake target is spdlog::spdlog, so utilise that. Fix windows building with wchar options when built internal.
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] allow handling of more corner cases of existing lib versions of ↵fuzzard
spdlog/fmt If a dependency lib is rebuilt, allow a way to notify the calling parent that the dependency is being built. This then allows the parent to rebuild to make sure all the correct versions of a lib are inline. Eg Spdlog exists and was built against FMT 7.0.1 (we cant know what version). We no longer have FMT lib, so it is rebuilt (ver 8.0.1). Allow spdlog to recognise that its dependency is being force built, and therefore it should rebuild to make sure the same lib/api is used throughout.
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-23[depends] Bump nfs 5.0.2fuzzard
2022-09-05NFS: add preliminary nfs4 supportLukas Rusak
2022-09-05Merge pull request #21743 from dlan17/masterfuzzard
[cmake] link atomic library for certain CPU architectures
2022-08-31Remove obsolete scrapersRazze
Closes #21771
2022-08-26[cppcheck] enable performance checksRechi
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-15[tests] Add unit tests for stack filesenen92
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
2022-06-29[cmake] Fix linking of libdvd*fuzzard
2022-06-29[cmake] create ENABLE_INTERNAL_PCREfuzzard
2022-06-29Merge pull request #21601 from fuzzard/cmake_libnfsfuzzard
[cmake] FindNFS module to build internal
2022-06-29Merge pull request #21311 from fuzzard/cmake_libzipfuzzard
[cmake] Build LibZip during cmake Build
2022-06-28[cmake] libdvd*_url lower case insanityfuzzard