Age | Commit message (Collapse) | Author |
|
[cmake][addons] Group sources by folder
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
|
|
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>
|
|
[cmake] Allow specifying HOST_CAN_EXECUTE_TARGET
|
|
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
|
|
|
|
|
|
calls
|
|
|
|
|
|
generalise functions/macros further to more easily accommodate the difference between
a native and a target lib/tool and the relevant source locations
extract download/url steps from externalproject_add to allow override of in-tree source
step.
update comments
|
|
|
|
|
|
|
|
refactor patch handling to deal with windows/unix differences and find patch
module
|
|
|
|
Prepend depends_path to cmake_prefix_path for find_package/program/etc calls to
search our depends_path first
Pass through cmake_prefix_path to internal build functions for cmake based build systems
|
|
Required to make ninja play nice when using ENABLE_INTERNAL_<LIB>
|
|
|
|
[cmake] Flesh out FindPatch module for windows use
|
|
set default postfix for all android libs (similar to apple)
if <MODULE>_RELEASE_TYPE is forced, remove the alternative <MODULE>_LIBRARY_<TYPE>
build can now handle crossguid -dbg postfix, so allow it.
|
|
Windows we want to preference git patch, so adapt find module to check specifically
for it. Update other find modules importing FindPatch.cmake to actual find_package calls
|
|
Provides build_type to internal build targets that use cmake.
Allows a target to override (set <MODULE>_BUILD_TYPE) or to use the projects build type
|
|
[cmake] Assorted cmake fixes regarding Find Modules
|
|
|
|
set CMAKE_INSTALL_PREFIX in BUILD_DEP_TARGET, and use DEPENDS_PATH for location
|
|
rename to reflect current usage. Old name was from my initial implementation and
it no longer reflects what the function does.
|
|
|
|
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.
|
|
builds
|
|
Sets environment variables for autoconf based build systems for externalproject_add
build of a dependency
|
|
|
|
|
|
If a toolchain file is provided, pass it along to any internal dep cmake based
build systems.
|
|
|
|
|
|
|
|
deps
refactor out usage of externalproject_add to a macro for internal dep building
|
|
Macro will factor out repetitive code for internal dependency builds
|
|
[cmake] improve cppcheck behaviour for CI
|
|
|