Merge pull request #5014 from Montellese/binary_addons
[vuplus_xbmc] / project / cmake / addons / depends / README
1 XBMC ADDON DEPENDENCIES
2 =======================
3 This directory contains the cmake-based buildsystem for addon dependencies. It
4 looks into the "common" and the "<platform>/cmake" sub-directories and parses
5 all *.txt files recursively. Each dependency must have its own <dependency>.txt
6 file (either in the main sub-directory or in a separate subdirectory of the main
7 subdirectory) which must follow one of the defined formats:
8   * an empty file means that no extra downloads are necessary
9   * <dependency>
10   * <dependency> <url>
11   * <dependency> <git-url> <git-revision>
12 where
13   * <dependency> must be identical to the filename
14   * <url> must be the URL to an archive that is downloaded and extracted.
15   * <git-url> must be the URL of the git repository containing the
16     dependency.
17   * <git-revision> must be a valid git tag/branch/commit in the dependency's git
18     repository which will be used for the build.
19
20 Reserved filenames (for additional information on how to build a dependency)
21 are:
22   * CMakeLists.txt: build instructions for the dependency
23   * install.txt: instructions on how to install the dependency's built files
24   * noinstall.txt: no installation step required (content is ignored)
25   * flags.txt: additional build flags
26   * deps.txt: whitespace separated list of dependencies of this dependency
27
28 The buildsystem uses the following variables (which can be passed into it when
29 executing cmake with the -D<variable-name>=<value> option) to e.g. access
30 specific paths:
31   * CMAKE_BUILD_TYPE specifies the type of the build. This can be either "Debug"
32     or "Release" (default is "Release").
33   * CMAKE_INSTALL_PREFIX points to the directory where the built dependencies
34     (their include and library file) will be installed to.
35   * CMAKE_TOOLCHAIN_FILE can be used to pass a toolchain file into the add-on
36     builds.
37   * CORE_SYSTEM_NAME is the name of the platform (e.g. "linux" or "android") in
38     lower-case (defaults to lowercase(CMAKE_SYSTEM_NAME)).
39   * XBMCROOT points to the root directory of the xbmc project (default is the
40     absolute representation of ../../.. starting from this directory).
41   * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines
42     (defaults to empty).
43
44 To trigger the cmake-based buildsystem the following command must be executed
45 with <path> being the path to this directory (absolute or relative, allowing for
46 in-source and out-of-source builds).
47
48   cmake <path> -G <generator>
49
50 cmake supports multiple generators, see
51 http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list.
52
53 In case of additional options the call might look like this
54
55   cmake <path> [-G <generator>] \
56         -DCMAKE_BUILD_TYPE=Release \
57         -DXBMCROOT="<path-to-xbmc-root>" \
58         -DARCH_DEFINES="-DTARGET_LINUX" \
59         -DCMAKE_INSTALL_PREFIX="<path-to-install-directory"