File: AddonHelpers.dox

package info (click to toggle)
kodi 2%3A20.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 143,820 kB
  • sloc: cpp: 664,925; xml: 68,398; ansic: 37,223; python: 6,903; sh: 4,209; javascript: 2,325; makefile: 1,754; perl: 969; java: 513; cs: 390; objc: 340
file content (59 lines) | stat: -rw-r--r-- 3,043 bytes parent folder | download
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
/*!
\addtogroup cpp_cmake

Kodi which uses it as a library for its binary addons has a special build
system for this.

To implement this, a CMake macro brought by Kodi is used, this is
"build_addon (...)". This processes various definitions passed by the addon to
process the construction.


--------------------------------------------------------------------------------

<b>Here's a minimal example of the addon used for CMakeLists.txt:</b>

~~~~~~~~~~~~~{.cmake}
cmake_minimum_required(VERSION 3.5)
project(example.addon)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})

find_package(Kodi REQUIRED)

include_directories(${KODI_INCLUDE_DIR}

set(DEPLIBS ) # Here empty
set(EXAMPLE_SOURCES src/main.cpp)
set(EXAMPLE_HEADERS src/main.h)

build_addon((example.addon EXAMPLE DEPLIBS)

include(CPack)
~~~~~~~~~~~~~


--------------------------------------------------------------------------------

This is a list of special variables that can be passed to the macro.
The parts defined with "*" must be given the second name given to the macro.

Here to define the necessary creation and installation files on addon CMakeLists.txt:
| Name                        | Description
|-----------------------------|-------------------------------------------------
| *_SOURCES                   | List of source code files to be complicated.
| *_HEADERS                   | List of used source code header files.
| *_CUSTOM_BINARY             | For special cases where an already created library from an external source is inserted, the <b>"* _SOURCES"</b> and <b>"* _HEADERS"</b> are unused in this case.<br>This is currently used primarily on game addons.
| *_CUSTOM_DATA               | To add additional required data from a folder, which are stored in the shared folder of the addon.<br>With a "/" at the end of the content given to the folder is used, without the folder itself.
| *_ADDITIONAL_BINARY         | In case the additional library has to be installed for the addon, the path or CMake name can be given here.
| *_ADDITIONAL_BINARY_EXE     | In case you need to addon an additional application you can give the path or CMake name, it will be in the same folder as the addon library.<br>The mode bits are set there as EXE.
| *_ADDITIONAL_BINARY_DIRS    | To add complete folders additionally to folders containing the addon library.<br>With a "/" at the end of the content given to the folder is used, without the folder itself.

External creation Options, given by `-D...`:
| Name                        | Description
|-----------------------------|-------------------------------------------------
| PACKAGE_ZIP                 | To create a package as a ZIP file. This is also used to install locally addon together.<br>Default is OFF.
| PACKAGE_TGZ                 | To create a package as a TGZ file.<br>Default is OFF.
| BUILD_SHARED_LIBS           | To define if addon library is shared or static.<br>Default is ON to have shared.
| USE_LTO                     | Use link time optimization.<br>Default is OFF.
*/