blob: b4d3fe7ac66f7437e8fec2b7949ace58e8e02856 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
KODI ADDONS
===========
This directory contains the cmake-based buildsystem for addons. It looks into
the "addons" sub-directory and parses all *.txt files recursively. Each addon
must have its own <addon-id>.txt file in a separate sub-directory which must
follow one of the defined format:
<addon-id> <git-url> <git-revision>
<addon-id> <tarball-url>
<addon-id> <file://path>
where
* <addon-id> must be identical to the addon's ID as defined in the addon's
addon.xml
* <git-url> must be the URL of the git repository containing the addon
* <git-revision> must be a valid git tag/branch/commit in the addon's git
repository which will be used for the build.
* <tarball-url> must be the URL to a .tar.gz tarball containing the addon
* <file://path> must be a file:// based path to the directory containing the
addon
Reserved filenames (for additional information on how to build an addon)
are:
* platforms.txt: List of platforms to build an addon for (or "all"). It is
also supported to specify negated platforms with a leading exclamation mark
(i), e.g. "!windows".
Available platforms are: linux, windows, osx, ios, android, rbpi, freebsd
The buildsystem uses the following variables (which can be passed into it when
executing cmake with the -D<variable-name>=<value> option) to e.g. access
specific paths:
* ADDONS_TO_BUILD is a quoted, space delimited list of <addon-id>s that
you want to build (default is "all").
* ADDON_SRC_PREFIX can be used to override the addon repository location.
It must point to the locally available parent directory of the addon(s) to build
<addon-id> will be appended to this path automatically
* CMAKE_BUILD_TYPE specifies the type of the build. This can be either "Debug"
or "Release" (default is "Release").
* CMAKE_INSTALL_PREFIX points to the directory where the built addons and their
additional files (addon.xml, resources ...) will be installed to (defaults
to <DEPENDS_PATH>).
* CMAKE_TOOLCHAIN_FILE can be used to pass a toolchain file into the add-on
builds.
* DEPENDS_PATH points to the directory containing the "include" and "lib"
directories of the addons' dependencies.
* APP_ROOT points to the root directory of the project (default is the
absolute representation of ../../.. starting from this directory).
* BUILD_DIR points to the directory where the addons and their dependencies
will be downloaded and built.
* PACKAGE_ZIP=ON means that the add-ons will be 'packaged' into a common folder,
rather than being placed in <CMAKE_INSTALL_PREFIX>/lib/kodi/addons and
<CMAKE_INSTALL_PREFIX>/share/kodi/addons.
* PACKAGE_DIR points to the directory where the ZIP archived addons will be
stored after they have been packaged (defaults to <BUILD_DIR>/zips)
* ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines
(defaults to empty).
* ADDON_TARBALL_CACHING specifies whether downloaded addon source tarballs
should be cached or not (defaults to ON).
The buildsystem makes some assumptions about the environment which must be met
by whoever uses it:
* Any dependencies of the addons must already be built and their include and
library files must be present in the path pointed to by <CMAKE_PREFIX_PATH> (in
"include" and "lib" sub-directories).
To trigger the cmake-based buildsystem the following command must be executed
with <path> being the path to this directory (absolute or relative, allowing for
in-source and out-of-source builds).
cmake <path> -G <generator>
cmake supports multiple generators, see
http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list.
In case of additional options the call might look like this
cmake <path> [-G <generator>] \
-DCMAKE_BUILD_TYPE=Release \
-DAPP_ROOT="<path-to-app-root>" \
-DARCH_DEFINES="-DTARGET_LINUX" \
-DDEPENDS_PATH="<path-to-built-depends>" \
-DCMAKE_INSTALL_PREFIX="<path-to-install-directory"
|