aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2022-09-28[cmake] default build spdlog/fmt internal all platformsfuzzard
2022-09-14[CMake] Fix incorrect string concationation in target_compile_options callMarkus Härer
2022-06-29[cmake] create ENABLE_INTERNAL_PCREfuzzard
2022-06-27[cmake] FindNFS module to build internalfuzzard
2022-06-17[cmake] split flatbuffers buildtool (flatc) and target headers find modulesfuzzard
2022-06-17[cmake] create lists and utilise core_optional_dep/core_required_dep for ↵fuzzard
build tools
2022-06-17[cmake] move host tool find modules to buildtools folder - CCachefuzzard
2022-06-02[cmake] FindSpdlog ENABLE_INTERNAL to test existencefuzzard
Allows ENABLE_INTERNAL_SPDLOG path to test for existence of package/lib meeting SPDLOG-VERSION version requirements, and not build if found. Also force ENABLE_INTERNAL_FMT on if we are doing ENABLE_INTERNAL_SPDLOG due to fmt version requirements for spdlog
2022-06-01[cmake] Windows increase minimum required cmake version 3.20fuzzard
Generator expressions for Multi-config generators (ie VS projects) require cmake 3.20.0 as a minimum. VS 2017 comes with version 3.20.21032501-MSVC_2 bundled.
2022-06-01[cmake] Fmt use Fmt::Fmt target for dependsfuzzard
Implement Fmt::Fmt target to allow adding dependency target for ENABLE_INTERNAL_FMT.
2022-05-30[linux] add build time option to disable automatic addon configure at startupwsnipex
2022-05-25[cmake] ENABLE_INTERNAL_TAGLIB to build taglib internallyfuzzard
2022-04-30[cmake] refactor CMAKE_INSTALL_PREFIX into BUILD_DEP_TARGET macrofuzzard
set CMAKE_INSTALL_PREFIX in BUILD_DEP_TARGET, and use DEPENDS_PATH for location
2022-04-28[cmake] rename CORE_HOST_IS_TARGET to HOST_CAN_EXECUTE_TARGETfuzzard
We are now in a time where some platforms/archs can execute "foreign" (x86_64) arch code locally (Apple via Rosetta, Windows on arm). Rename CORE_HOST_IS_TARGET to HOST_CAN_EXECUTE_TARGET to allow platforms ArchSetup to set and therefore execute tests if desired.
2022-03-26Merge pull request #21113 from jfly/add-file-whitelist-extrasWolfgang Schupp
Add new KODI_EXTRA_FILE_WHITELIST env var to allow access to more directories.
2022-03-26[cmake] ENABLE_INTERNAL_RapidJSON for all platformsfuzzard
header only lib, so enable "build" for all platforms patches remove superfluous docs/examples win arm64 patch for endian define.
2022-03-23Add new KODI_WEBSERVER_EXTRA_WHITELIST cmake var to allow access to more ↵Jeremy Fleischman
directories This is useful for NixOS, which often ends up creating a `KODI_HOME` with symlinks to other files (including the chorus2 interface). Kodi's webserver cautiously refuses to follow these symlinks, and you end up getting 404s rather than the web page. See https://forum.kodi.tv/showthread.php?tid=366338&pid=3079493 for a discussion of this on the Kodi forum.
2022-03-21[cmake] update + build crossguid all platformsfuzzard
crossguid hasnt been updated in a long time (~2015 was our previous hash) crossguid now natively uses cmake, so remove our cmakelists file first patch is to get around a failure due to unused function on apple platforms. a second patch is introduced due to a build failure with the default -Werror used Build crossguid in core cmake project for all platforms by default. Remove from windows the bundled download of crossguid lib rework usage of debug_postfix in SETUP_BUILD_VARS macro
2022-03-13[cmake] declare directories of external libraries as system headersRechi
This allows the compiler and checker tools to ignore warnings in the library headers.
2022-02-22[cmake] Introduce Property to allow handling deps for GLOBAL_TARGET_DEPSfuzzard
Instead of a hardcoded list in root CMakeLists.txt, introduce a global Property that will be added to by the relevant find modules to add as a GLOBAL_TARGET_DEPS
2021-12-31Merge pull request #17820 from lrusak/compiler-warningsLukas Rusak
[cmake] add targets for cppcheck and clang-tidy
2021-12-29[cmake] remove old static analysis methodsLukas Rusak
2021-12-29[cmake] add targets for cppcheck and clang-tidyLukas Rusak
2021-12-29Merge pull request #20655 from fuzzard/cmake_macos_targetgenfuzzard
[cmake] work around target gen expression issues for xcode projects
2021-12-18Merge pull request #20665 from lrusak/werror-changesLukas Rusak
[cmake] use -Werror for double-promotion, missing-field-initializers, and sign-compare
2021-12-15[cmake] fix building internal fstrcmpwsnipex
2021-12-14[cmake] allow specifying compile options for core units onlyLukas Rusak
2021-12-14[cmake] fix building internal spdlogwsnipex
2021-12-10[cmake] work around target gen expression issues for xcode projectsfuzzard
cmake has known shortcomings regarding generator expressions and xcode projects. https://gitlab.kitware.com/cmake/cmake/-/issues/21039 The issue that shows up for kodi is arm64 build host building an x86_64 target, The $<TARGET_OBJECTS:compileinfo> call can not detect the target arch type at build time, and falls back to system arch at cmake generation time. Build failure then occurs due to attempting to link compileinfo.o into libkodi.o from an incorrect build folder (eg $(PROJECT_NAME).build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/compileinfo.build/$(OBJECT_FILE_DIR_normal:base)/arm64/CompileInfo.o)
2021-11-29[tools/depends][target] ffmpeg cleanupfuzzard
Cleanup some ffmpeg config options set -Bsymbolic for all android platforms Encoders/demuxers/protocols are all default on, no need to enable
2021-11-27[cmake] Fix android link failure fstrcmp orderingfuzzard
Building android kodi on macos host runs across linker failure for libkodi target. Avoid by adding explicit fstrcmp lib prior to core_DEPENDS in whole_archive macro ld: error: undefined symbol: fstrcmp >>> referenced by StringUtils.cpp:1716 (/Users/brent/Dev/android/xbmc/utils/StringUtils.cpp:1716) >>> StringUtils.cpp.o:(StringUtils::CompareFuzzy(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)) in archive build/utils/utils.a >>> referenced by Scraper.cpp:991 (/Users/brent/Dev/android/xbmc/addons/Scraper.cpp:991) >>> Scraper.cpp.o:(ADDON::CScraper::FindMovie(XFILE::CCurlFile&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, int, bool)) in archive build/addons/addons.a >>> referenced by Util.cpp:1418 (/Users/brent/Dev/android/xbmc/Util.cpp:1418) >>> Util.cpp.o:(CUtil::AlbumRelevance(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)) in archive build/xbmc/xbmc.a >>> referenced 1 more times >>> did you mean: strcmp >>> defined in: /Library/Android/sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/../sysroot/usr/lib/aarch64-linux-android/31/libc.so clang++: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [libkodi.so] Error 1 make[1]: *** [CMakeFiles/kodi.dir/all] Error 2
2021-11-06Merge pull request #20340 from fuzzard/depends_python_3.9.7jenkins4kodi
2021-11-03Split TexturePacker executed during build and shippedVasyl Gello
Before this commit, shippable TexturePacker is not built at all if: * the pre-built TexturePacker is supplied by -DWITH_TEXTUREPACKER * build is KODI_DEPENDSBUILD * building for Windows This breaks generation of kodi-tools-texturepacker package on Linux and FreeBSD if cross-compiling. The new commit separates installable and executable TexturePackers. Executable TexturePacker is executed on all platforms, but it can be overriden by a binary specified by KODI_DEPENDSBUILD or WITH_TEXTUREPACKER options on non-depends build. Installable TexturePacker is shipped only on Linux and FreeBSD platforms, and is executed only if the build is not a cross-compilation and the executable TexturePacker not overridden by one of the options above. If external TexturePacker is specified WITH_TEXTUREPACKER but its executable file can not be found, a warning is raised and the module falls back to build internal TexturePacker if it can be executed during the build. Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-10-24[compileinfo] add python versionfuzzard
Instead of hardcoding python versions, use compileinfo to inject version numbers used to compile kodi
2021-10-20Add option to use internal or external kissfftVasyl Gello
By default, ENABLE_INTERNAL_KISSFFT is ON for all architectures. It is immutable on non-Unix systems because 'FindKissFFT.cmake' relies on 'pkg-config' tool not available in Windows and Android. If Kodi built with internal kissfft, the corresponding CMake search module sets kissfft's include directory to the copied location created by 'core_add_subdirs_from_filelist' macro expanded from 'cmake/treedata/common/externals.txt'. If Kodi built with system kissfft, the module detects the presence of header files and solib by 'pkg-config' and disables building the 'xbmc/contrib/kissfft' directory. Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2021-10-18Properly link with -pthread instead of -lpthreadAurelien Jarno
This patch changes the way cmake handles Thread support to correctly link with -pthread instead of -lpthread. That way GCC automatically pulls in -latomic if needed. I have noticed that debian/rules already forces LDFLAGS to contain -latomic, however it appears too early in the linker command to be early (it needs to be after the objects needing this library).
2021-09-20[cmake] osx sdl required lib is added as a PLATFORM_REQUIRED_DEPSfuzzard
2021-08-16[cmake] findpythonfuzzard
use cmakes (3.12+) FindPython3 module. Provide cmake vars for user to overide specific version, and search path
2021-07-06Merge pull request #19765 from naseef/harfbuzzPär Björklund
Harfbuzz rendering support. Fixes #19692
2021-06-30[cmake] add more info to verbose statuswsnipex
2021-06-26CGUIFontTTF: Harfbuzz rendering supportAhmed Naseef
2021-05-09Merge pull request #19533 from lrusak/pipewireLukas Rusak
2021-05-04[cmake] add pipewireLukas Rusak
2021-04-25[cmake] require OpenSSL >= 1.1.0Lukas Rusak
2021-02-20CMake: fixed correct minimal CMake version for Win32Evgeny Grin
2020-10-31[cmake] allow doxygen documentation generation for cross buildsRechi
2020-10-27[cmake] treat CORE_PLATFORM_NAME_LC as a listLukas Rusak
2020-10-27CAppParamParser: allow specifying --windowing=<system> on linuxLukas Rusak
2020-10-06Merge pull request #18395 from graysky2/fix-fmtfuzzard
build: fix fmt dependency
2020-10-05[cmake] add include-what-you-use supportRechi