Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
build tools
|
|
|
|
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
|
|
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.
|
|
Implement Fmt::Fmt target to allow adding dependency target for
ENABLE_INTERNAL_FMT.
|
|
|
|
|
|
set CMAKE_INSTALL_PREFIX in BUILD_DEP_TARGET, and use DEPENDS_PATH for location
|
|
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.
|
|
Add new KODI_EXTRA_FILE_WHITELIST env var to allow access to more directories.
|
|
header only lib, so enable "build" for all platforms
patches remove superfluous docs/examples
win arm64 patch for endian define.
|
|
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.
|
|
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
|
|
This allows the compiler and checker tools to ignore warnings in the library headers.
|
|
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
|
|
[cmake] add targets for cppcheck and clang-tidy
|
|
|
|
|
|
[cmake] work around target gen expression issues for xcode projects
|
|
[cmake] use -Werror for double-promotion, missing-field-initializers, and sign-compare
|
|
|
|
|
|
|
|
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)
|
|
Cleanup some ffmpeg config options
set -Bsymbolic for all android platforms
Encoders/demuxers/protocols are all default on, no need to enable
|
|
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
|
|
|
|
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>
|
|
Instead of hardcoding python versions, use compileinfo to inject version numbers
used to compile kodi
|
|
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>
|
|
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).
|
|
|
|
use cmakes (3.12+) FindPython3 module.
Provide cmake vars for user to overide specific version, and search path
|
|
Harfbuzz rendering support. Fixes #19692
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
build: fix fmt dependency
|
|
|