summaryrefslogtreecommitdiffstats
path: root/project
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2017-06-04 16:57:49 +0200
committermanuel <manuel@mausz.at>2017-06-04 16:57:49 +0200
commitf44ecaa4f27e7538ddcad66d40e543bffa2d2d86 (patch)
treed8de60fc7e17edeb6f0921726c038ee54b281445 /project
parentae08c8b7221bc965ac40d70e53fc8fcddb050c46 (diff)
downloadkodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.tar.gz
kodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.tar.bz2
kodi-pvr-build-f44ecaa4f27e7538ddcad66d40e543bffa2d2d86.zip
sync with upstream
Diffstat (limited to 'project')
-rw-r--r--project/cmake/CMakeLists.txt501
-rw-r--r--project/cmake/KodiConfig.cmake.in34
-rw-r--r--project/cmake/README.md299
-rw-r--r--project/cmake/addons/CMakeLists.txt434
-rw-r--r--project/cmake/addons/README.md65
-rw-r--r--project/cmake/addons/addons/pvr.dvbviewer/platforms.txt1
-rw-r--r--project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt1
-rw-r--r--project/cmake/addons/bootstrap/Bootstrap.cmake39
-rw-r--r--project/cmake/addons/bootstrap/CMakeLists.txt94
-rw-r--r--project/cmake/addons/bootstrap/README.md48
-rw-r--r--project/cmake/addons/bootstrap/repositories/binary-addons.txt1
-rw-r--r--project/cmake/addons/depends/CMakeLists.txt41
-rw-r--r--project/cmake/addons/depends/README61
-rw-r--r--project/cmake/addons/depends/common/kodi-platform/deps.txt2
-rw-r--r--project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt1
-rw-r--r--project/cmake/addons/depends/common/p8-platform/p8-platform.txt1
-rw-r--r--project/cmake/addons/depends/common/tinyxml/CMakeLists.txt22
-rw-r--r--project/cmake/addons/depends/common/tinyxml/tinyxml.txt1
-rw-r--r--project/cmake/addons/depends/windows/CMakeLists.txt52
-rw-r--r--project/cmake/addons/depends/windows/Install.cmake24
-rw-r--r--project/cmake/addons/depends/windows/README19
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt33
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in3
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in17
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/mingw.txt1
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in6
-rw-r--r--project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt0
-rw-r--r--project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt5
-rw-r--r--project/cmake/addons/depends/windows/cmake/msys/msys.txt1
-rw-r--r--project/cmake/addons/depends/windows/cmake/msys/noinstall.txt0
-rw-r--r--project/cmake/addons/depends/windows/prebuilt/README21
-rw-r--r--project/cmake/cpack/CPackConfigDEB.cmake352
-rw-r--r--project/cmake/cpack/deb/NEWS.Debian24
-rw-r--r--project/cmake/cpack/deb/copyright3126
-rw-r--r--project/cmake/cpack/deb/lintian/overrides/kodi1
-rw-r--r--project/cmake/cpack/deb/menu/kodi2
-rw-r--r--project/cmake/cpack/deb/package-description.txt16
-rw-r--r--project/cmake/cpack/deb/packages/kodi-addon-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-audio-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-bin.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-eventclients-common.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-eventclients-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-eventclients-ps3.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-eventclients-wiiremote.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-eventclients-xbmc-send.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-inputstream-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-peripheral-dev.txt.in24
-rw-r--r--project/cmake/cpack/deb/packages/kodi-pvr-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-screensaver-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-tools-texturepacker.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi-visualization-dev.txt.in25
-rw-r--r--project/cmake/cpack/deb/packages/kodi.txt.in25
-rwxr-xr-xproject/cmake/cpack/deb/postinst5
-rwxr-xr-xproject/cmake/cpack/deb/postrm3
-rw-r--r--project/cmake/installdata/common/addons.txt49
-rw-r--r--project/cmake/installdata/common/common.txt13
-rw-r--r--project/cmake/installdata/ios/certificates.txt1
-rw-r--r--project/cmake/installdata/ios/packaging.txt3
-rw-r--r--project/cmake/installdata/ios/runtime.txt2
-rw-r--r--project/cmake/installdata/linux/lirc.txt1
-rw-r--r--project/cmake/installdata/osx/certificates.txt1
-rw-r--r--project/cmake/installdata/osx/packaging.txt4
-rw-r--r--project/cmake/installdata/osx/runtime.txt2
l---------project/cmake/installdata/rbpi/lirc.txt1
-rw-r--r--project/cmake/installdata/test-reference-data.txt10
-rw-r--r--project/cmake/installdata/windows/addons.txt1
-rw-r--r--project/cmake/installdata/windows/dlls.txt2
-rw-r--r--project/cmake/installdata/windows/irss.txt2
-rw-r--r--project/cmake/installdata/windows/python.txt1
-rw-r--r--project/cmake/modules/FindAML.cmake35
-rw-r--r--project/cmake/modules/FindASS.cmake44
-rw-r--r--project/cmake/modules/FindAlsa.cmake46
-rw-r--r--project/cmake/modules/FindAvahi.cmake63
-rw-r--r--project/cmake/modules/FindBluetooth.cmake44
-rw-r--r--project/cmake/modules/FindBluray.cmake58
-rw-r--r--project/cmake/modules/FindCAP.cmake44
-rw-r--r--project/cmake/modules/FindCCache.cmake18
-rw-r--r--project/cmake/modules/FindCEC.cmake68
-rw-r--r--project/cmake/modules/FindCWiid.cmake44
-rw-r--r--project/cmake/modules/FindCXX11.cmake18
-rw-r--r--project/cmake/modules/FindCdio.cmake45
-rw-r--r--project/cmake/modules/FindCpluff.cmake61
-rw-r--r--project/cmake/modules/FindCrossGUID.cmake78
-rw-r--r--project/cmake/modules/FindCurl.cmake83
-rw-r--r--project/cmake/modules/FindD3DX11Effects.cmake30
-rw-r--r--project/cmake/modules/FindDBus.cmake52
-rw-r--r--project/cmake/modules/FindEGL.cmake48
-rw-r--r--project/cmake/modules/FindEMBEDDED.cmake16
-rw-r--r--project/cmake/modules/FindFFMPEG.cmake292
-rw-r--r--project/cmake/modules/FindFreeType.cmake45
-rw-r--r--project/cmake/modules/FindFribidi.cmake48
-rw-r--r--project/cmake/modules/FindGIF.cmake46
-rw-r--r--project/cmake/modules/FindJsonSchemaBuilder.cmake21
-rw-r--r--project/cmake/modules/FindLibDRM.cmake45
-rw-r--r--project/cmake/modules/FindLibDvd.cmake219
-rw-r--r--project/cmake/modules/FindLibUSB.cmake45
-rw-r--r--project/cmake/modules/FindLibXml2.cmake84
-rw-r--r--project/cmake/modules/FindLzo2.cmake37
-rw-r--r--project/cmake/modules/FindMMAL.cmake36
-rw-r--r--project/cmake/modules/FindMicroHttpd.cmake49
-rw-r--r--project/cmake/modules/FindMir.cmake33
-rw-r--r--project/cmake/modules/FindMySqlClient.cmake69
-rw-r--r--project/cmake/modules/FindNFS.cmake58
-rw-r--r--project/cmake/modules/FindOpenGLES.cmake48
-rw-r--r--project/cmake/modules/FindOpenGl.cmake43
-rw-r--r--project/cmake/modules/FindPCRE.cmake87
-rw-r--r--project/cmake/modules/FindPlist.cmake58
-rw-r--r--project/cmake/modules/FindPulseAudio.cmake68
-rw-r--r--project/cmake/modules/FindPython.cmake38
-rw-r--r--project/cmake/modules/FindSSE.cmake143
-rw-r--r--project/cmake/modules/FindSSH.cmake47
-rw-r--r--project/cmake/modules/FindSWIG.cmake29
-rw-r--r--project/cmake/modules/FindSdl.cmake46
-rw-r--r--project/cmake/modules/FindShairplay.cmake63
-rw-r--r--project/cmake/modules/FindSmbClient.cmake47
-rw-r--r--project/cmake/modules/FindSqlite3.cmake44
-rw-r--r--project/cmake/modules/FindTagLib.cmake60
-rw-r--r--project/cmake/modules/FindTexturePacker.cmake41
-rw-r--r--project/cmake/modules/FindTinyXML.cmake68
-rw-r--r--project/cmake/modules/FindUDEV.cmake47
-rw-r--r--project/cmake/modules/FindUUID.cmake43
-rw-r--r--project/cmake/modules/FindVAAPI.cmake72
-rw-r--r--project/cmake/modules/FindVDPAU.cmake47
-rw-r--r--project/cmake/modules/FindX.cmake57
-rw-r--r--project/cmake/modules/FindXRandR.cmake47
-rw-r--r--project/cmake/modules/FindXSLT.cmake50
-rw-r--r--project/cmake/modules/FindYajl.cmake62
-rw-r--r--project/cmake/modules/FindZip.cmake46
-rw-r--r--project/cmake/modules/LDGOLD.cmake45
-rw-r--r--project/cmake/modules/extra/ECMEnableSanitizers.cmake149
-rw-r--r--project/cmake/platform/android/defines.txt1
-rw-r--r--project/cmake/platform/freebsd/defines.txt1
-rw-r--r--project/cmake/platform/ios/defines.txt1
-rw-r--r--project/cmake/platform/linux/defines.txt1
-rw-r--r--project/cmake/platform/osx/defines.txt1
-rw-r--r--project/cmake/platform/rbpi/defines.txt1
-rw-r--r--project/cmake/platform/windows/defines.txt1
-rw-r--r--project/cmake/scripts/android/ArchSetup.cmake35
-rw-r--r--project/cmake/scripts/android/Install.cmake122
l---------project/cmake/scripts/android/Macros.cmake1
-rw-r--r--project/cmake/scripts/android/PathSetup.cmake33
-rw-r--r--project/cmake/scripts/common/AddOptions.cmake78
-rw-r--r--project/cmake/scripts/common/AddonHelpers.cmake268
-rw-r--r--project/cmake/scripts/common/ArchSetup.cmake155
-rw-r--r--project/cmake/scripts/common/CMakeHelpers.cmake54
-rw-r--r--project/cmake/scripts/common/CheckCommits.cmake75
-rw-r--r--project/cmake/scripts/common/CheckTargetPlatform.cmake67
-rw-r--r--project/cmake/scripts/common/GenerateVersionedFiles.cmake18
-rw-r--r--project/cmake/scripts/common/GeneratorSetup.cmake49
-rw-r--r--project/cmake/scripts/common/HandleDepends.cmake252
-rw-r--r--project/cmake/scripts/common/Macros.cmake622
-rw-r--r--project/cmake/scripts/common/PrepareEnv.cmake64
-rw-r--r--project/cmake/scripts/common/ProjectMacros.cmake89
-rw-r--r--project/cmake/scripts/common/Uninstall.cmake22
-rw-r--r--project/cmake/scripts/freebsd/ArchSetup.cmake16
l---------project/cmake/scripts/freebsd/Install.cmake1
l---------project/cmake/scripts/freebsd/Macros.cmake1
l---------project/cmake/scripts/freebsd/PathSetup.cmake1
-rw-r--r--project/cmake/scripts/ios/ArchSetup.cmake57
-rw-r--r--project/cmake/scripts/ios/Install.cmake85
l---------project/cmake/scripts/ios/Macros.cmake1
l---------project/cmake/scripts/ios/PathSetup.cmake1
-rw-r--r--project/cmake/scripts/linux/ArchSetup.cmake45
-rw-r--r--project/cmake/scripts/linux/CodeCoverage.cmake97
-rw-r--r--project/cmake/scripts/linux/ExtraTargets.cmake12
-rw-r--r--project/cmake/scripts/linux/Install.cmake367
-rw-r--r--project/cmake/scripts/linux/Macros.cmake95
-rw-r--r--project/cmake/scripts/linux/PathSetup.cmake39
-rw-r--r--project/cmake/scripts/osx/ArchSetup.cmake34
-rw-r--r--project/cmake/scripts/osx/ExtraTargets.cmake3
-rw-r--r--project/cmake/scripts/osx/Install.cmake40
-rw-r--r--project/cmake/scripts/osx/Macros.cmake118
-rw-r--r--project/cmake/scripts/osx/PathSetup.cmake32
-rw-r--r--project/cmake/scripts/rbpi/ArchSetup.cmake28
l---------project/cmake/scripts/rbpi/Install.cmake1
l---------project/cmake/scripts/rbpi/Macros.cmake1
l---------project/cmake/scripts/rbpi/PathSetup.cmake1
-rw-r--r--project/cmake/scripts/windows/ArchSetup.cmake89
-rw-r--r--project/cmake/scripts/windows/CFlagOverrides.cmake5
-rw-r--r--project/cmake/scripts/windows/CXXFlagOverrides.cmake5
-rw-r--r--project/cmake/scripts/windows/Install.cmake0
-rw-r--r--project/cmake/scripts/windows/Macros.cmake66
-rw-r--r--project/cmake/scripts/windows/PathSetup.cmake34
-rw-r--r--project/cmake/scripts/windows/tools/patch.cmake37
-rw-r--r--project/cmake/treedata/android/subdirs.txt17
-rw-r--r--project/cmake/treedata/common/addons.txt7
-rw-r--r--project/cmake/treedata/common/cores.txt9
-rw-r--r--project/cmake/treedata/common/events.txt2
-rw-r--r--project/cmake/treedata/common/externals.txt2
-rw-r--r--project/cmake/treedata/common/filesystem.txt3
-rw-r--r--project/cmake/treedata/common/games.txt12
-rw-r--r--project/cmake/treedata/common/interfaces.txt9
-rw-r--r--project/cmake/treedata/common/music.txt5
-rw-r--r--project/cmake/treedata/common/network.txt2
-rw-r--r--project/cmake/treedata/common/peripherals.txt6
-rw-r--r--project/cmake/treedata/common/profiles.txt3
-rw-r--r--project/cmake/treedata/common/pvr.txt7
-rw-r--r--project/cmake/treedata/common/settings.txt4
-rw-r--r--project/cmake/treedata/common/subdirs.txt41
-rw-r--r--project/cmake/treedata/common/tests.txt10
-rw-r--r--project/cmake/treedata/common/video.txt5
-rw-r--r--project/cmake/treedata/common/videoplayer.txt12
-rw-r--r--project/cmake/treedata/freebsd/subdirs.txt13
-rw-r--r--project/cmake/treedata/ios/subdirs.txt15
-rw-r--r--project/cmake/treedata/linux/subdirs.txt13
-rw-r--r--project/cmake/treedata/optional/common/X11.txt1
-rw-r--r--project/cmake/treedata/optional/common/cdrip.txt1
-rw-r--r--project/cmake/treedata/optional/common/dacp.txt1
-rw-r--r--project/cmake/treedata/optional/common/mir.txt1
-rw-r--r--project/cmake/treedata/optional/common/nonfree.txt1
-rw-r--r--project/cmake/treedata/optional/common/opengl.txt1
-rw-r--r--project/cmake/treedata/optional/common/opengles.txt1
-rw-r--r--project/cmake/treedata/optional/common/upnp.txt2
-rw-r--r--project/cmake/treedata/optional/common/webserver.txt2
-rw-r--r--project/cmake/treedata/osx/subdirs.txt12
-rw-r--r--project/cmake/treedata/rbpi/omxplayer.txt1
-rw-r--r--project/cmake/treedata/rbpi/subdirs.txt12
-rw-r--r--project/cmake/treedata/windows/externals.txt1
-rw-r--r--project/cmake/treedata/windows/subdirs.txt14
219 files changed, 0 insertions, 13012 deletions
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
deleted file mode 100644
index c70b18d..0000000
--- a/project/cmake/CMakeLists.txt
+++ /dev/null
@@ -1,501 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(kodi LANGUAGES CXX C ASM)
3
4list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/modules)
5if(DEPENDS_DIR)
6 list(APPEND CMAKE_PREFIX_PATH ${DEPENDS_DIR})
7endif()
8
9# Set CORE_SOURCE_DIR and CORE_BUILD_DIR
10get_filename_component(CORE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../.. ABSOLUTE)
11set(CORE_BUILD_DIR build)
12
13message(STATUS "Source directory: ${CORE_SOURCE_DIR}")
14message(STATUS "Build directory: ${CMAKE_BINARY_DIR}")
15if(CMAKE_BINARY_DIR STREQUAL CORE_SOURCE_DIR)
16 message(WARNING "In-source build detected. It is recommended to build out-of-source.")
17endif()
18
19# Hide messages from Check*.cmake (e.g. CheckCSourceCompiles)
20if(NOT VERBOSE)
21 set(CMAKE_REQUIRED_QUIET ON)
22endif()
23
24# Includes
25include(modules/extra/ECMEnableSanitizers.cmake)
26include(scripts/common/GeneratorSetup.cmake)
27include(scripts/common/AddOptions.cmake)
28include(scripts/common/ArchSetup.cmake)
29include(scripts/common/Macros.cmake)
30include(scripts/common/ProjectMacros.cmake)
31include(scripts/${CORE_SYSTEM_NAME}/PathSetup.cmake)
32include(ExternalProject)
33
34# Languages and global compiler settings
35set(CMAKE_CXX_STANDARD 11)
36set(CMAKE_CXX_STANDARD_REQUIRED ON)
37set(CMAKE_CXX_EXTENSIONS OFF)
38set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp")
39
40# general
41option(VERBOSE "Enable verbose output?" OFF)
42option(ENABLE_DVDCSS "Enable libdvdcss support?" ON)
43option(ENABLE_UPNP "Enable UPnP support?" ON)
44option(ENABLE_NONFREE "Enable non-free components?" ON)
45option(ENABLE_AIRTUNES "Enable AirTunes support?" ON)
46option(ENABLE_CEC "Enable CEC support?" ON)
47option(ENABLE_OPTICAL "Enable optical support?" ON)
48# use ffmpeg from depends or system
49option(ENABLE_INTERNAL_FFMPEG "Enable internal ffmpeg?" OFF)
50if(UNIX)
51 option(FFMPEG_PATH "Path to external ffmpeg?" "")
52 option(ENABLE_INTERNAL_CROSSGUID "Enable internal crossguid?" ON)
53 option(ENABLE_OPENSSL "Enable OpenSSL?" ON)
54 option(ENABLE_SDL "Enable SDL?" OFF)
55 option(ENABLE_MIR "Enable MIR?" OFF)
56 if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
57 option(ENABLE_X11 "Enable X11 support?" ON)
58 option(ENABLE_AML "Enable AML?" OFF)
59 endif()
60endif()
61# System options
62if(NOT WIN32)
63 option(WITH_ARCH "build with given arch" OFF)
64 option(WITH_CPU "build with given cpu" OFF)
65 option(ENABLE_CCACHE "Enable Ccache support" ON)
66endif()
67if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi)
68 option(ENABLE_LIRC "Enable LIRC support?" ON)
69 option(ENABLE_EVENTCLIENTS "Enable event clients support?" OFF)
70endif()
71
72# Build static libraries per directory
73if(NOT CMAKE_GENERATOR MATCHES "Visual Studio" AND NOT CMAKE_GENERATOR STREQUAL Xcode)
74 set(ENABLE_STATIC_LIBS TRUE)
75else()
76 set(ENABLE_STATIC_LIBS FALSE)
77endif()
78
79core_find_git_rev(APP_SCMID FULL)
80core_find_versions()
81
82# Dynamically loaded libraries built with the project
83add_custom_target(${APP_NAME_LC}-libraries)
84set(LIBRARY_FILES "" CACHE STRING "" FORCE)
85mark_as_advanced(LIBRARY_FILES)
86
87set(INCLUDES ${CORE_SOURCE_DIR}
88 ${CORE_SOURCE_DIR}/addons/library.xbmc.addon
89 ${CORE_SOURCE_DIR}/lib
90 ${CORE_SOURCE_DIR}/lib/gtest/include
91 ${CORE_SOURCE_DIR}/xbmc
92 ${CORE_SOURCE_DIR}/xbmc/${PLATFORM_DIR}
93 ${CORE_SOURCE_DIR}/xbmc/cores/VideoPlayer
94 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR})
95
96find_package(PkgConfig)
97if(CMAKE_CROSSCOMPILING)
98 if(PKG_CONFIG_EXECUTABLE)
99 set(PKG_CONFIG_FOUND TRUE)
100 endif()
101endif()
102
103find_package(Threads REQUIRED QUIET)
104list(APPEND DEPLIBS ${CMAKE_THREAD_LIBS_INIT})
105
106# Required dependencies
107set(required_deps Sqlite3 FreeType PCRE Cpluff LibDvd
108 TinyXML Python Yajl
109 Lzo2 Fribidi TagLib FFMPEG CrossGUID)
110if(NOT WIN32)
111 list(APPEND required_deps ZLIB)
112else()
113 list(APPEND required_deps D3DX11Effects)
114endif()
115if(CORE_SYSTEM_NAME STREQUAL android)
116 list(APPEND required_deps Zip)
117endif()
118
119# Optional dependencies
120set(optional_deps MicroHttpd MySqlClient SSH XSLT
121 Alsa UDEV DBus Avahi SmbClient
122 PulseAudio VDPAU VAAPI Bluetooth CAP)
123
124# Required, dyloaded deps
125set(required_dyload Curl ASS)
126
127# Optional, dyloaded deps
128set(dyload_optional CEC Bluray Plist NFS)
129
130# Required by shared objects we link
131set(required_dep_libs EXPAT)
132
133# Required tools
134find_package(TexturePacker REQUIRED)
135find_package(JsonSchemaBuilder REQUIRED)
136
137foreach(dep ${required_dep_libs})
138 find_package(${dep} REQUIRED)
139endforeach()
140
141foreach(dep ${required_deps})
142 core_require_dep(${dep})
143endforeach()
144
145foreach(dep ${optional_deps})
146 core_optional_dep(${dep})
147endforeach()
148
149if(NOT UDEV_FOUND)
150 core_optional_dep(LibUSB)
151endif()
152
153foreach(dep ${required_dyload})
154 core_require_dyload_dep(${dep})
155endforeach()
156
157foreach(dep ${dyload_optional})
158 core_optional_dyload_dep(${dep})
159endforeach()
160
161if(ENABLE_OPENSSL)
162 core_require_dep(OpenSSL)
163 list(APPEND DEP_DEFINES "-DHAVE_OPENSSL=1")
164endif()
165
166if(ENABLE_UPNP)
167 list(APPEND DEP_DEFINES "-DUSE_UPNP=1")
168endif()
169
170if(ENABLE_NONFREE)
171 list(APPEND DEP_DEFINES "-DHAVE_XBMC_NONFREE=1")
172endif()
173
174if(ENABLE_OPTICAL)
175 list(APPEND DEP_DEFINES -DHAS_DVD_DRIVE)
176 core_require_dep(Cdio)
177endif()
178
179if(ENABLE_LIRC)
180 set(LIRC_DEVICE /dev/lircd CACHE STRING "LIRC device to use")
181 list(APPEND DEP_DEFINES -DLIRC_DEVICE="${LIRC_DEVICE}" -DHAVE_LIRC=1)
182endif()
183
184if(ENABLE_AIRTUNES)
185 find_package(Shairplay)
186 if(SHAIRPLAY_FOUND)
187 core_require_dyload_dep(Shairplay)
188 endif()
189endif()
190
191if(CORE_SYSTEM_NAME STREQUAL osx)
192 core_require_dep(Sdl)
193else()
194 core_optional_dep(Sdl)
195endif()
196
197if(NOT WIN32)
198 core_optional_dep(OpenGl)
199 if(OPENGL_FOUND)
200 if(ENABLE_MIR)
201 core_require_dep(Mir ENABLE_MIR)
202 core_optional_dep(LibDRM ENABLE_MIR)
203 else()
204 core_optional_dep(X ENABLE_X11)
205 core_optional_dep(XRandR ENABLE_X11)
206 core_optional_dep(LibDRM ENABLE_X11)
207 endif()
208 else()
209 core_optional_dep(OpenGLES)
210 if(OPENGLES_FOUND)
211 if(ENABLE_MIR)
212 core_require_dep(Mir ENABLE_MIR)
213 core_optional_dep(LibDRM ENABLE_MIR)
214 else()
215 core_optional_dep(X ENABLE_X11)
216 core_optional_dep(LibDRM ENABLE_X11)
217 endif()
218 endif()
219 endif()
220 if(NOT APPLE)
221 core_require_dep(EGL)
222 endif()
223endif()
224
225if(CORE_SYSTEM_NAME STREQUAL android OR CORE_SYSTEM_NAME STREQUAL linux)
226 core_optional_dep(AML)
227elseif(CORE_SYSTEM_NAME STREQUAL rbpi)
228 core_require_dep(MMAL)
229endif()
230
231if(ENABLE_CCACHE)
232 core_optional_dep(CCache)
233endif()
234
235# Compile Info
236add_custom_command(OUTPUT ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp
237 ${CMAKE_BINARY_DIR}/addons/xbmc.addon/addon.xml
238 ${CMAKE_BINARY_DIR}/addons/kodi.guilib/addon.xml
239 COMMAND ${CMAKE_COMMAND} -DCORE_SOURCE_DIR=${CORE_SOURCE_DIR}
240 -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
241 -DCORE_BUILD_DIR=${CORE_BUILD_DIR}
242 -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}
243 -DARCH_DEFINES="${ARCH_DEFINES}"
244 -DAPP_SCMID=${APP_SCMID}
245 -Dprefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
246 -P ${PROJECT_SOURCE_DIR}/scripts/common/GenerateVersionedFiles.cmake
247 DEPENDS ${CORE_SOURCE_DIR}/version.txt
248 ${CORE_SOURCE_DIR}/addons/xbmc.addon/addon.xml.in
249 ${CORE_SOURCE_DIR}/addons/kodi.guilib/addon.xml.in
250 ${CORE_SOURCE_DIR}/xbmc/CompileInfo.cpp.in)
251list(APPEND install_data addons/xbmc.addon/addon.xml)
252list(APPEND install_data addons/xbmc.json/addon.xml)
253list(APPEND install_data addons/kodi.guilib/addon.xml)
254add_library(compileinfo OBJECT ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp)
255set_target_properties(compileinfo PROPERTIES FOLDER "Build Utilities")
256target_compile_options(compileinfo PRIVATE "${SYSTEM_DEFINES}")
257
258# RC File
259if(WIN32)
260 configure_file(${CORE_SOURCE_DIR}/xbmc/platform/win32/XBMC_PC.rc.in
261 ${CORE_BUILD_DIR}/xbmc/platform/win32/XBMC_PC.rc @ONLY)
262 add_library(resources OBJECT ${CORE_BUILD_DIR}/xbmc/platform/win32/XBMC_PC.rc)
263 set_target_properties(resources PROPERTIES FOLDER "Build Utilities")
264 target_include_directories(resources PRIVATE ${CORE_SOURCE_DIR}/tools/windows/packaging/media)
265 set(RESOURCES $<TARGET_OBJECTS:resources>)
266endif()
267
268include_directories(${INCLUDES} ${SYSTEM_INCLUDES})
269add_compile_options(${ARCH_DEFINES} "${SYSTEM_DEFINES}" ${DEP_DEFINES} ${PATH_DEFINES})
270
271set(core_DEPENDS "" CACHE STRING "" FORCE)
272set(test_archives "" CACHE STRING "" FORCE)
273set(test_sources "" CACHE STRING "" FORCE)
274mark_as_advanced(core_DEPENDS)
275mark_as_advanced(test_archives)
276mark_as_advanced(test_sources)
277
278add_subdirectory(${CORE_SOURCE_DIR}/lib/gtest ${CORE_BUILD_DIR}/gtest EXCLUDE_FROM_ALL)
279set_target_properties(gtest PROPERTIES FOLDER "External Projects")
280
281# copy files to build tree
282copy_files_from_filelist_to_buildtree(${PROJECT_SOURCE_DIR}/installdata/common/*.txt
283 ${PROJECT_SOURCE_DIR}/installdata/${CORE_SYSTEM_NAME}/*.txt)
284
285list(APPEND SKINS "${CORE_SOURCE_DIR}/addons/skin.estuary\;${CORE_SOURCE_DIR}")
286list(APPEND SKINS "${CORE_SOURCE_DIR}/addons/skin.estouchy\;${CORE_SOURCE_DIR}")
287
288# These are skins that are copied into place from the source tree
289foreach(skin ${SKINS})
290 list(GET skin 0 dir)
291 list(GET skin 1 relative)
292 copy_skin_to_buildtree(${dir} ${relative})
293endforeach()
294
295add_custom_target(pack-skins ALL
296 DEPENDS TexturePacker::TexturePacker export-files ${XBT_FILES})
297set_target_properties(pack-skins PROPERTIES FOLDER "Build Utilities")
298
299file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/system/players/VideoPlayer)
300
301set(LIBCEC_SONAME "${CEC_SONAME}")
302if(NOT CORE_SYSTEM_NAME STREQUAL windows AND NOT CORE_SYSTEM_NAME STREQUAL android)
303 configure_file(${CORE_SOURCE_DIR}/xbmc/DllPaths_generated.h.in
304 ${CORE_BUILD_DIR}/DllPaths_generated.h @ONLY)
305elseif(CORE_SYSTEM_NAME STREQUAL android)
306 configure_file(${CORE_SOURCE_DIR}/xbmc/DllPaths_generated_android.h.in
307 ${CORE_BUILD_DIR}/DllPaths_generated_android.h @ONLY)
308endif()
309
310# main library (used for main binary and tests)
311add_library(lib${APP_NAME_LC} STATIC $<TARGET_OBJECTS:compileinfo>)
312set_target_properties(lib${APP_NAME_LC} PROPERTIES PREFIX "")
313add_dependencies(lib${APP_NAME_LC} libcpluff ffmpeg dvdnav crossguid)
314
315# Codegen
316add_subdirectory(${CORE_SOURCE_DIR}/xbmc/interfaces/swig build/swig)
317
318# Other files (IDE)
319set(OTHER_FILES README.md)
320
321# Subdirs
322core_add_subdirs_from_filelist(${PROJECT_SOURCE_DIR}/treedata/common/*.txt
323 ${PROJECT_SOURCE_DIR}/treedata/${CORE_SYSTEM_NAME}/*.txt)
324core_add_optional_subdirs_from_filelist(${PROJECT_SOURCE_DIR}/treedata/optional/common/*.txt
325 ${PROJECT_SOURCE_DIR}/treedata/optional/${CORE_SYSTEM_NAME}/*.txt)
326
327target_link_libraries(lib${APP_NAME_LC} PUBLIC ${core_DEPENDS} ${SYSTEM_LDFLAGS} ${DEPLIBS} ${CMAKE_DL_LIBS})
328set_target_properties(lib${APP_NAME_LC} PROPERTIES PROJECT_LABEL "xbmc")
329source_group_by_folder(lib${APP_NAME_LC} RELATIVE ${CORE_SOURCE_DIR}/xbmc)
330if(WIN32)
331 add_precompiled_header(lib${APP_NAME_LC} pch.h ${CORE_SOURCE_DIR}/xbmc/platform/win32/pch.cpp PCH_TARGET kodi)
332 set_language_cxx(lib${APP_NAME_LC})
333endif()
334
335# main binary
336if(NOT CORE_SYSTEM_NAME STREQUAL android)
337 add_executable(${APP_NAME_LC} ${CORE_MAIN_SOURCE} "${RESOURCES}" ${OTHER_FILES})
338else()
339 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
340 add_library(${APP_NAME_LC} SHARED ${CORE_MAIN_SOURCE} "${RESOURCES}" ${OTHER_FILES})
341endif()
342add_dependencies(${APP_NAME_LC} ${APP_NAME_LC}-libraries export-files pack-skins)
343whole_archive(_MAIN_LIBRARIES ${core_DEPENDS})
344target_link_libraries(${APP_NAME_LC} ${_MAIN_LIBRARIES} lib${APP_NAME_LC} ${DEPLIBS})
345unset(_MAIN_LIBRARIES)
346
347if(WIN32)
348 set_target_properties(${APP_NAME_LC} PROPERTIES WIN32_EXECUTABLE ON)
349 set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${APP_NAME_LC})
350 target_sources(${APP_NAME_LC} PRIVATE ${CORE_SOURCE_DIR}/xbmc/platform/win32/app.manifest)
351elseif(CORE_SYSTEM_NAME STREQUAL android)
352 # Nothing
353elseif(CORE_SYSTEM_NAME STREQUAL ios)
354 set_target_properties(${APP_NAME_LC} PROPERTIES OUTPUT_NAME ${APP_NAME}
355 MACOSX_BUNDLE_INFO_PLIST ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Info.plist.in)
356else()
357 set_target_properties(${APP_NAME_LC} PROPERTIES SUFFIX ".bin")
358endif()
359
360# testing
361copy_files_from_filelist_to_buildtree(${PROJECT_SOURCE_DIR}/installdata/test-reference-data.txt NO_INSTALL)
362add_executable(${APP_NAME_LC}-test EXCLUDE_FROM_ALL ${CORE_SOURCE_DIR}/xbmc/test/xbmc-test.cpp ${test_sources})
363whole_archive(_TEST_LIBRARIES ${core_DEPENDS} gtest)
364target_link_libraries(${APP_NAME_LC}-test PRIVATE ${SYSTEM_LDFLAGS} ${_TEST_LIBRARIES} lib${APP_NAME_LC} ${DEPLIBS} ${CMAKE_DL_LIBS})
365unset(_TEST_LIBRARIES)
366add_dependencies(${APP_NAME_LC}-test ${APP_NAME_LC}-libraries export-files)
367if(WIN32)
368 add_precompiled_header(${APP_NAME_LC}-test pch.h ${CORE_SOURCE_DIR}/xbmc/platform/win32/pch.cpp PCH_TARGET kodi)
369endif()
370
371# Enable unit-test related targets
372if(CORE_HOST_IS_TARGET)
373 enable_testing()
374 gtest_add_tests(${APP_NAME_LC}-test "" ${test_sources})
375 add_custom_target(check ${CMAKE_CTEST_COMMAND} WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
376 add_dependencies(check ${APP_NAME_LC}-test)
377
378 # Valgrind (memcheck)
379 find_program(VALGRIND_EXECUTABLE NAMES valgrind)
380 if(VALGRIND_EXECUTABLE)
381 set(CTEST_MEMORYCHECK_COMMAND ${VALGRIND_EXECUTABLE})
382 set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "-q --trace-children=yes --leak-check=yes --track-origins=yes")
383 include(CTest)
384 add_custom_target(check-valgrind ${CMAKE_CTEST_COMMAND} -D ExperimentalMemCheck \${ARGS} WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
385 add_dependencies(check-valgrind ${APP_NAME_LC}-test)
386 endif()
387
388 # For testing commit series
389 add_custom_target(check-commits ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/scripts/common/CheckCommits.cmake
390 -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR})
391 set_target_properties(check-commits PROPERTIES FOLDER "Build Utilities")
392
393 # code coverage
394 if(CMAKE_BUILD_TYPE STREQUAL Coverage)
395 if(EXISTS ${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/CodeCoverage.cmake)
396 include(${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/CodeCoverage.cmake)
397 else()
398 message(FATAL_ERROR "Code coverage not (yet) implemented for platform ${CORE_SYSTEM_NAME}")
399 endif()
400 endif()
401
402 # Documentation
403 find_package(Doxygen)
404 if(DOXYGEN_FOUND)
405 add_custom_target(doc
406 COMMAND ${DOXYGEN_EXECUTABLE} ${CORE_SOURCE_DIR}/doxygen_resources/Doxyfile.doxy
407 COMMAND ${CMAKE_COMMAND} -E echo "Documentation built to: file://${CORE_SOURCE_DIR}/docs/html/index.html"
408 WORKING_DIRECTORY ${CORE_SOURCE_DIR}/doxygen_resources
409 COMMENT "Generating Doxygen documentation" VERBATIM)
410 endif()
411endif()
412
413# link wrapper
414if(FFMPEG_LINK_EXECUTABLE)
415 set(CMAKE_CXX_LINK_EXECUTABLE "${FFMPEG_LINK_EXECUTABLE}")
416endif()
417if(FFMPEG_CREATE_SHARED_LIBRARY)
418 set(CMAKE_CXX_CREATE_SHARED_LIBRARY "${FFMPEG_CREATE_SHARED_LIBRARY}")
419endif()
420
421# Platform specific additional extra targets
422if(EXISTS ${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/ExtraTargets.cmake)
423 include(${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/ExtraTargets.cmake)
424endif()
425
426include(scripts/${CORE_SYSTEM_NAME}/Install.cmake)
427
428# Add uninstall target
429if(CMAKE_GENERATOR MATCHES Makefile)
430 add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/scripts/common/Uninstall.cmake)
431 set_target_properties(uninstall PROPERTIES FOLDER "Build Utilities")
432endif()
433
434# Create target that allows to build binary-addons.
435# Use make binary-addons ADDONS="visualization.spectrum" to select the addons to build.
436if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
437 if(CMAKE_CROSSCOMPILING)
438 set(_cross_args CROSS_COMPILING=yes TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
439 endif()
440 if(NOT CORE_SYSTEM_NAME STREQUAL android)
441 set(_prefix ${CMAKE_BINARY_DIR}/addons)
442 set(_extra "CMAKE_EXTRA=-DPACKAGE_ZIP=ON")
443 else()
444 set(_prefix ${CMAKE_INSTALL_PREFIX})
445 endif()
446 add_custom_target(binary-addons
447 COMMAND $(MAKE) -C ${CORE_SOURCE_DIR}/tools/depends/target/binary-addons clean
448 COMMAND $(MAKE) -C ${CORE_SOURCE_DIR}/tools/depends/target/binary-addons VERBOSE=1 V=99
449 PREFIX=${_prefix} INSTALL_PREFIX=${_prefix} ${_cross_args} ${_extra})
450 unset(_cross_args)
451 unset(_prefix)
452endif()
453
454# Prepare add-on build env
455core_file_read_filtered(bindings ${CORE_SOURCE_DIR}/xbmc/addons/addon-bindings.mk)
456foreach(binding ${bindings})
457 string(REPLACE " =" ";" binding "${binding}")
458 string(REPLACE "+=" ";" binding "${binding}")
459 list(GET binding 1 header)
460 get_filename_component(file ${header} NAME)
461 configure_file(${CORE_SOURCE_DIR}/${header} ${CORE_BUILD_DIR}/include/${APP_NAME_LC}/${file} COPYONLY)
462endforeach()
463
464set(APP_LIB_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/${APP_NAME_LC})
465set(APP_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include/${APP_NAME_LC})
466set(CXX11_SWITCH "-std=c++11")
467configure_file(${PROJECT_SOURCE_DIR}/KodiConfig.cmake.in
468 ${CORE_BUILD_DIR}/lib/${APP_NAME_LC}/${APP_NAME}Config.cmake @ONLY)
469configure_file(${PROJECT_SOURCE_DIR}/scripts/common/AddonHelpers.cmake
470 ${CORE_BUILD_DIR}/lib/${APP_NAME_LC}/AddonHelpers.cmake COPYONLY)
471configure_file(${PROJECT_SOURCE_DIR}/scripts/common/AddOptions.cmake
472 ${CORE_BUILD_DIR}/lib/${APP_NAME_LC}/AddOptions.cmake COPYONLY)
473
474# Status
475message(STATUS "#---- CONFIGURATION ----#")
476foreach(msg ${final_message})
477 message(STATUS ${msg})
478endforeach()
479
480if(VERBOSE)
481 message(STATUS "\n#--------------- Internal Variables -------------#")
482 message(STATUS "DEPLIBS: ${DEPLIBS}")
483 message(STATUS "core_DEPENDS: ${core_DEPENDS}")
484 message(STATUS "#---------------------------------------------#")
485 message(STATUS "SYSTEM_LDFLAGS : ${SYSTEM_LDFLAGS}")
486 message(STATUS "CMAKE_DL_LIBS : ${CMAKE_DL_LIBS}")
487 message(STATUS "CMAKE_C_FLAGS : ${CMAKE_C_FLAGS}")
488 message(STATUS "CMAKE_CXX_FLAGS : ${CMAKE_CXX_FLAGS}")
489 message(STATUS "CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
490 message(STATUS "#---------------------------------------------#")
491 message(STATUS "bindir : ${bindir}")
492 message(STATUS "includedir : ${includedir}")
493 message(STATUS "libdir : ${libdir}")
494 message(STATUS "datarootdir: ${datarootdir}")
495 message(STATUS "#---------------------------------------------#")
496 message(STATUS "GIT_REV: ${APP_SCMID}")
497 message(STATUS "#---------------------------------------------#")
498 message(STATUS "CPACK_GENERATOR : ${CPACK_GENERATOR}")
499 message(STATUS "CPACK_SOURCE_GENERATOR: ${CPACK_SOURCE_GENERATOR}")
500 message(STATUS "#---------------------------------------------#")
501endif()
diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in
deleted file mode 100644
index c02a680..0000000
--- a/project/cmake/KodiConfig.cmake.in
+++ /dev/null
@@ -1,34 +0,0 @@
1set(APP_NAME @APP_NAME@)
2set(APP_NAME_LC @APP_NAME_LC@)
3set(APP_NAME_UC @APP_NAME_UC@)
4set(APP_VERSION_MAJOR @APP_VERSION_MAJOR@)
5set(APP_VERSION_MINOR @APP_VERSION_MINOR@)
6if(NOT @APP_NAME_UC@_PREFIX)
7 set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
8endif()
9if(NOT @APP_NAME_UC@_INCLUDE_DIR)
10 set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
11endif()
12if(NOT @APP_NAME_UC@_LIB_DIR)
13 set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
14endif()
15if(NOT @APP_NAME_UC@_DATA_DIR)
16 set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@)
17endif()
18if(NOT WIN32)
19 set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
20endif()
21list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
22
23string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
24add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
25
26if(NOT CORE_SYSTEM_NAME)
27 if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
28 set(CORE_SYSTEM_NAME "osx")
29 else()
30 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
31 endif()
32endif()
33
34include(AddonHelpers)
diff --git a/project/cmake/README.md b/project/cmake/README.md
deleted file mode 100644
index f3d727e..0000000
--- a/project/cmake/README.md
+++ /dev/null
@@ -1,299 +0,0 @@
1# Kodi CMake based buildsystem
2
3This files describes Kodi's CMake based buildsystem. CMake is a cross-platform
4tool for generating makefiles as well as project files used by IDEs.
5
6The current version of the buildsystem is capable of building and packaging
7Kodi for the following platforms:
8
9- Linux (GNU Makefiles, Ninja)
10- Windows (NMake Makefiles, Visual Studio 14 (2015), Ninja)
11- macOS and iOS (GNU Makefiles, Xcode, Ninja)
12- Android (GNU Makefiles)
13- FreeBSD (GNU Makefiles)
14
15Before building Kodi with CMake, please ensure that you have the platform
16specific dependencies installed.
17
18While the legacy build systems typically used in-source builds it's recommended
19to use out-of-source builds with CMake. The necessary runtime dependencies such
20as dlls, skins and configuration files are copied over to the build directory
21automatically.
22
23## Dependency installation
24
25### Linux
26
27The dependencies required to build on Linux can be found in
28[docs/README.xxx](https://github.com/xbmc/xbmc/tree/master/docs).
29
30### Raspberry Pi
31
32The cross compilation environment for the Raspberry Pi as well as the
33dependencies have to be installed as explained in
34[docs/README.raspberrypi](https://github.com/xbmc/xbmc/tree/master/docs/README.raspberrypi).
35
36### Windows
37
38For Windows the dependencies can be found in the
39[Wiki](http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows) (Step 1-4). If not already available on your pc, you should
40install the [Windows Software Development Kit (SDK)](https://dev.windows.com/en-us/downloads/sdk-archive) for your Windows version. This is required for HLSL shader offline compiling with the [Effect-Compiler Tool](https://msdn.microsoft.com/de-de/library/windows/desktop/bb232919(v=vs.85).aspx) (fxc.exe).
41
42On Windows, the CMake based buildsystem requires that the binary dependencies
43are downloaded using `DownloadBuildDeps.bat` and `DownloadMingwBuildEnv.bat`
44and that the mingw libs (ffmpeg, libdvd and others) are built using
45`make-mingwlibs.bat`.
46
47### macOS
48
49For macOS the required dependencies can be found in
50[docs/README.osx](https://github.com/xbmc/xbmc/tree/master/docs/README.osx).
51
52On macOS it is necessary to build the dependencies in `tools/depends` using
53`./bootstrap && ./configure --host=<PLATFORM> && make`. The other steps such
54as `make -C tools/depends/target/xbmc` and `make xcode_depends` are not needed
55as these steps are covered already by the CMake project.
56
57### Android
58
59The dependencies needed to compile for Android can be found in
60[docs/README.android](https://github.com/xbmc/xbmc/tree/master/docs/README.android)
61. All described steps have to be executed (except 5.2 which is replaced by the
62respective CMake command below).
63
64## Building Kodi
65
66This section lists the necessary commands for building Kodi with CMake.
67CMake supports different generators that can be classified into two categories:
68single- and multiconfiguration generators.
69
70A single configuration generator (GNU/NMake Makefiles) generates project files
71for a single build type (e.g. Debug, Release) specified at configure time.
72Multi configuration generators (Visual Studio, Xcode) allow to specify the
73build type at compile time.
74
75All examples below are for out-of-source builds with Kodi checked out to
76`<KODI_SRC>`:
77
78```
79mkdir kodi-build && cd kodi-build
80```
81
82### Linux with GNU Makefiles
83
84```
85cmake <KODI_SRC>/project/cmake/
86cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc)
87./kodi.bin
88```
89
90`CMAKE_BUILD_TYPE` defaults to `Release`.
91
92#### Debian package generation
93The buildsystem is capable of generating Debian packages using CPack. To generate them, `CPACK_GENERATOR` has to be set to *DEB*, i.e. executing CMake's configure step with `-DCPACK_GENERATOR=DEB`.
94You should use CMake/CPack 3.6.0 or higher. Lower versions can generate the packages but package names will be mangled.
95
96The following optional variables (which can be passed to buildsystem when executing cmake with the -D`<variable-name>=<value>` format) can be used to manipulate package type, name and version:
97
98- `DEBIAN_PACKAGE_TYPE` controls the name and version of generated packages. Accepted values are `stable`, `unstable` and `nightly` (default is `nightly`).
99- `DEBIAN_PACKAGE_EPOCH` controls package epoch (default is `2`)
100- `DEBIAN_PACKAGE_VERSION` controls package version (default is `0`)
101- `DEBIAN_PACKAGE_REVISION` controls package revision (no default is set)
102
103Packages metadata can be changed simply by editing files present in the `cpack/deb` folder
104A lot more variables are available (see cpack/CPackDebian.cmake file) but you shouldn't mess with them unless you know what you're doing.
105
106Generated packages can be found in <BUILD_DIR>/packages.
107
108### Raspberry Pi with GNU Makefiles
109
110```
111cmake -DCMAKE_TOOLCHAIN_FILE=<KODI_SRC>/tools/depends/target/Toolchain.cmake <KODI_SRC>/project/cmake/
112cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc)
113```
114
115### Windows with Visual Studio project files
116
117```
118cmake -G "Visual Studio 14" <KODI_SRC>/project/cmake/
119cmake --build . --config "Debug" # or: Build solution with Visual Studio
120Debug\kodi.exe
121```
122
123#### Windows installer generation
124
125The script [project/Win32BuildSetup](https://github.com/xbmc/xbmc/blob/master/project/Win32BuildSetup/BuildSetup.bat)
126builds an installable package for Windows.
127
128### Windows with NMake Makefiles
129
130```
131cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release <KODI_SRC>/project/cmake/
132cmake --build . # or: nmake
133kodi.exe
134```
135
136### macOS with GNU Makefiles
137
138```
139cmake -DCMAKE_TOOLCHAIN_FILE=<KODI_SRC>/tools/depends/target/Toolchain.cmake <KODI_SRC>/project/cmake/
140cmake --build . -- VERBOSE=1 -j$(sysctl -n hw.ncpu) # or: make VERBOSE=1 -j$(sysctl -n hw.ncpu)
141./kodi.bin
142```
143
144### macOS with Xcode project files
145
146```
147cmake -DCMAKE_TOOLCHAIN_FILE=<KODI_SRC>/tools/depends/target/Toolchain.cmake -G "Xcode" <KODI_SRC>/project/cmake/
148cmake --build . --config "Release" -- -verbose -jobs $(sysctl -n hw.ncpu) # or: Build solution with Xcode
149./Release/kodi.bin
150```
151
152#### macOS installer generation
153
154Afterwards an installable DMG for macOS can be built with the following command:
155
156```
157cmake --build . --config "Release" --target "dmg" # or: make dmg
158```
159
160#### iOS package generation
161
162Consequently an installable DEB for iOS can be built with the following command:
163
164```
165make deb
166```
167
168### Android with GNU Makefiles
169
170```
171cmake -DCMAKE_TOOLCHAIN_FILE=<KODI_SRC>/tools/depends/target/Toolchain.cmake <KODI_SRC>/project/cmake/
172cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc)
173```
174
175#### Android package generation
176
177An installable APK for Android can be built with the following command:
178
179```
180make apk
181```
182
183## Options
184
185Kodi supports a number of build options that can enable or disable certain
186functionality.i These options must be set when running CMake with
187`-DENABLE_<OPTION>=<ON|OFF|AUTO`. The default is `AUTO` which enables
188the option if a certain dependency is found. For example CEC support is
189enabled if libCEC is available. `ON` forcefully enables the dependency
190and the CMake run will fail if the related dependency is not available.
191This is mostly useful for packagers. `OFF` will disable the feature.
192
193Example for forcefully enabling VAAPI and disabling VDPAU:
194
195```
196cmake ... -DENABLE_VAAPI=ON -DENABLE_VDPAU=OFF ...
197```
198
199Example for building with external FFMPEG:
200
201```
202cmake ... -DFFMPEG_PATH=/opt/ffmpeg -DENABLE_INTERNAL_FFMPEG=OFF ...
203```
204
205For more information and an updated list of option, please check the
206main [project/cmake/CMakeLists.txt](https://github.com/xbmc/xbmc/tree/master/project/cmake/CMakeLists.txt).
207
208## Tests
209
210Kodi uses Google Test as its testing framework. Each test file is scanned for tests and these
211are added to CTest, which is the native test driver for CMake.
212
213This scanning happens at configuration time. If tests depend on generated support files which
214should not be scanned, then those support files should be added to the SUPPORT_SOURCES
215variable as opposed to SOURCES before calling core_add_test. You might want to do this where
216the generated support files would not exist at configure time, or if they are so large that
217scanning them would take up an unreasonable amount of configure time.
218
219## Extra targets
220
221When using the makefile builds a few extra targets are defined:
222
223- `make check` builds and executes the test suite.
224- `make check-valgrind` builds and executes the test suite with valgrind memcheck.
225- `make doc` builds the Doxygen documentation.
226
227Code coverage (with Gcov, LCOV and Gcovr) can be built on Linux:
228
229- CMake has to be executed with `-DCMAKE_BUILD_TYPE=Coverage`
230- `make coverage` generates an HTML code coverage report.
231- `make coverage_xml` generates an XML code coverage report.
232
233## Building binary addons
234
235The CMake build system integrates with the addon build system if the GNU
236Makefile generator is used. This offers an easy way to build addons for
237packagers or Kodi developers who don't work on addons.
238
239```
240make binary-addons
241```
242
243Specific addons can be built with:
244
245```
246make binary-addons ADDONS="visualization.spectrum pvr.demo"
247```
248
249Addon developers can build single addons into the Kodi build directory
250so that the addon can be tested with self-compiled specific versions of Kodi.
251
252```
253mkdir pvr.demo-build && cd pvr.demo-build
254cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=<KODI_BUILD_DIR>/build -DKODI_BUILD_DIR=<KODI_BUILD_DIR> <pvr.demo-SRC>
255make
256```
257
258It is recommended to specify the directories as absolute paths. If relative
259paths are used, they are considered relative to the build directory in which
260`cmake` was executed (aka the current working working directory).
261
262Both methods work only for already existing addons. See this
263[forum thread](http://forum.kodi.tv/showthread.php?tid=219166&pid=1934922#pid1934922)
264and [addons/README.md](https://github.com/xbmc/xbmc/blob/master/project/cmake/addons/README.md)
265for addon development and detailed documentation about the addon build system.
266
267## Sanitizers
268
269Clang and GCC support different kinds of Sanitizers. To enable a Sanitizer call CMake with the
270option `-DECM_ENABLE_SANITIZERS=’san1;san2;...'`. For more information about enabling the
271Sanitizers read the documentation in
272[modules/extra/ECMEnableSanitizers.cmake](https://github.com/xbmc/xbmc/tree/master/project/cmake/modules/extra/ECMEnableSanitizers.cmake).
273
274It is also recommended to read the sections about the Sanitizers in the [Clang
275documentation](http://clang.llvm.org/docs/).
276
277## Debugging the build
278
279This section covers some tips that can be useful for debugging a CMake
280based build.
281
282### Verbosity (show compiler and linker parameters)
283
284In order to see the exact compiler commands `make` and `nmake` can be
285executed with a `VERBOSE=1` parameter.
286
287On Windows, this is unfortunately not enough because `nmake` uses
288temporary files to workaround `nmake`'s command string length limitations.
289In order to see verbose output the file
290[Modules/Platform/Windows.cmake](https://github.com/Kitware/CMake/blob/master/Modules/Platform/Windows.cmake#L40)
291in the local CMake installation has to be adapted by uncommenting these
292lines:
293
294```
295# uncomment these out to debug nmake and borland makefiles
296#set(CMAKE_START_TEMP_FILE "")
297#set(CMAKE_END_TEMP_FILE "")
298#set(CMAKE_VERBOSE_MAKEFILE 1)
299```
diff --git a/project/cmake/addons/CMakeLists.txt b/project/cmake/addons/CMakeLists.txt
deleted file mode 100644
index 96e544b..0000000
--- a/project/cmake/addons/CMakeLists.txt
+++ /dev/null
@@ -1,434 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(kodi-addons)
3
4list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
5
6option(ADDON_TARBALL_CACHING "Cache downloaded addon source tarballs?" ON)
7if(ADDON_TARBALL_CACHING)
8 message(STATUS "Addon source tarball caching is enabled")
9else()
10 message(STATUS "Addon source tarball caching is disabled")
11endif()
12
13if(NOT CMAKE_BUILD_TYPE)
14 set(CMAKE_BUILD_TYPE Release)
15endif()
16
17if(NOT CORE_SYSTEM_NAME)
18 if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
19 set(CORE_SYSTEM_NAME "osx")
20 else()
21 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
22 endif()
23endif()
24
25include(ExternalProject)
26
27### setup all the necessary paths
28if(APP_ROOT)
29 set(CORE_SOURCE_DIR ${APP_ROOT})
30 unset(APP_ROOT)
31 message(WARNING "APP_ROOT is deprecated. Please use CORE_SOURCE_DIR instead.")
32endif()
33if(NOT CORE_SOURCE_DIR)
34 set(CORE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../..)
35else()
36 file(TO_CMAKE_PATH "${CORE_SOURCE_DIR}" CORE_SOURCE_DIR)
37endif()
38get_filename_component(CORE_SOURCE_DIR "${CORE_SOURCE_DIR}" ABSOLUTE)
39
40if(NOT BUILD_DIR)
41 set(BUILD_DIR "${CMAKE_BINARY_DIR}/build")
42else()
43 file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR)
44endif()
45get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE)
46
47if(NOT ADDON_DEPENDS_PATH)
48 set(ADDON_DEPENDS_PATH "${BUILD_DIR}/depends")
49else()
50 file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH)
51endif()
52get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE)
53
54if(NOT PLATFORM_DIR)
55 set(PLATFORM_DIR ${CORE_SOURCE_DIR}/project/cmake/platform/${CORE_SYSTEM_NAME})
56 file(TO_CMAKE_PATH "${PLATFORM_DIR}" PLATFORM_DIR)
57endif()
58
59# make sure CMAKE_PREFIX_PATH is set
60if(NOT CMAKE_PREFIX_PATH)
61 set(CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}")
62else()
63 file(TO_CMAKE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH)
64 list(APPEND CMAKE_PREFIX_PATH "${ADDON_DEPENDS_PATH}")
65endif()
66
67# check for autoconf stuff to pass on
68if(AUTOCONF_FILES)
69 string(REPLACE " " ";" AUTOCONF_FILES ${AUTOCONF_FILES})
70 set(CROSS_AUTOCONF "yes")
71endif()
72
73if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
74 set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/output/addons")
75endif()
76list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
77
78set(BUILD_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
79 -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
80 -DPACKAGE_CONFIG_PATH=${ADDON_DEPENDS_PATH}/lib/pkgconfig
81 -DADDON_DEPENDS_PATH=${ADDON_DEPENDS_PATH}
82 -DOVERRIDE_PATHS=${OVERRIDE_PATHS}
83 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
84 -DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_USER_MAKE_RULES_OVERRIDE}
85 -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}
86 -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
87 -DBUILD_SHARED_LIBS=1
88 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
89 -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS})
90
91if(MSVC)
92 # move cmake specific targets to a CMakePredefinedTargets folder in Visual Studio
93 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
94endif()
95
96option(PACKAGE_ZIP "Prepare built addons for packaging" OFF)
97if(PACKAGE_ZIP)
98 # needed for project installing
99 list(APPEND BUILD_ARGS -DPACKAGE_ZIP=ON)
100
101 # figure out where to store the packaged ZIP archives
102 if(NOT PACKAGE_DIR)
103 set(PACKAGE_DIR "${BUILD_DIR}/zips")
104 else()
105 file(TO_CMAKE_PATH "${PACKAGE_DIR}" PACKAGE_DIR)
106 endif()
107 list(APPEND BUILD_ARGS -DPACKAGE_DIR=${PACKAGE_DIR})
108
109 message(STATUS "ZIP packaging enabled (destination: ${PACKAGE_DIR})")
110endif()
111
112if(CMAKE_TOOLCHAIN_FILE)
113 list(APPEND BUILD_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
114 message(STATUS "Toolchain specified")
115 message(STATUS ${BUILD_ARGS})
116endif()
117
118if(NOT ADDONS_TO_BUILD)
119 set(ADDONS_TO_BUILD "all")
120else()
121 string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD)
122 message(STATUS "Building following addons: ${ADDONS_TO_BUILD}")
123 string(REPLACE " " ";" ADDONS_TO_BUILD ${ADDONS_TO_BUILD})
124endif()
125
126if(NOT ADDONS_DEFINITION_DIR)
127 set(ADDONS_DEFINITION_DIR ${PROJECT_SOURCE_DIR}/addons)
128else()
129 file(TO_CMAKE_PATH "${ADDONS_DEFINITION_DIR}" ADDONS_DEFINITION_DIR)
130endif()
131get_filename_component(ADDONS_DEFINITION_DIR "${ADDONS_DEFINITION_DIR}" ABSOLUTE)
132
133if(ADDON_SRC_PREFIX)
134 if(NOT IS_ABSOLUTE ${ADDON_SRC_PREFIX})
135 get_filename_component(ADDON_SRC_PREFIX "${CMAKE_BINARY_DIR}/${ADDON_SRC_PREFIX}" ABSOLUTE)
136 endif()
137 message(STATUS "Overriding addon source directory prefix: ${ADDON_SRC_PREFIX}")
138endif()
139
140if(NOT APP_LIB_DIR)
141 set(APP_LIB_DIR "${ADDON_DEPENDS_PATH}/lib/kodi")
142else()
143 file(TO_CMAKE_PATH "${APP_LIB_DIR}" APP_LIB_DIR)
144endif()
145
146set(APP_PREFIX "${CMAKE_INSTALL_PREFIX}")
147
148# check for platform specific stuff
149if(EXISTS ${PLATFORM_DIR}/defines.txt)
150 file(STRINGS ${PLATFORM_DIR}/defines.txt platformdefines)
151
152 if(NOT ARCH_DEFINES AND platformdefines)
153 set(ARCH_DEFINES ${platformdefines})
154 endif()
155endif()
156
157# include check_target_platform() function
158include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckTargetPlatform.cmake)
159
160set(ADDON_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
161if(NOT WIN32)
162 # check install permissions
163 check_install_permissions(${CMAKE_INSTALL_PREFIX} can_write)
164 if(NOT ${can_write} AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
165 set(NEED_SUDO TRUE)
166 set(ADDON_INSTALL_DIR ${CMAKE_BINARY_DIR}/.install)
167 list(APPEND BUILD_ARGS -DOVERRIDE_PATHS=ON)
168 message(STATUS "NEED_SUDO: ${NEED_SUDO} (no write permission for ${CMAKE_INSTALL_PREFIX})")
169 endif()
170endif()
171
172### prepare the build environment for the binary addons
173# copy the PrepareEnv.cmake script to the depends path so that we can include it
174file(COPY ${CORE_SOURCE_DIR}/project/cmake/scripts/common/PrepareEnv.cmake DESTINATION ${APP_LIB_DIR})
175
176# add the location of PrepareEnv.cmake to CMAKE_MODULE_PATH so that it is found
177list(APPEND CMAKE_MODULE_PATH ${APP_LIB_DIR})
178
179# include PrepareEnv.cmake which contains the logic to install the addon header bindings etc
180include(PrepareEnv)
181
182### add the depends subdirectory for any general dependencies
183message(STATUS "\n-- ---- Preparing general dependencies ----")
184add_subdirectory(depends)
185
186# add a custom target "package-addons" which will package and install all addons
187add_custom_target(package-addons)
188
189### get and build all the binary addons
190# look for all the addons to be built
191file(GLOB_RECURSE addons ${ADDONS_DEFINITION_DIR}/*.txt)
192
193#if there are no addons assume that bootstrapping hasn't happened yet
194if(NOT addons)
195 message(STATUS "Bootstrapping all default repositories as no addons were found...")
196 set(BOOTSTRAP_BUILD_DIR "${BUILD_DIR}/bootstrap")
197
198 # make sure that the bootstraps build addon exists
199 if(NOT EXISTS ${BOOTSTRAP_BUILD_DIR})
200 file(MAKE_DIRECTORY ${BOOTSTRAP_BUILD_DIR})
201 endif()
202
203 string(REPLACE ";" " " ADDONS_TO_BUILD_STR "${ADDONS_TO_BUILD}")
204 # generate the bootstrap buildsystem
205 execute_process(COMMAND ${CMAKE_COMMAND} ${PROJECT_SOURCE_DIR}/bootstrap
206 -DCMAKE_INSTALL_PREFIX:PATH=${ADDONS_DEFINITION_DIR}
207 -DBUILD_DIR:PATH=${BOOTSTRAP_BUILD_DIR}
208 -DADDONS_TO_BUILD:STRING=${ADDONS_TO_BUILD_STR}
209 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
210 WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR})
211
212 # execute the generated bootstrap buildsystem
213 execute_process(COMMAND ${CMAKE_COMMAND} --build ${BOOTSTRAP_BUILD_DIR}
214 WORKING_DIRECTORY ${BOOTSTRAP_BUILD_DIR})
215
216 # now look for all the addons to be built again
217 file(GLOB_RECURSE addons ${ADDONS_DEFINITION_DIR}/*.txt)
218
219 if(NOT addons)
220 message(FATAL_ERROR "No addons available to be built")
221 endif()
222endif()
223
224# Track if at least one addon has been found. Everything else is likely an
225# error either in ADDONS_TO_BUILD or in the directory configuration.
226set(SUPPORTED_ADDON_FOUND FALSE)
227
228foreach(addon ${addons})
229 if(NOT (addon MATCHES platforms.txt))
230 file(STRINGS ${addon} def)
231 string(REPLACE " " ";" def ${def})
232 list(GET def 0 id)
233
234 set(ADDON_FOUND FALSE)
235 # try to find a perfect match
236 list(FIND ADDONS_TO_BUILD ${id} idx)
237 if(idx GREATER -1 OR "${ADDONS_TO_BUILD}" STREQUAL "all")
238 set(ADDON_FOUND TRUE)
239 # Maybe we have a regex
240 elseif(id MATCHES "${ADDONS_TO_BUILD}")
241 message(STATUS "Pattern ${ADDONS_TO_BUILD} matches ${id}, building addon")
242 set(ADDON_FOUND TRUE)
243 endif()
244
245 if(ADDON_FOUND)
246 message(STATUS "\n-- ---- Configuring addon ${addon} ----")
247 set(SUPPORTED_ADDON_FOUND TRUE)
248
249 get_filename_component(dir ${addon} DIRECTORY)
250
251 # check if the addon has a platforms.txt
252 set(platform_found FALSE)
253 check_target_platform(${dir} ${CORE_SYSTEM_NAME} platform_found)
254
255 if(${platform_found})
256 # make sure the output directory is clean
257 file(REMOVE_RECURSE "${CMAKE_INSTALL_PREFIX}/${id}/")
258
259 # get the URL and revision of the addon
260 list(LENGTH def deflength)
261 list(GET def 1 url)
262
263 set(archive_name ${id})
264 if(ADDON_SRC_PREFIX)
265 set(SOURCE_DIR ${ADDON_SRC_PREFIX}/${id})
266 set(archive_name "")
267 else()
268 set(SOURCE_DIR "")
269 endif()
270
271 # if there is a 3rd parameter in the file, we consider it a git revision
272 if(deflength GREATER 2 AND "${SOURCE_DIR}" STREQUAL "")
273 list(GET def 2 revision)
274
275 # we need access to a git executable
276 find_package(Git REQUIRED)
277
278 # resolve revision to git hash
279 execute_process(COMMAND ${GIT_EXECUTABLE} ls-remote ${url} ${revision} OUTPUT_VARIABLE revision_hash)
280 # git ls-remote only works on branches and tag names but not on revisions
281 if(NOT "${revision_hash}" STREQUAL "")
282 string(REPLACE "\t" ";" revision_list ${revision_hash})
283 list(GET revision_list 0 revision_hash)
284 message(STATUS "${id}: git branch/tag ${revision} resolved to hash: ${revision_hash}")
285 set(revision ${revision_hash})
286 endif()
287
288 # Note: downloading specific revisions via http in the format below is probably github specific
289 # if we ever use other repositories, this might need adapting
290 set(url ${url}/archive/${revision}.tar.gz)
291 set(archive_name ${archive_name}-${revision})
292 elseif("${SOURCE_DIR}" STREQUAL "")
293 # check if the URL starts with file://
294 string(REGEX MATCH "^file://.*$" local_url "${url}")
295
296 #if not we assume this to be a local directory
297 if(local_url)
298 # this is not an archive
299 set(archive_name "")
300
301 # remove the file:// protocol from the URL
302 string(REPLACE "file://" "" SOURCE_DIR "${url}")
303
304 # on win32 we may have to remove another leading /
305 if(WIN32)
306 # check if the path is a local path
307 string(REGEX MATCH "^/.*$" local_path "${SOURCE_DIR}")
308 if(local_path)
309 string(SUBSTRING "${SOURCE_DIR}" 1 -1 SOURCE_DIR)
310 endif()
311 endif()
312 endif()
313 endif()
314
315 # download the addon if necessary
316 if(NOT "${archive_name}" STREQUAL "")
317 # download and extract the addon
318 if(NOT ADDON_TARBALL_CACHING OR NOT EXISTS ${BUILD_DIR}/download/${archive_name}.tar.gz)
319 # cleanup any of the previously downloaded archives of this addon
320 file(GLOB archives "${BUILD_DIR}/download/${id}*.tar.gz")
321 if(archives)
322 message(STATUS "Removing old archives of ${id}: ${archives}")
323 file(REMOVE ${archives})
324 endif()
325
326 # download the addon
327 file(DOWNLOAD "${url}" "${BUILD_DIR}/download/${archive_name}.tar.gz" STATUS dlstatus LOG dllog SHOW_PROGRESS)
328 list(GET dlstatus 0 retcode)
329 if(NOT ${retcode} EQUAL 0)
330 message(FATAL_ERROR "ERROR downloading ${url} - status: ${dlstatus} log: ${dllog}")
331 endif()
332 endif()
333
334 # remove any previously extracted version of the addon
335 file(REMOVE_RECURSE "${BUILD_DIR}/${id}")
336
337 # extract the addon from the archive
338 execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${BUILD_DIR}/download/${archive_name}.tar.gz
339 WORKING_DIRECTORY ${BUILD_DIR})
340 file(GLOB extract_dir "${BUILD_DIR}/${archive_name}*")
341 if(extract_dir STREQUAL "")
342 message(FATAL_ERROR "${id}: error extracting ${BUILD_DIR}/download/${archive_name}.tar.gz")
343 else()
344 file(RENAME "${extract_dir}" "${BUILD_DIR}/${id}")
345 endif()
346
347 set(SOURCE_DIR ${BUILD_DIR}/${id})
348 endif()
349
350 if(NOT "${SOURCE_DIR}" STREQUAL "" AND EXISTS ${SOURCE_DIR})
351 # create a list of addons we are building
352 list(APPEND ALL_ADDONS_BUILDING ${id})
353
354 # setup the buildsystem for the addon
355 externalproject_add(${id}
356 SOURCE_DIR ${SOURCE_DIR}
357 INSTALL_DIR ${ADDON_INSTALL_DIR}
358 CMAKE_ARGS ${BUILD_ARGS})
359
360 # add a custom step to the external project between the configure and the build step which will always
361 # be executed and therefore forces a re-build of all changed files
362 externalproject_add_step(${id} forcebuild
363 COMMAND ${CMAKE_COMMAND} -E echo "Force build of ${id}"
364 DEPENDEES configure
365 DEPENDERS build
366 ALWAYS 1)
367
368 # add "kodi-platform" as a dependency to every addon
369 add_dependencies(${id} kodi-platform)
370
371 set(${id}_DEPENDS_DIR ${SOURCE_DIR}/depends)
372
373 if(EXISTS ${${id}_DEPENDS_DIR})
374 include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake)
375 add_addon_depends(${id} ${${id}_DEPENDS_DIR})
376 if(${id}_DEPS AND NOT "${${id}_DEPS}" STREQUAL "")
377 message(STATUS "${id} DEPENDENCIES: ${${id}_DEPS}")
378 add_dependencies(${id} ${${id}_DEPS})
379 endif()
380 endif()
381
382 if(CROSS_AUTOCONF AND AUTOCONF_FILES)
383 if(EXISTS ${SOURCE_DIR}/bootstrap/autoreconf.txt)
384 file(STRINGS ${SOURCE_DIR}/bootstrap/autoreconf.txt conf_dirs)
385 foreach(conf_dir ${conf_dirs})
386 foreach(afile ${AUTOCONF_FILES})
387 message(STATUS "copying ${afile} to ${SOURCE_DIR}/${conf_dir}")
388 file(COPY ${afile} DESTINATION ${SOURCE_DIR}/${conf_dir})
389 endforeach()
390 endforeach()
391 endif()
392 endif()
393
394 # create a forwarding target to the addon-package target
395 add_custom_target(package-${id}
396 COMMAND ${CMAKE_COMMAND} --build ${id}-prefix/src/${id}-build --target addon-package
397 DEPENDS ${id})
398 add_dependencies(package-addons package-${id})
399
400 else()
401 message(FATAL_ERROR "${id}: invalid or missing addon source directory at ${SOURCE_DIR}")
402 endif()
403 else()
404 # add a dummy target for addons that are unsupported on this platform
405 add_custom_target(${id} COMMAND ${CMAKE_COMMAND} -E echo "IGNORED ${id} - not supported on ${CORE_SYSTEM_NAME}\n")
406 endif()
407 endif()
408 endif()
409endforeach()
410message(STATUS "")
411
412if(NEED_SUDO)
413 add_custom_target(sudo-install
414 COMMAND ${CMAKE_COMMAND} -E echo "sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}\n"
415 COMMAND sudo ${CMAKE_COMMAND} -E copy_directory ${ADDON_INSTALL_DIR}/ ${CMAKE_INSTALL_PREFIX}/
416 COMMAND sudo -k)
417
418 foreach(_id ${ALL_ADDONS_BUILDING})
419 add_dependencies(sudo-install ${_id})
420 endforeach()
421 message(WARNING "sudo rights needed to install to ${CMAKE_INSTALL_PREFIX}")
422 message(STATUS "\nplease type \"make sudo-install\"\n\n")
423endif()
424
425if(NOT SUPPORTED_ADDON_FOUND)
426 message(FATAL_ERROR "${ADDONS_TO_BUILD} did not match any of the supported addons. \
427 A list of supported addons can be viewed by building the 'supported_addons' target. \
428 Addon definitions are loaded from ADDONS_DEFINITION_DIR (${ADDONS_DEFINITION_DIR}).")
429endif()
430
431# add custom target "supported_addons" that returns all addons that are supported on this platform
432string(REPLACE ";" " " ALL_ADDONS_BUILDING "${ALL_ADDONS_BUILDING}")
433add_custom_target(supported_addons COMMAND ${CMAKE_COMMAND} -E echo "ALL_ADDONS_BUILDING: ${ALL_ADDONS_BUILDING}" VERBATIM)
434add_custom_target(need-sudo COMMAND ${CMAKE_COMMAND} -E echo ${NEED_SUDO} VERBATIM)
diff --git a/project/cmake/addons/README.md b/project/cmake/addons/README.md
deleted file mode 100644
index 6470ee1..0000000
--- a/project/cmake/addons/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
1![Kodi logo](https://raw.githubusercontent.com/xbmc/xbmc-forum/master/xbmc/images/logo-sbs-black.png)
2# Kodi add-ons CMake based buildsystem
3This directory contains the cmake-based buildsystem for Kodi add-ons. It looks into the directory pointed to by the *ADDONS_DEFINITION_DIR* option (which defaults to the *addons* sub-directory) and parses all *.txt files recursively. Each add-on must have its own `<addon-id>.txt` file in a separate sub-directory that must follow one of the defined formats:
4
5 - `<addon-id> <git-url> <git-revision>`
6 - `<addon-id> <tarball-url>`
7 - `<addon-id> <file://path>`
8
9where
10- `<addon-id>` must be identical to the add-on's ID as defined in the add-on's addon.xml
11- `<git-url>` must be the URL of the git repository containing the add-on
12- `<git-revision>` must be a valid git tag/branch/commit in the add-on's git repository which will be used for the build
13- `<tarball-url>` must be the URL to a .tar.gz tarball containing the add-on
14- `<file://path>` must be a *file://* based path to the directory containing the add-on
15
16## Reserved filenames
17- **platforms.txt**
18
19List of platforms to build an add-on for (or *all*). Negating platforms is supported using a leading exclamation mark, e.g. *!windows*.
20
21Available platforms are: linux, windows, osx, ios, android, rbpi and freebsd.
22
23#### Attention
24If no add-on definitions could be found, the buildsystem assumes that the bootstrapping of the add-on definition repositories hasn't been performed yet and automatically executes the add-on bootstrapping buildsystem located in the *bootstrap* sub-directory with the default settings (i.e. *all* add-ons from all pre-defined add-on definition repositories are bootstrapped into the directory pointed to by the *ADDONS_DEFINITION_DIR* option).
25
26## Buildsystem variables
27The buildsystem uses the following variables (which can be passed into it when executing cmake with the -D`<variable-name>=<value>` format) to manipulate the build process:
28- `ADDONS_TO_BUILD` has two variations, which are tested in order:
29 - a quoted, space delimited list of `<addon-id>s` that you want to build (default is *all*)
30 - a regular expression that every `<addon-id>` is matched against (e.g. `ADDONS_TO_BUILD="pvr.*"`) to build all pvr add-ons
31- `ADDONS_DEFINITION_DIR` points to the directory containing the definitions for the addons to be built
32- `ADDON_SRC_PREFIX` can be used to override the add-on repository location. It must point to the locally available parent directory of the add-on(s) to build. `<addon-id>` will be appended to this path automatically
33- `CMAKE_BUILD_TYPE` specifies the type of the build. This can be either *Debug* or *Release* (default is *Release*)
34- `CMAKE_INSTALL_PREFIX` points to the directory where the built add-ons and their additional files (addon.xml, resources, ...) will be installed to (defaults to `<ADDON_DEPENDS_PATH>`)
35- `CMAKE_TOOLCHAIN_FILE` can be used to pass a toolchain file into the add-on builds
36- `ADDON_DEPENDS_PATH` points to the directory containing the *include* and *lib* directories of the add-ons' dependencies.
37- `CORE_SOURCE_DIR` points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory)
38- `BUILD_DIR` points to the directory where the add-ons and their dependencies will be downloaded and built
39- `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`
40- `PACKAGE_DIR` points to the directory where the ZIP archived add-ons will be stored after they have been packaged (defaults to `<BUILD_DIR>/zips`)
41- `ARCH_DEFINES` specifies the platform-specific C/C++ preprocessor defines (defaults to empty)
42- `ADDON_TARBALL_CACHING` specifies whether downloaded add-on source tarballs should be cached or not (defaults to *ON*)
43
44## Deprecated buildsystem variables
45Buildsystem will print a warning if you use any of the below-listed variables. For now they still work but you should adapt your workflow to the new variables.
46- `APP_ROOT` - Use `CORE_SOURCE_DIR` instead
47
48## Building
49The buildsystem makes some assumptions about the environment which must be met by whoever uses it:
50- Any dependencies of the add-ons 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)
51
52To trigger the cmake-based buildsystem the following command must be executed with `<path>` set to this directory (absolute or relative) allowing for in-source and out-of-source builds
53
54`cmake <path> -G <generator>`
55
56CMake supports multiple generators. See [here] (https://cmake.org/cmake/help/v3.1/manual/cmake-generators.7.html) for a list.
57
58In case of additional options the call might look like this:
59
60cmake `<path>` [-G `<generator>`] \
61 -DCMAKE_BUILD_TYPE=Release \
62 -DCORE_SOURCE_DIR="`<path-to-app-root>`" \
63 -DARCH_DEFINES="-DTARGET_LINUX" \
64 -DADDON_DEPENDS_PATH=`<path-to-built-depends>` \
65 -DCMAKE_INSTALL_PREFIX="`<path-to-install-directory`"
diff --git a/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt b/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt
deleted file mode 100644
index baa6044..0000000
--- a/project/cmake/addons/addons/pvr.dvbviewer/platforms.txt
+++ /dev/null
@@ -1 +0,0 @@
1all \ No newline at end of file
diff --git a/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt b/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt
deleted file mode 100644
index db25aa2..0000000
--- a/project/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt
+++ /dev/null
@@ -1 +0,0 @@
1pvr.dvbviewer https://github.com/manuelm/pvr.dvbviewer master \ No newline at end of file
diff --git a/project/cmake/addons/bootstrap/Bootstrap.cmake b/project/cmake/addons/bootstrap/Bootstrap.cmake
deleted file mode 100644
index 5d20302..0000000
--- a/project/cmake/addons/bootstrap/Bootstrap.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
1list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
2
3# make sure that the installation location has been specified
4if(NOT CMAKE_INSTALL_PREFIX)
5 message(FATAL_ERROR "CMAKE_INSTALL_PREFIX has not been specified")
6endif()
7
8# figure out which addons to bootstrap (defaults to all)
9if(NOT ADDONS_TO_BUILD)
10 set(ADDONS_TO_BUILD "all")
11else()
12 string(STRIP "${ADDONS_TO_BUILD}" ADDONS_TO_BUILD)
13 message(STATUS "Bootstrapping following addons: ${ADDONS_TO_BUILD}")
14 string(REPLACE " " ";" ADDONS_TO_BUILD ${ADDONS_TO_BUILD})
15endif()
16
17# find all addon definitions and go through them
18file(GLOB_RECURSE ADDON_DEFINITIONS ${PROJECT_SOURCE_DIR}/*.txt)
19foreach(ADDON_DEFINITION_FILE ${ADDON_DEFINITIONS})
20 # ignore platforms.txt
21 if(NOT (ADDON_DEFINITION_FILE MATCHES platforms.txt))
22 # read the addon definition file
23 file(STRINGS ${ADDON_DEFINITION_FILE} ADDON_DEFINITION)
24 string(REPLACE " " ";" ADDON_DEFINITION ${ADDON_DEFINITION})
25
26 # extract the addon definition's identifier
27 list(GET ADDON_DEFINITION 0 ADDON_ID)
28
29 # check if the addon definition should be built
30 if(ADDON_ID MATCHES "^${ADDONS_TO_BUILD}" OR ADDONS_TO_BUILD STREQUAL all)
31 # get the path to the addon definition directory
32 get_filename_component(ADDON_DEFINITION_DIR ${ADDON_DEFINITION_FILE} DIRECTORY)
33
34 # install the addon definition
35 message(STATUS "Bootstrapping ${ADDON_ID} addon...")
36 file(INSTALL ${ADDON_DEFINITION_DIR} DESTINATION ${CMAKE_INSTALL_PREFIX})
37 endif()
38 endif()
39endforeach()
diff --git a/project/cmake/addons/bootstrap/CMakeLists.txt b/project/cmake/addons/bootstrap/CMakeLists.txt
deleted file mode 100644
index c20b97e..0000000
--- a/project/cmake/addons/bootstrap/CMakeLists.txt
+++ /dev/null
@@ -1,94 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(kodi-addons-bootstrap)
3
4list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
5
6# make sure CMAKE_INSTALL_PREFIX is properly set
7if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
8 set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/../addons")
9endif()
10list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX})
11
12# figure out where the build directory is located
13if(NOT BUILD_DIR)
14 set(BUILD_DIR "${CMAKE_BINARY_DIR}/build")
15else()
16 file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR)
17endif()
18get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE)
19
20# make sure that the repositories to build have been specified
21if(NOT REPOSITORY_TO_BUILD)
22 set(REPOSITORY_TO_BUILD_DEFAULT ON)
23 set(REPOSITORY_TO_BUILD "all")
24 set(REPOSITORY_REVISION "")
25 message(STATUS "Bootstrapping all repositories")
26else()
27 set(REPOSITORY_TO_BUILD_DEFAULT OFF)
28 message(STATUS "Bootstrapping following repository: ${REPOSITORY_TO_BUILD}")
29endif()
30
31# figure out which addons to bootstrap (defaults to all)
32if(NOT ADDONS_TO_BUILD)
33 set(ADDONS_TO_BUILD "all")
34 message(STATUS "Bootstrapping all addons")
35else()
36 message(STATUS "Bootstrapping following addons: ${ADDONS_TO_BUILD}")
37endif()
38
39include(ExternalProject)
40
41function(bootstrap_repo repo_id repo_url repo_revision)
42 message(STATUS "Bootstrapping addons from ${repo_id} (${repo_url} ${repo_revision})...")
43 externalproject_add(${repo_id}
44 GIT_REPOSITORY ${repo_url}
45 GIT_TAG ${repo_revision}
46 PREFIX ${BUILD_DIR}/${repo_id}
47 CONFIGURE_COMMAND ""
48 BUILD_COMMAND ""
49 INSTALL_COMMAND ${CMAKE_COMMAND}
50 -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
51 -DPROJECT_SOURCE_DIR=<SOURCE_DIR>
52 -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
53 -DADDONS_TO_BUILD=${ADDONS_TO_BUILD}
54 -P ${PROJECT_SOURCE_DIR}/Bootstrap.cmake
55 )
56endfunction()
57
58# look for all addons repository definitions
59set(REPOSITORY_TO_BUILD_FOUND OFF)
60file(GLOB repos repositories/*.txt)
61foreach(repo ${repos})
62 file(STRINGS ${repo} repo_definition)
63 string(REPLACE " " ";" repo_definition ${repo_definition})
64 list(GET repo_definition 0 repo_id)
65
66 list(FIND REPOSITORY_TO_BUILD ${repo_id} idx)
67 if(idx GREATER -1 OR REPOSITORY_TO_BUILD STREQUAL "all")
68 set(REPOSITORY_TO_BUILD_FOUND ON)
69
70 # get the URL of the repository
71 list(GET repo_definition 1 repo_url)
72
73 # get the revision of the repository if not provided as an argument
74 if(NOT REPOSITORY_REVISION)
75 list(GET repo_definition 2 repo_revision)
76 else()
77 set(repo_revision "${REPOSITORY_REVISION}")
78 endif()
79
80 bootstrap_repo(${repo_id} ${repo_url} ${repo_revision})
81 endif()
82endforeach()
83
84# if we have been asked to bootstrap a specific repository (not the default one) and
85# it couldn't be found in the predefined repository definitions we assume that it's a
86# URL to a specific repository
87if(NOT REPOSITORY_TO_BUILD_DEFAULT AND NOT REPOSITORY_TO_BUILD_FOUND)
88 # default to the master branch if no revision has been provided
89 if(NOT REPOSITORY_REVISION)
90 set(REPOSITORY_REVISION "master")
91 endif()
92
93 bootstrap_repo(binary-addons-custom ${REPOSITORY_TO_BUILD} ${REPOSITORY_REVISION})
94endif()
diff --git a/project/cmake/addons/bootstrap/README.md b/project/cmake/addons/bootstrap/README.md
deleted file mode 100644
index b886b5b..0000000
--- a/project/cmake/addons/bootstrap/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
1# KODI ADDON DEFINITIONS BOOTSTRAPPING
2This directory contains the cmake-based buildsystem for addon definitions
3bootstrapping which downloads the addon definitions from one or more addon
4definitions repositories. These addon definitions are then used by the addon
5buildsystem to figure out which addons and which versions to build. It looks
6into the "repositories" sub-directory and parses all *.txt files recursively.
7Each addon definitions repository must have its own <repository>.txt file which
8must follow the following defined format:
9```
10<repository> <git-url> <git-revision>
11```
12where
13* `<repository>` is the identification of the repository.
14* `<git-url>` must be the URL of the git repository containing the addon
15 definitions
16* `<git-revision>` must be a valid git tag/branch/commit in the addon
17 definitions repository's git repository which will be used for the build
18
19The buildsystem uses the following variables (which can be passed into it when
20executing cmake with the `-D<variable-name>=<value>` option):
21* `CMAKE_INSTALL_PREFIX` points to the directory where the downloaded addon
22definitions will be installed to (defaults to `../addons`).
23* `BUILD_DIR` points to the directory where the addon definitions repositories
24will be downloaded to.
25* `REPOSITORY_TO_BUILD` specifies a single addon definitions repository to be
26downloaded and processed (defaults to `"all"`).
27* `REPOSITORY_REVISION` specifies the git revision in the addon definitions
28repository which will be used for the build. This option is only valid in
29combination with the `REPOSITORY_TO_BUILD` option (defaults to the git
30revision specified in the repository's definition file).
31* `ADDONS_TO_BUILD` is a quoted, space delimited list of `<addon-id>`s that
32should be bootstrapped (default is `"all"`).
33
34To trigger the cmake-based buildsystem the following command must be executed
35with <path> being the path to this directory (absolute or relative, allowing for
36in-source and out-of-source builds).
37```
38cmake <path> -G <generator>
39```
40
41cmake supports multiple generators, see
42http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list.
43
44In case of additional options the call might look like this
45```
46cmake <path> [-G <generator>] \
47 -DCMAKE_INSTALL_PREFIX="<path-to-install-directory>"
48``` \ No newline at end of file
diff --git a/project/cmake/addons/bootstrap/repositories/binary-addons.txt b/project/cmake/addons/bootstrap/repositories/binary-addons.txt
deleted file mode 100644
index 8674f06..0000000
--- a/project/cmake/addons/bootstrap/repositories/binary-addons.txt
+++ /dev/null
@@ -1 +0,0 @@
1binary-addons https://github.com/xbmc/repo-binary-addons.git master \ No newline at end of file
diff --git a/project/cmake/addons/depends/CMakeLists.txt b/project/cmake/addons/depends/CMakeLists.txt
deleted file mode 100644
index 622701d..0000000
--- a/project/cmake/addons/depends/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(kodi-addons-depends)
3
4list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
5
6if(NOT CMAKE_BUILD_TYPE)
7 set(CMAKE_BUILD_TYPE Release)
8endif()
9
10if(NOT CORE_SYSTEM_NAME)
11 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
12endif()
13
14include(ExternalProject)
15
16if(NOT ADDON_DEPENDS_PATH)
17 set(ADDON_DEPENDS_PATH ${PROJECT_SOURCE_DIR}/../build/depends)
18else()
19 file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH)
20endif()
21get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE)
22list(APPEND CMAKE_PREFIX_PATH ${ADDON_DEPENDS_PATH})
23
24if(NOT BUILD_DIR)
25 set(BUILD_DIR "${CMAKE_BINARY_DIR}/build")
26else()
27 file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR)
28endif()
29get_filename_component(BUILD_DIR "${BUILD_DIR}" ABSOLUTE)
30
31## use add_addon_depends to handle the cmake based dependencies
32include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake)
33add_addon_depends(depends "${PROJECT_SOURCE_DIR}")
34
35## if there's a platform-specific sub-directory containing a CMakeLists.txt, add it to the build as well
36if(EXISTS ${PROJECT_SOURCE_DIR}/${CORE_SYSTEM_NAME}/CMakeLists.txt)
37 message(STATUS "Processing ${CORE_SYSTEM_NAME}")
38 add_subdirectory(${CORE_SYSTEM_NAME})
39else()
40 message(STATUS "No platform specific file ${PROJECT_SOURCE_DIR}/${CORE_SYSTEM_NAME}/CMakeLists.txt found")
41endif()
diff --git a/project/cmake/addons/depends/README b/project/cmake/addons/depends/README
deleted file mode 100644
index 584a167..0000000
--- a/project/cmake/addons/depends/README
+++ /dev/null
@@ -1,61 +0,0 @@
1KODI ADDON DEPENDENCIES
2=======================
3This directory contains the cmake-based buildsystem for addon dependencies. It
4looks into the "common" and the "<platform>/cmake" sub-directories and parses
5all *.txt files recursively. Each dependency must have its own <dependency>.txt
6file (either in the main sub-directory or in a separate subdirectory of the main
7subdirectory) 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>
12where
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
20Reserved filenames (for additional information on how to build a dependency)
21are:
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
28The buildsystem uses the following variables (which can be passed into it when
29executing cmake with the -D<variable-name>=<value> option) to e.g. access
30specific paths:
31 * CMAKE_BUILD_TYPE specifies the type of the build. This can be either "Debug"
32 or "Release" (default is "Release").
33 * CMAKE_TOOLCHAIN_FILE can be used to pass a toolchain file into the add-on
34 builds.
35 * CORE_SYSTEM_NAME is the name of the platform (e.g. "linux" or "android") in
36 lower-case (defaults to lowercase(CMAKE_SYSTEM_NAME)).
37 * CORE_SOURCE_DIR points to the root directory of the project (default is the
38 absolute representation of ../../.. starting from this directory).
39 * ADDON_DEPENDS_PATH points to the directory where the built dependencies
40 (their include and library file) will be installed to.
41 * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines
42 (defaults to empty).
43 * DEPENDS_TO_BUILD is a quoted, space delimited list of <dependency>s that
44 you want to build (default is "all").
45
46To trigger the cmake-based buildsystem the following command must be executed
47with <path> being the path to this directory (absolute or relative, allowing for
48in-source and out-of-source builds).
49
50 cmake <path> -G <generator>
51
52cmake supports multiple generators, see
53http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list.
54
55In case of additional options the call might look like this
56
57 cmake <path> [-G <generator>] \
58 -DCMAKE_BUILD_TYPE=Release \
59 -DCORE_SOURCE_DIR="<path-to-project-root>" \
60 -DARCH_DEFINES="-DTARGET_LINUX" \
61 -DCMAKE_INSTALL_PREFIX="<path-to-install-directory"
diff --git a/project/cmake/addons/depends/common/kodi-platform/deps.txt b/project/cmake/addons/depends/common/kodi-platform/deps.txt
deleted file mode 100644
index b953815..0000000
--- a/project/cmake/addons/depends/common/kodi-platform/deps.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1tinyxml
2p8-platform
diff --git a/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt b/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt
deleted file mode 100644
index 46ef93c..0000000
--- a/project/cmake/addons/depends/common/kodi-platform/kodi-platform.txt
+++ /dev/null
@@ -1 +0,0 @@
1kodi-platform https://github.com/xbmc/kodi-platform c8188d82678fec6b784597db69a68e74ff4986b5
diff --git a/project/cmake/addons/depends/common/p8-platform/p8-platform.txt b/project/cmake/addons/depends/common/p8-platform/p8-platform.txt
deleted file mode 100644
index 7db4e36..0000000
--- a/project/cmake/addons/depends/common/p8-platform/p8-platform.txt
+++ /dev/null
@@ -1 +0,0 @@
1p8-platform https://github.com/Pulse-Eight/platform.git 38343e0acd6a636ac46139aa666aee4a8d1f13db
diff --git a/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt b/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt
deleted file mode 100644
index ec396ee..0000000
--- a/project/cmake/addons/depends/common/tinyxml/CMakeLists.txt
+++ /dev/null
@@ -1,22 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(tinyxml)
3
4set(SOURCES src/tinystr.cpp
5 src/tinyxml.cpp
6 src/tinyxmlerror.cpp
7 src/tinyxmlparser.cpp)
8
9if(WIN32)
10 add_definitions(-DWIN32 -D_LIB)
11endif()
12add_definitions(-DTIXML_USE_STL)
13
14add_library(tinyxml ${SOURCES})
15
16include_directories(${PROJECT_SOURCE_DIR}/include)
17
18set(HEADERS ${PROJECT_SOURCE_DIR}/include/tinystr.h
19 ${PROJECT_SOURCE_DIR}/include/tinyxml.h)
20
21install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
22install(TARGETS tinyxml DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
diff --git a/project/cmake/addons/depends/common/tinyxml/tinyxml.txt b/project/cmake/addons/depends/common/tinyxml/tinyxml.txt
deleted file mode 100644
index f8e05e8..0000000
--- a/project/cmake/addons/depends/common/tinyxml/tinyxml.txt
+++ /dev/null
@@ -1 +0,0 @@
1tinyxml http://mirrors.kodi.tv/build-deps/sources/tinyxml-2.6.2_2.tar.gz
diff --git a/project/cmake/addons/depends/windows/CMakeLists.txt b/project/cmake/addons/depends/windows/CMakeLists.txt
deleted file mode 100644
index c8739c0..0000000
--- a/project/cmake/addons/depends/windows/CMakeLists.txt
+++ /dev/null
@@ -1,52 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(kodi-addons-depends-windows)
3
4list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
5
6if(NOT CMAKE_BUILD_TYPE)
7 set(CMAKE_BUILD_TYPE Release)
8endif()
9
10include(ExternalProject)
11
12if(NOT ADDON_DEPENDS_PATH)
13 message(FATAL_ERROR "ADDON_DEPENDS_PATH (${ADDON_DEPENDS_PATH}) is not a valid target directory.")
14else()
15 file(TO_CMAKE_PATH "${ADDON_DEPENDS_PATH}" ADDON_DEPENDS_PATH)
16endif()
17get_filename_component(ADDON_DEPENDS_PATH "${ADDON_DEPENDS_PATH}" ABSOLUTE)
18list(APPEND CMAKE_PREFIX_PATH ${ADDON_DEPENDS_PATH})
19
20if(NOT DEPENDS_TO_BUILD)
21 set(DEPENDS_TO_BUILD "all")
22endif()
23
24function(add_internal id url inputfile)
25 externalproject_add(${id}
26 URL ${url}
27 PREFIX build/${id}
28 CONFIGURE_COMMAND ""
29 BUILD_COMMAND ""
30 INSTALL_COMMAND ${CMAKE_COMMAND}
31 -DINPUTDIR=${PROJECT_BINARY_DIR}/build/${id}/src/${id}
32 -DINPUTFILE=${inputfile}
33 -DDESTDIR=${ADDON_DEPENDS_PATH}
34 -P ${PROJECT_SOURCE_DIR}/Install.cmake
35 )
36endfunction()
37
38file(GLOB_RECURSE download_input_files prebuilt/*.txt)
39foreach(file ${download_input_files})
40 if(NOT file MATCHES install.txt)
41 file(STRINGS ${file} def)
42 get_filename_component(dir ${file} DIRECTORY)
43 string(REPLACE " " ";" def ${def})
44 list(GET def 0 id)
45
46 list(FIND DEPENDS_TO_BUILD ${id} idx)
47 if(idx GREATER -1 OR DEPENDS_TO_BUILD STREQUAL "all")
48 list(GET def 1 url)
49 add_internal(${id} ${url} ${dir}/install.txt)
50 endif()
51 endif()
52endforeach()
diff --git a/project/cmake/addons/depends/windows/Install.cmake b/project/cmake/addons/depends/windows/Install.cmake
deleted file mode 100644
index 9a3adbb..0000000
--- a/project/cmake/addons/depends/windows/Install.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
1if(EXISTS "${INPUTFILE}")
2 # if there's an input file we use it to determine which files to copy where
3 file(STRINGS ${INPUTFILE} FILES)
4 string(REPLACE "\n" ";" FILES "${FILES}")
5 foreach(file ${FILES})
6 string(REPLACE " " ";" file "${file}")
7 list(GET file 0 dir)
8 list(GET file 1 dest)
9 list(LENGTH file deflength)
10 if(deflength GREATER 2)
11 list(GET file 2 copy)
12 endif()
13 file(GLOB files ${INPUTDIR}/${dir})
14 foreach(instfile ${files})
15 file(COPY ${instfile} DESTINATION ${DESTDIR}/${dest})
16 if(copy)
17 file(COPY ${instfile} DESTINATION ${DESTDIR}/${copy})
18 endif()
19 endforeach()
20 endforeach()
21else()
22 # otherwise we assume that the content of the extracted archive is already well-formed and can just be copied
23 file(COPY ${INPUTDIR}/${dir} DESTINATION ${DESTDIR})
24endif() \ No newline at end of file
diff --git a/project/cmake/addons/depends/windows/README b/project/cmake/addons/depends/windows/README
deleted file mode 100644
index 67dc594..0000000
--- a/project/cmake/addons/depends/windows/README
+++ /dev/null
@@ -1,19 +0,0 @@
1KODI WIN32 ADDON DEPENDENCIES
2=============================
3This directory contains the cmake-based buildsystem for dependencies (currently
4only prebuilt) used by one or multiple addons. The buildsystem looks into the
5"prebuilt" sub-directory, downloads all the specified dependencies, extracts
6them and places them into the "depends" sub-directory.
7
8To trigger the cmake-based buildsystem the following command must be executed
9with <path> being the path to this directory (absolute or relative, allowing for
10in-source and out-of-source builds).
11
12 cmake <path> [-G <generator>]
13
14cmake supports multiple generators, see
15http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list.
16For win32 builds one of the "Visual Studio XX" or the "NMake Makefiles"
17generators is preferred. For the "NMake Makefiles" generator to work the above
18command must be called from an environment prepared for VC++ builds (see
19http://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx).
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt
deleted file mode 100644
index 2c2c4b8..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(mingw)
3
4function(generate_mingw32_wrapper cmd)
5 set(CMD ${cmd})
6 configure_file(${PROJECT_SOURCE_DIR}/mingw32-cmd.bat.in ${MINGW_PATH}/bin/${CMD}.bat @ONLY)
7endfunction()
8
9get_filename_component(CORE_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../../../.. REALPATH)
10
11set(MSYS_PATH "${CORE_SOURCE_DIR}/project/BuildDependencies/msys64")
12set(MINGW_PATH "${MSYS_PATH}/mingw32")
13
14# configure the MinGW toolchain file
15configure_file(${PROJECT_SOURCE_DIR}/Toolchain_mingw32.cmake.in ${CMAKE_INSTALL_PREFIX}/Toolchain_mingw32.cmake @ONLY)
16
17# configure MinGWConfig.cmake
18configure_file(${PROJECT_SOURCE_DIR}/MinGWConfig.cmake.in ${CMAKE_INSTALL_PREFIX}/MinGWConfig.cmake)
19
20# TODO: MinGW GCC 5.3.0-1 comes without cc.exe, Remove this once package is bumped to 5.3.0-p2
21# See https://github.com/Alexpux/MINGW-packages/pull/1034
22if(NOT EXISTS ${MINGW_PATH}/bin/cc.exe)
23 execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${MINGW_PATH}/bin/gcc.exe ${MINGW_PATH}/bin/cc.exe)
24endif()
25
26# configure the MinGW wrapper batch scripts
27generate_mingw32_wrapper("make")
28generate_mingw32_wrapper("gcc")
29generate_mingw32_wrapper("cc")
30generate_mingw32_wrapper("g++")
31generate_mingw32_wrapper("ar")
32generate_mingw32_wrapper("ld")
33generate_mingw32_wrapper("windres")
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in b/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in
deleted file mode 100644
index 2d6baa7..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in
+++ /dev/null
@@ -1,3 +0,0 @@
1set(MINGW_INCLUDE_DIRS @MINGW_PATH@/include)
2set(MINGW_MAKE @MINGW_PATH@/bin/make.bat -j$ENV{NUMBER_OF_PROCESSORS})
3set(MINGW_FOUND 1)
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in b/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in
deleted file mode 100644
index 01d281d..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in
+++ /dev/null
@@ -1,17 +0,0 @@
1set(CMAKE_SYSTEM_VERSION 1)
2set(CMAKE_SYSTEM_NAME Windows)
3
4set(CMAKE_FIND_ROOT_PATH @CMAKE_FIND_ROOT_PATH@ @CMAKE_INSTALL_PREFIX@ @MSYS_PATH@ @MINGW_PATH@)
5
6# specify the cross compiler
7set(CMAKE_C_COMPILER @MINGW_PATH@/bin/gcc.bat)
8set(CMAKE_CXX_COMPILER @MINGW_PATH@/bin/g++.bat)
9set(CMAKE_AR @MINGW_PATH@/bin/ar.bat CACHE FILEPATH "Archiver")
10set(CMAKE_LINKER @MINGW_PATH@/bin/ld.bat CACHE FILEPATH "Linker")
11SET(CMAKE_RC_COMPILER @MINGW_PATH@/bin/windres.bat)
12
13# search for programs in the build host directories
14set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
15# for libraries and headers in the target directories
16set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
17set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt b/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt
deleted file mode 100644
index 90aa6ae..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/mingw.txt
+++ /dev/null
@@ -1 +0,0 @@
1mingw
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in b/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in
deleted file mode 100644
index 44a0ea2..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in
+++ /dev/null
@@ -1,6 +0,0 @@
1@ECHO OFF
2SETLOCAL
3
4SET PATH=@MINGW_PATH@/bin;@MSYS_PATH@/usr/bin;%PATH%
5@CMD@.exe %*
6
diff --git a/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt b/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt
deleted file mode 100644
index e69de29..0000000
--- a/project/cmake/addons/depends/windows/cmake/mingw/noinstall.txt
+++ /dev/null
diff --git a/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt b/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt
deleted file mode 100644
index 1c0536e..0000000
--- a/project/cmake/addons/depends/windows/cmake/msys/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
1cmake_minimum_required(VERSION 3.1)
2project(msys LANGUAGES NONE)
3
4# This is an empty dummy dependency because a lot of game addons depend on it.
5# After they got fixed, this can be removed.
diff --git a/project/cmake/addons/depends/windows/cmake/msys/msys.txt b/project/cmake/addons/depends/windows/cmake/msys/msys.txt
deleted file mode 100644
index 00de9c2..0000000
--- a/project/cmake/addons/depends/windows/cmake/msys/msys.txt
+++ /dev/null
@@ -1 +0,0 @@
1msys
diff --git a/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt b/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt
deleted file mode 100644
index e69de29..0000000
--- a/project/cmake/addons/depends/windows/cmake/msys/noinstall.txt
+++ /dev/null
diff --git a/project/cmake/addons/depends/windows/prebuilt/README b/project/cmake/addons/depends/windows/prebuilt/README
deleted file mode 100644
index a0c70d6..0000000
--- a/project/cmake/addons/depends/windows/prebuilt/README
+++ /dev/null
@@ -1,21 +0,0 @@
1KODI WIN32 PREBUILT ADDON DEPENDENCIES
2======================================
3This directory contains a file or sub-directory for every prebuilt dependency
4used by one of the addons being built. There are two different modes supported.
5Both include a file named <library-id>.txt which must follow the defined format
6 <library-id> <download-url>
7
8If the archive, which the <download-url> points at, contains
9 * only the necessary files and in the proper directory structure (i.e. an
10 "include" and a "lib" directory) then the file must be put into this
11 directory and nothing else is needed.
12 * unnecessary files and/or does not follow the defined directory structure
13 (i.e. an "include" and a "lib" directory) then the file must be put into a
14 sub-directory named <library-id>. Furthermore an additional file called
15 "install.txt" must be placed in that sub-directory. install.txt contains a
16 line for every path/directory/file with a destination where it must be copied
17 to. It must follow the defined format
18 <source> <destination> [<copy-destination>]
19 where <source> must be an existing file, directory or a path containing
20 wildcards, <destination> and the optional <copy-destination> must be existing
21 directories.
diff --git a/project/cmake/cpack/CPackConfigDEB.cmake b/project/cmake/cpack/CPackConfigDEB.cmake
deleted file mode 100644
index cb8e59e..0000000
--- a/project/cmake/cpack/CPackConfigDEB.cmake
+++ /dev/null
@@ -1,352 +0,0 @@
1# include Macros.cmake to automate generation of time/date stamps, maintainer, etc.
2include(${PROJECT_SOURCE_DIR}/scripts/common/Macros.cmake)
3
4# find stuff we need
5find_program(LSB_RELEASE_CMD lsb_release)
6find_program(DPKG_CMD dpkg)
7find_package(Git)
8find_program(GZIP_CMD gzip)
9
10# set packaging dir
11if(NOT CPACK_PACKAGE_DIRECTORY)
12 set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/packages)
13endif()
14
15# force CPack generated DEBs to use the same path as CMAKE_INSTALL_PREFIX
16set(CPACK_SET_DESTDIR true)
17
18# set architecture
19if(NOT CPACK_SYSTEM_NAME)
20 set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_PROCESSOR})
21 # sanity check
22 if(CPACK_SYSTEM_NAME STREQUAL x86_64)
23 set(CPACK_SYSTEM_NAME amd64)
24 endif()
25endif()
26
27# set packaging by components
28set(CPACK_DEB_COMPONENT_INSTALL ON)
29
30# enforce Debian policy permission rules
31set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION ON)
32
33# packaging by components doesn't fully work with CMake/CPack <3.6.0
34# CPACK_DEBIAN_<COMPONENT>_FILE_NAME is a 3.6.0 addition
35# warn if detected version is lower
36if(CMAKE_VERSION VERSION_LESS 3.6)
37 message(WARNING "DEB Generator: CMake/CPack 3.6 or higher is needed to produce correctly named packages.")
38endif()
39
40# distro codename
41if(NOT DISTRO_CODENAME)
42 if(NOT LSB_RELEASE_CMD)
43 message(WARNING "DEB Generator: Can't find lsb_release in your path. Setting DISTRO_CODENAME to unknown.")
44 set(DISTRO_CODENAME unknown)
45 else()
46 execute_process(COMMAND ${LSB_RELEASE_CMD} -cs
47 OUTPUT_VARIABLE DISTRO_CODENAME
48 OUTPUT_STRIP_TRAILING_WHITESPACE)
49 endif()
50endif()
51
52# package version
53if(DEBIAN_PACKAGE_VERSION)
54 set(DISTRO_CODENAME ${DEBIAN_PACKAGE_VERSION}${DISTRO_CODENAME})
55else()
56 set(DISTRO_CODENAME 0${DISTRO_CODENAME})
57endif()
58
59# package revision
60if(DEBIAN_PACKAGE_REVISION)
61 set(DISTRO_CODENAME ${DISTRO_CODENAME}${DEBIAN_PACKAGE_REVISION})
62endif()
63
64# package type
65if(DEBIAN_PACKAGE_TYPE STREQUAL stable)
66 set(RELEASE_IDENTIFIER final)
67elseif(DEBIAN_PACKAGE_TYPE STREQUAL unstable)
68 set(RELEASE_IDENTIFIER ${APP_VERSION_TAG_LC})
69else()
70 core_find_git_rev(RELEASE_IDENTIFIER)
71endif()
72
73# package name
74string(TIMESTAMP PACKAGE_TIMESTAMP "%Y%m%d.%H%M" UTC)
75set(PACKAGE_NAME_VERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}~git${PACKAGE_TIMESTAMP}-${RELEASE_IDENTIFIER}-${DISTRO_CODENAME})
76unset(RELEASE_IDENTIFIER)
77
78# package version
79if(DEBIAN_PACKAGE_EPOCH)
80 set(CPACK_DEBIAN_PACKAGE_VERSION ${DEBIAN_PACKAGE_EPOCH}:${PACKAGE_NAME_VERSION})
81else()
82 set(CPACK_DEBIAN_PACKAGE_VERSION 2:${PACKAGE_NAME_VERSION})
83endif()
84
85# architecture
86if(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
87 if(NOT DPKG_CMD)
88 message(WARNING "DEB Generator: Can't find dpkg in your path. Setting CPACK_DEBIAN_PACKAGE_ARCHITECTURE to i386.")
89 set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386)
90 endif()
91 execute_process(COMMAND "${DPKG_CMD}" --print-architecture
92 OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
93 OUTPUT_STRIP_TRAILING_WHITESPACE)
94endif()
95
96# package maintainer
97if(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER)
98 userstamp()
99 set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${PACKAGE_MAINTAINER})
100 unset(PACKAGE_MAINTAINER)
101endif()
102
103# package description common to all packages
104if(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION)
105 file(STRINGS ${PROJECT_SOURCE_DIR}/cpack/deb/package-description.txt DESC_LINES)
106 foreach(LINE IN LISTS DESC_LINES)
107 set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_PACKAGE_DESCRIPTION} ${LINE}\n")
108 endforeach()
109endif()
110
111# package homepage
112if(NOT CPACK_DEBIAN_PACKAGE_HOMEPAGE)
113 set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${APP_WEBSITE})
114endif()
115
116# generate a Debian compliant changelog
117set(CHANGELOG_HEADER "${APP_NAME_LC} (${CPACK_DEBIAN_PACKAGE_VERSION}) ${DISTRO_CODENAME}\; urgency=high")
118rfc2822stamp()
119# two spaces between maintainer and timestamp is NOT a mistake
120set(CHANGELOG_FOOTER " -- ${CPACK_DEBIAN_PACKAGE_MAINTAINER} ${RFC2822_TIMESTAMP}")
121
122if(GIT_FOUND AND GZIP_CMD AND EXISTS ${CORE_SOURCE_DIR}/.git)
123 execute_process(COMMAND ${GIT_EXECUTABLE} log --no-merges --pretty=format:"%n [%an]%n * %s" --since="last month"
124 OUTPUT_VARIABLE CHANGELOG
125 WORKING_DIRECTORY ${CORE_SOURCE_DIR}
126 OUTPUT_STRIP_TRAILING_WHITESPACE)
127 string(REPLACE "\"" "" CHANGELOG ${CHANGELOG})
128 file(WRITE ${CPACK_PACKAGE_DIRECTORY}/deb/changelog.Debian ${CHANGELOG_HEADER}\n${CHANGELOG}\n\n${CHANGELOG_FOOTER})
129 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/changelog.Debian)
130 unset(CHANGELOG_HEADER)
131 unset(CHANGELOG_FOOTER)
132 unset(RFC2822_TIMESTAMP)
133else()
134 message(WARNING "DEB Generator: Can't find git and/or gzip in your path. DEB packages will be missing changelog.Debian.gz.")
135endif()
136
137# Generate NEWS.Debian
138configure_file(${PROJECT_SOURCE_DIR}/cpack/deb/NEWS.Debian
139 ${CPACK_PACKAGE_DIRECTORY}/deb/NEWS.Debian @ONLY)
140if(GZIP_CMD)
141 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/NEWS.Debian)
142else()
143 message(WARNING "DEB Generator: Can't find gzip in your path. DEB packages will be missing NEWS.Debian.")
144endif()
145
146# Generate man pages
147configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi.bin.1
148 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.1 COPYONLY)
149configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi.bin.1
150 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.bin.1 COPYONLY)
151configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi-standalone.1
152 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-standalone.1 COPYONLY)
153if(ENABLE_EVENTCLIENTS)
154 configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi-ps3remote.1
155 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-ps3remote.1 COPYONLY)
156 configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi-send.1
157 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-send.1 COPYONLY)
158 configure_file(${CORE_SOURCE_DIR}/docs/manpages/kodi-wiiremote.1
159 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-wiiremote.1 COPYONLY)
160endif()
161
162if(GZIP_CMD)
163 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.1)
164 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.bin.1)
165 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-standalone.1)
166 if(ENABLE_EVENTCLIENTS)
167 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-ps3remote.1)
168 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-send.1)
169 execute_process(COMMAND ${GZIP_CMD} -f -9 -n ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-wiiremote.1)
170 endif()
171else()
172 message(WARNING "DEB Generator: Can't find gzip in your path. Several DEB packages will be missing man pages.")
173endif()
174
175install(FILES ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.1.gz
176 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi.bin.1.gz
177 ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-standalone.1.gz
178 DESTINATION share/man/man1
179 COMPONENT kodi)
180if(ENABLE_EVENTCLIENTS)
181install(FILES ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-ps3remote.1.gz
182 DESTINATION share/man/man1
183 COMPONENT kodi-eventclients-ps3)
184install(FILES ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-send.1.gz
185 DESTINATION share/man/man1
186 COMPONENT kodi-eventclients-xbmc-send)
187install(FILES ${CPACK_PACKAGE_DIRECTORY}/deb/kodi-wiiremote.1.gz
188 DESTINATION share/man/man1
189 COMPONENT kodi-eventclients-wiiremote)
190endif()
191
192# configure package metadata files
193file(GLOB DEBIAN_PACKAGE_FILES ${PROJECT_SOURCE_DIR}/cpack/deb/packages/*.txt.in)
194foreach(file ${DEBIAN_PACKAGE_FILES})
195 get_filename_component(package ${file} NAME_WE)
196 # filter eventclients so we don't have to support two more deps
197 # (libbluetooth-dev and libcwiid-dev) just because of wii-remote
198 string(SUBSTRING ${package} 0 17 PACKAGE_FILTER)
199 if(NOT ENABLE_EVENTCLIENTS AND PACKAGE_FILTER STREQUAL kodi-eventclients)
200 message(STATUS "DEB Generator: ${package} matches ${PACKAGE_FILTER}, skipping.")
201 # do nothing
202 else()
203 configure_file(${file}
204 ${CPACK_PACKAGE_DIRECTORY}/deb/${package}.txt @ONLY)
205 list(APPEND DEBIAN_PACKAGES ${package})
206 endif()
207endforeach()
208unset(DEBIAN_PACKAGE_FILES)
209
210# generate packages
211include(CMakeParseArguments)
212foreach(file ${DEBIAN_PACKAGES})
213 core_file_read_filtered(DEBIAN_METADATA ${CPACK_PACKAGE_DIRECTORY}/deb/${file}.txt)
214 string(REPLACE " " ";" DEBIAN_METADATA "${DEBIAN_METADATA}")
215 cmake_parse_arguments(DEB
216 ""
217 "PACKAGE_NAME;PACKAGE_ARCHITECTURE;PACKAGE_SECTION;PACKAGE_PRIORITY;PACKAGE_SHLIBDEPS"
218 "PACKAGE_DEPENDS;PACKAGE_RECOMMENDS;PACKAGE_SUGGESTS;PACKAGE_BREAKS;PACKAGE_REPLACES;PACKAGE_PROVIDES;PACKAGE_DESCRIPTION_HEADER;PACKAGE_DESCRIPTION_FOOTER"
219 ${DEBIAN_METADATA})
220 string(REPLACE ";" " " DEB_PACKAGE_DEPENDS "${DEB_PACKAGE_DEPENDS}")
221 string(REPLACE ";" " " DEB_PACKAGE_RECOMMENDS "${DEB_PACKAGE_RECOMMENDS}")
222 string(REPLACE ";" " " DEB_PACKAGE_SUGGESTS "${DEB_PACKAGE_SUGGESTS}")
223 string(REPLACE ";" " " DEB_PACKAGE_BREAKS "${DEB_PACKAGE_BREAKS}")
224 string(REPLACE ";" " " DEB_PACKAGE_REPLACES "${DEB_PACKAGE_REPLACES}")
225 string(REPLACE ";" " " DEB_PACKAGE_PROVIDES "${DEB_PACKAGE_PROVIDES}")
226 string(REPLACE ";" " " DEB_PACKAGE_DESCRIPTION_HEADER "${DEB_PACKAGE_DESCRIPTION_HEADER}")
227 string(REPLACE ";" " " DEB_PACKAGE_DESCRIPTION_FOOTER "${DEB_PACKAGE_DESCRIPTION_FOOTER}")
228
229 string(TOUPPER ${file} COMPONENT)
230
231 if(NOT DEB_PACKAGE_ARCHITECTURE)
232 message(STATUS "DEB Generator: Mandatory variable CPACK_DEBIAN_${COMPONENT}_PACKAGE_ARCHITECTURE is empty. Setting to ${CPACK_SYSTEM_NAME}.")
233 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_ARCHITECTURE ${CPACK_SYSTEM_NAME})
234 else()
235 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_ARCHITECTURE ${DEB_PACKAGE_ARCHITECTURE})
236 endif()
237
238 if(DEB_PACKAGE_NAME)
239 if(DEB_PACKAGE_ARCHITECTURE)
240 set(CPACK_DEBIAN_${COMPONENT}_FILE_NAME ${DEB_PACKAGE_NAME}_${PACKAGE_NAME_VERSION}_${DEB_PACKAGE_ARCHITECTURE}.deb)
241 else()
242 set(CPACK_DEBIAN_${COMPONENT}_FILE_NAME ${DEB_PACKAGE_NAME}_${PACKAGE_NAME_VERSION}_${CPACK_SYSTEM_NAME}.deb)
243 endif()
244 else()
245 message(FATAL_ERROR "DEB Generator: Mandatory variable CPACK_DEBIAN_${COMPONENT}_FILE_NAME is not set.")
246 endif()
247
248 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_SOURCE ${APP_NAME_LC})
249
250 if(DEB_PACKAGE_NAME)
251 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_NAME ${DEB_PACKAGE_NAME})
252 else()
253 message(FATAL_ERROR "DEB Generator: Mandatory variable CPACK_DEBIAN_${COMPONENT}_PACKAGE_NAME is not set.")
254 endif()
255
256 if(DEB_PACKAGE_SECTION)
257 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_SECTION ${DEB_PACKAGE_SECTION})
258 else()
259 message(FATAL_ERROR "DEB Generator: Mandatory variable CPACK_DEBIAN_${COMPONENT}_PACKAGE_SECTION is not set.")
260 endif()
261
262 if(DEB_PACKAGE_PRIORITY)
263 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_PRIORITY ${DEB_PACKAGE_PRIORITY})
264 else()
265 message(FATAL_ERROR "DEB Generator: Mandatory variable CPACK_DEBIAN_${COMPONENT}_PACKAGE_PRIORITY is not set.")
266 endif()
267
268 if(DEB_PACKAGE_SHLIBDEPS)
269 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_SHLIBDEPS ON)
270 else()
271 if(DEB_PACKAGE_DEPENDS)
272 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_DEPENDS "${DEB_PACKAGE_DEPENDS}")
273 endif()
274 endif()
275
276 if(DEB_PACKAGE_RECOMMENDS)
277 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_RECOMMENDS "${DEB_PACKAGE_RECOMMENDS}")
278 endif()
279
280 if(DEB_PACKAGE_SUGGESTS)
281 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_SUGGESTS "${DEB_PACKAGE_SUGGESTS}")
282 endif()
283
284 if(DEB_PACKAGE_BREAKS)
285 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_BREAKS "${DEB_PACKAGE_BREAKS}")
286 endif()
287
288 if(DEB_PACKAGE_REPLACES)
289 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_REPLACES "${DEB_PACKAGE_REPLACES}")
290 endif()
291
292 if(DEB_PACKAGE_PROVIDES)
293 set(CPACK_DEBIAN_${COMPONENT}_PACKAGE_PROVIDES "${DEB_PACKAGE_PROVIDES}")
294 endif()
295
296 if(NOT DEB_PACKAGE_DESCRIPTION_HEADER OR NOT DEB_PACKAGE_DESCRIPTION_FOOTER)
297 message(FATAL_ERROR "DEB Generator: Mandatory variable CPACK_COMPONENT_${COMPONENT}_DESCRIPTION is not set.")
298 else()
299 set(CPACK_COMPONENT_${COMPONENT}_DESCRIPTION "\
300${DEB_PACKAGE_DESCRIPTION_HEADER}\n\
301${CPACK_DEBIAN_PACKAGE_DESCRIPTION} \
302${DEB_PACKAGE_DESCRIPTION_FOOTER}")
303 endif()
304
305 install(FILES ${CPACK_PACKAGE_DIRECTORY}/deb/changelog.Debian.gz
306 ${CPACK_PACKAGE_DIRECTORY}/deb/NEWS.Debian.gz
307 ${PROJECT_SOURCE_DIR}/cpack/deb/copyright
308 DESTINATION share/doc/${file}
309 COMPONENT ${file})
310
311 # kodi package exclusive files
312 if(CPACK_DEBIAN_KODI_PACKAGE_NAME)
313 set(CPACK_DEBIAN_KODI_PACKAGE_CONTROL_EXTRA
314 "${PROJECT_SOURCE_DIR}/cpack/deb/postinst;${PROJECT_SOURCE_DIR}/cpack/deb/postrm")
315 install(FILES ${PROJECT_SOURCE_DIR}/cpack/deb/lintian/overrides/kodi
316 DESTINATION share/lintian/overrides
317 COMPONENT kodi)
318 install(FILES ${PROJECT_SOURCE_DIR}/cpack/deb/menu/kodi
319 DESTINATION share/menu
320 COMPONENT kodi)
321 endif()
322endforeach()
323unset(DEBIAN_PACKAGES)
324
325### source package generation specific variables
326# source generator
327set(CPACK_SOURCE_GENERATOR TGZ)
328
329# source package name
330set(CPACK_SOURCE_PACKAGE_FILE_NAME ${APP_NAME_LC}_${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}~git${PACKAGE_TIMESTAMP}-${GIT_HASH}.orig)
331
332# source dir
333set(CMAKE_SOURCE_DIR ${CORE_SOURCE_DIR})
334
335# ignore files for source package
336set(CPACK_SOURCE_IGNORE_FILES
337 "/build/"
338 "/debian/"
339 "/.git/"
340 ".gitignore"
341 "yml$"
342 "~$")
343
344# unset variables
345unset(PACKAGE_TIMESTAMP)
346unset(DISTRO_CODENAME)
347
348# reference docs
349# https://cmake.org/cmake/help/latest/module/CPack.html
350# https://cmake.org/cmake/help/latest/module/CPackDeb.html
351# https://cmake.org/cmake/help/latest/module/CPackComponent.html
352include(CPack)
diff --git a/project/cmake/cpack/deb/NEWS.Debian b/project/cmake/cpack/deb/NEWS.Debian
deleted file mode 100644
index 034774b..0000000
--- a/project/cmake/cpack/deb/NEWS.Debian
+++ /dev/null
@@ -1,24 +0,0 @@
1@CPACK_PACKAGE_NAME@ (@CPACK_DEBIAN_PACKAGE_VERSION@) @DISTRO_CODENAME@; urgency=high
2 * Kodi Krypton (v17.0) will have an awesome new default skin, Estuary.
3 However the vast improvements are deep in the bowels of Kodi core code.
4 .
5 Since the beginning of XBMC back in the days while it was running on
6 the XBOX there was something like DVDPlayer. As the name probably
7 implies it was used to playback DVD discs/files. During the years this
8 DVDPlayer was improved and patched up to stay within modern day
9 standards of video playback expectancy. However it became clear that
10 for the future a major overhaul and rewrite was needed to keep up and
11 be future proof. As such the developers who did the AudioEngine in v12
12 picked up this job and have now transformed it into VideoPlayer.
13 .
14 Together with some platform developers they ripped out the old
15 DVDPlayer code, chopped it into pieces, put it in the blender, picked
16 the needed pieces and put it back in without breaking the rest of Kodi.
17 This certainly wasn’t an easy job as DVDPlayer was like the bottom
18 block of a Jenga tower that needed to be replaced while still being
19 entangled throughout the whole tower. It had it’s tentacles in parts
20 of the code where it shouldn’t have been in the first place. Over a
21 year ago work started on getting this untangled and made ready to
22 be replaced by the new implementation, VideoPlayer.
23
24 -- h.udo <hudokkow@gmail.com> Tue, 05 Jul 2016 13:34:11 +0000
diff --git a/project/cmake/cpack/deb/copyright b/project/cmake/cpack/deb/copyright
deleted file mode 100644
index a79cf54..0000000
--- a/project/cmake/cpack/deb/copyright
+++ /dev/null
@@ -1,3126 +0,0 @@
1Kodi is downloaded from http://kodi.tv/.
2Orig tarballs are generated from the script located at
3https://github.com/Kodi/Kodi/tree/master/project/cmake. The
4orig tarball is generated using the sources in https://github.com/Kodi/Kodi.
5
6Main Contact: "Team-Kodi" <team at kodi dot tv>
7
8Upstream Authors:
9
10 Andreas Setterlind [Gamester17]
11 Staffan Lindberg [pike]
12 Arne Morten Kvarving [cptspiff]
13 Anoop Menon [d4rk]
14 Joakim Plate [elupus]
15 Jonathan Marshall [jmarshall]
16 Tobias Arrskog [Topfs2]
17 Roee Vulkan [vulkanr]
18 Winfried Soltys [WiSo]
19 Yuval Tal [yuvalt]
20 John W Vanderbeck [agathorn]
21 Trent Nelson [AlTheKiller]
22 Andres Mejia [ceros]
23 Gunnar Norin [blittan]
24 Dean Ross Parry [C-Quel]
25 Sylvain Rebaud [c0diq]
26 Martin van Beurden [chadoe]
27 Scott Davilla [davilla]
28 Stephan Diederich [MaestroDD]
29 Benjamin Bertrand [Beenje]
30 Benjamin Dickgiesser [DonJ]
31 [GeminiServer]
32 Christian Granqvist [Granqvist]
33 Dave [kraqh3d]
34 Luigi Capriotti [l.capriotti]
35 Sean [malloc]
36 Kyle Hill [monkeyman]
37 [MrC]
38 [nad]
39 [nuka1195]
40 Vincent Blackwell-Price [Voinage]
41 Robert Parris [rwparris2]
42 Sigurdur H. Olafsson [sho]
43 Alasdair Campbell [Alcoheca]
44 Georgy Yunaev [oldnemesis]
45 Chris [phi2039]
46 Bob [bobo1on1]
47 David Allonby [motd2k]
48 Robert Rudd [Rudd]
49 Eric G [Tslayer]
50 Amund Scharning [tut-ankh-amon]
51 Matthias Kortstiege [VDRfan]
52 Daniel Mehrwald [AreaScout]
53 Oumar Aziz Outtara [wattazoum]
54 Chris Haley [CHI3f]
55 [Jezz_X]
56 [Smokehead]
57 Darren [Bizzeh]
58 Marc [Bobbin007]
59 Richard [Butcher]
60 Jan-Willem [Darkie]
61 Chris Branson [forza]
62 [Kreet]
63 [Ysbox]
64 Erwin Beckers [Frodo]
65 Albert Griscti-Soler [RUNTiME]
66 Phil Burr [d7o3g4q] (a.k.a. Duo Egaq)
67 Mathias Mahling [chokemaniac]
68
69Credits:
70
71Kodi - Cross-platform Media Center
72<http://Kodi.org/>
73
74 Copyright © 2005-2016 Team Kodi http://kodi.tv
75
76 This program is free software; you can redistribute it and/or modify
77 it under the terms of the GNU General Public License as published by
78 the Free Software Foundation; either version 2 of the License, or
79 (at your option) any later version.
80
81 This program is distributed in the hope that it will be useful,
82 but WITHOUT ANY WARRANTY; without even the implied warranty of
83 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
84 GNU General Public License for more details.
85
86 You should have received a copy of the GNU General Public License
87 along with this program. If not, see <http://www.gnu.org/licenses/>.
88
89Generic classes for raster images
90
91 Copyright © 2000, Juan Soulie <jsoulie@cplusplus.com>
92
93 Permission to use, copy, modify, distribute and sell this software or any
94 part thereof and/or its documentation for any purpose is granted without fee
95 provided that the above copyright notice and this permission notice appear
96 in all copies.
97
98 This software is provided "as is" without express or implied warranty of
99 any kind. The author shall have no liability with respect to the
100 infringement of copyrights or patents that any modification to the content
101 of this file or this file itself may incur.
102
103The FreeType Project
104<http://www.freetype.org/>
105
106 Copyright © 1996-2006, by David Turner, Robert Wilhelm, and Werner Lemberg
107
108 This file is part of the FreeType project, and may only be used,
109 modified, and distributed under the terms of the FreeType project
110 license, LICENSE.TXT. By continuing to use, modify, or distribute
111 this file you indicate that you have read the license and
112 understand and accept it fully.
113
114 A full copy of the FreeType License (FTL) is provided under section
115 "Licenses".
116
117TinyXML - simple, small, C++ XML Parser
118<http://www.grinninglizard.com/tinyxml/>
119
120 Copyright © 2000-2006 Lee Thomason (www.grinninglizard.com)
121 Copyright © 2005 Tyge Lovset
122
123 This software is provided 'as-is', without any express or implied
124 warranty. In no event will the authors be held liable for any damages
125 arising from the use of this software.
126
127 Permission is granted to anyone to use this software for any purpose,
128 including commercial applications, and to alter it and redistribute it
129 freely, subject to the following restrictions:
130
131 1. The origin of this software must not be misrepresented; you must not
132 claim that you wrote the original software. If you use this software
133 in a product, an acknowledgment in the product documentation would be
134 appreciated but is not required.
135 2. Altered source versions must be plainly marked as such, and must not be
136 misrepresented as being the original software.
137 3. This notice may not be removed or altered from any source distribution.
138
139CString Class in guilib/StdString.h
140
141 Copyright © 2002 Joseph M. O'Leary
142
143 This code is 100% free. Use it anywhere you want. Rewrite it, restructure
144 it, whatever. If you can write software that makes money off of it, good for
145 you. I kinda like capitalism. Please don't blame me if it causes your $30
146 billion dollar satellite explode in orbit. If you redistribute it in any
147 form, I'd appreciate it if you would leave this notice here.
148
149Mach-O library symbol mapping Ruby Scripts
150
151 Copyright © 2008 Elan Feingold (elan at bluemandrill dot com)
152
153 This program is free software; you can redistribute it and/or modify
154 it under the terms of the GNU General Public License as published by
155 the Free Software Foundation; either version 2 of the License, or
156 (at your option) any later version.
157
158 This program is distributed in the hope that it will be useful,
159 but WITHOUT ANY WARRANTY; without even the implied warranty of
160 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
161 GNU General Public License for more details.
162
163 You should have received a copy of the GNU General Public License
164 along with this program. If not, see <http://www.gnu.org/licenses/>.
165
166Wiimote C Library
167<http://www.wiiuse.net/>
168
169 Copyright © Michael Laforest < para >
170 < thepara (--AT--) g m a i l [--DOT--] com >
171
172 This program is free software: you can redistribute it and/or modify
173 it under the terms of the GNU General Public License as published by
174 the Free Software Foundation, either version 3 of the License, or
175 (at your option) any later version.
176
177 This program is distributed in the hope that it will be useful,
178 but WITHOUT ANY WARRANTY; without even the implied warranty of
179 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
180 GNU General Public License for more details.
181
182 You should have received a copy of the GNU General Public License
183 along with this program. If not, see <http://www.gnu.org/licenses/>.
184
185Wiiuse Class for Kodi
186
187 Copyright © 2009 by Cory Fields
188
189 This program is free software: you can redistribute it and/or modify
190 it under the terms of the GNU General Public License as published by
191 the Free Software Foundation, either version 3 of the License, or
192 (at your option) any later version.
193
194 This program is distributed in the hope that it will be useful,
195 but WITHOUT ANY WARRANTY; without even the implied warranty of
196 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
197 GNU General Public License for more details.
198
199 You should have received a copy of the GNU General Public License
200 along with this program. If not, see <http://www.gnu.org/licenses/>.
201
202Apple Remote Control Wrapper Classes
203
204 Copyright © 2006 Martin Kahr martinkahr.com. All rights reserved.
205
206 Permission is hereby granted, free of charge, to any person obtaining a
207 copy of this software and associated documentation files (the "Software"),
208 to deal in the Software without restriction, including without limitation
209 the rights to use, copy, modify, merge, publish, distribute, sublicense,
210 and/or sell copies of the Software, and to permit persons to whom the
211 Software is furnished to do so, subject to the following conditions:
212
213 The above copyright notice and this permission notice shall be included
214 in all copies or substantial portions of the Software.
215
216 THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
217 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
218 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
219 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
220 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
221 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
222 IN THE SOFTWARE.
223
224Class to Display events received from the Apple Infrared Remote.
225
226 Copyright © 2006-2008 Amit Singh. All Rights Reserved.
227
228 Redistribution and use in source and binary forms, with or without
229 modification, are permitted provided that the following conditions
230 are met:
231 1. Redistributions of source code must retain the above copyright
232 notice, this list of conditions and the following disclaimer.
233 2. Redistributions in binary form must reproduce the above copyright
234 notice, this list of conditions and the following disclaimer in the
235 documentation and/or other materials provided with the distribution.
236
237 THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
238 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
239 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
240 ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
241 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
242 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
243 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
244 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
245 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
246 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
247 SUCH DAMAGE.
248
249ISO C9x compliant stdint.h and inttypes.h for Microsoft Visual Studio
250
251 Copyright © 2006 Alexander Chemeris
252
253 Redistribution and use in source and binary forms, with or without
254 modification, are permitted provided that the following conditions are met:
255
256 1. Redistributions of source code must retain the above copyright notice,
257 this list of conditions and the following disclaimer.
258
259 2. Redistributions in binary form must reproduce the above copyright
260 notice, this list of conditions and the following disclaimer in the
261 documentation and/or other materials provided with the distribution.
262
263 3. The name of the author may be used to endorse or promote products
264 derived from this software without specific prior written permission.
265
266 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
267 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
268 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
269 EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
270 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
271 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
272 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
273 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
274 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
275 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
276
277cURL - library and command line tool for transferring files with URL syntax
278<http://curl.haxx.se/>
279
280 Copyright © 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
281
282 Permission to use, copy, modify, and distribute this software for any
283 purpose with or without fee is hereby granted, provided that the above
284 copyright notice and this permission notice appear in all copies.
285
286 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
287 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
288 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
289 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
290 DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
291 OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
292 USE OR OTHER DEALINGS IN THE SOFTWARE.
293
294 Except as contained in this notice, the name of a copyright holder shall not
295 be used in advertising or otherwise to promote the sale, use or other
296 dealings in this Software without prior written authorization of the
297 copyright holder.
298
299RegExp.h
300
301 Copyright © 1986, 1993, 1995 by University of Toronto.
302
303 Permission is granted to anyone to use this software for any
304 purpose on any computer system, and to redistribute it in any way,
305 subject to the following restrictions:
306
307 1. The author is not responsible for the consequences of use of
308 this software, no matter how awful, even if they arise
309 from defects in it.
310
311 2. The origin of this software must not be misrepresented, either
312 by explicit claim or by omission.
313
314 3. Altered versions must be plainly marked as such, and must not
315 be misrepresented (by explicit claim or omission) as being
316 the original software.
317
318 4. This notice must not be removed or altered.
319
320GNU gettext - internationalization aids
321<http://www.gnu.org/software/gettext/>
322
323 Copyright © 1988, 1989, 1992, 1993, 1995 Free Software Foundation, Inc.
324
325 This program is free software; you can redistribute it and/or modify
326 it under the terms of the GNU General Public License as published by
327 the Free Software Foundation; either version 2 of the License, or
328 (at your option) any later version.
329
330 This program is distributed in the hope that it will be useful,
331 but WITHOUT ANY WARRANTY; without even the implied warranty of
332 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
333 GNU General Public License for more details.
334
335 You should have received a copy of the GNU General Public License
336 along with this program. If not, see <http://www.gnu.org/licenses/>.
337
338DBUSServer Class
339<http://www.azurdigitalnetworks.net/>
340
341 Copyright © 2009 Azur Digital Networks
342
343 This program is free software; you can redistribute it and/or modify
344 it under the terms of the GNU General Public License as published by
345 the Free Software Foundation; either version 2 of the License, or
346 (at your option) any later version.
347
348 This program is distributed in the hope that it will be useful,
349 but WITHOUT ANY WARRANTY; without even the implied warranty of
350 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
351 GNU General Public License for more details.
352
353 You should have received a copy of the GNU General Public License
354 along with this program. If not, see <http://www.gnu.org/licenses/>.
355
356Really Slick X Screensavers
357<http://www.reallyslick.com/>
358
359 Copyright © 2002-2006 Michael Chapman
360 Copyright © 2002 Terence M. Welsh
361
362 This program is free software; you can redistribute it and/or modify
363 it under the terms of the GNU General Public License as published by
364 the Free Software Foundation; either version 2 of the License, or
365 (at your option) any later version.
366
367 This program is distributed in the hope that it will be useful,
368 but WITHOUT ANY WARRANTY; without even the implied warranty of
369 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
370 GNU General Public License for more details.
371
372 You should have received a copy of the GNU General Public License
373 along with this program. If not, see <http://www.gnu.org/licenses/>.
374
375SDLMain.h
376
377 Copyright © Darrell Walisser <dwaliss1@purdue.edu>
378 Copyright © Max Horn <max@quendi.de>
379
380 Feel free to customize this file to suit your needs.
381
382XKGeneral.h - General Utility and Helper function Class' Header
383
384 Copyright © TEAM ASSEMBLY www.team-assembly.com
385
386 This program is free software; you can redistribute it and/or modify
387 it under the terms of the GNU General Public License as published by
388 the Free Software Foundation; either version 2 of the License, or
389 (at your option) any later version.
390
391 This program is distributed in the hope that it will be useful,
392 but WITHOUT ANY WARRANTY; without even the implied warranty of
393 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
394 GNU General Public License for more details.
395
396 You should have received a copy of the GNU General Public License
397 along with this program. If not, see <http://www.gnu.org/licenses/>.
398
399Goom 2k4
400<http://www.ios-software.com/index.php3?page=projet&quoi=1&lg=AN>
401
402 Copyright © 2000-2004, Jean-Christophe Hoelt <jeko@ios-software.com>
403 Copyright © 2000-2004, Guillaume Borios <gyom@ios-software.com>
404
405 This library is free software; you can redistribute it and/or
406 modify it under the terms of the GNU Lesser General Public
407 License as published by the Free Software Foundation; either
408 version 2.1 of the License, or (at your option) any later version.
409
410 This library is distributed in the hope that it will be useful,
411 but WITHOUT ANY WARRANTY; without even the implied warranty of
412 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
413 Lesser General Public License for more details.
414
415 You should have received a copy of the GNU Lesser General Public License
416 along with this program. If not, see <http://www.gnu.org/licenses/>.
417
418 iTunes Visualizer Plug-In SDK files included in Goom 2k4 are under the
419 following license.
420
421 Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
422
423 This Apple software is supplied to you by Apple Computer, Inc. in
424 consideration of your agreement to the following terms, and your use,
425 installation, modification or redistribution of this Apple software
426 constitutes acceptance of these terms. If you do not agree with these terms,
427 please do not use, install, modify or redistribute this Apple software.
428
429 In consideration of your agreement to abide by the following terms, and
430 subject to these terms, Apple grants you a personal, non-exclusive license,
431 under Apple's intellectual property rights in this Apple Software (the
432 "Apple Software"), to use, reproduce, modify and distribute the Apple
433 Software; provided that no license is granted herein under any patents that
434 may be infringed by your modifications, derivative works or by other works
435 in which the Apple Software may be incorporated. No names, trademarks,
436 service marks or logos of Apple Computer, Inc. may be used to endorse or
437 promote products derived from the Apple Software without specific prior
438 written permission from Apple. Except as expressly stated herein, no other
439 rights or licenses, express or implied, are granted by Apple and nothing
440 herein grants any license under any patents except claims of Apple patents
441 that cover this Apple Software as originally provided by Apple, and only to
442 the extent necessary to use and distribute this Apple Software as originally
443 provided by Apple.
444
445 The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO
446 WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
447 WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
448 PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
449 COMBINATION WITH ANY PRODUCT.
450
451 IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
452 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
453 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
454 INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION
455 AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER
456 THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR
457 OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
458
459XAnalyser, frequence spectrum analyser for X Window
460<http://arvin.schnell-web.net/xanalyser/>
461
462 Copyright © 1998 Arvin Schnell
463
464 This program is free software; you can redistribute it and/or modify
465 it under the terms of the GNU General Public License as published by
466 the Free Software Foundation; either version 2 of the License, or
467 (at your option) any later version.
468
469 This program is distributed in the hope that it will be useful,
470 but WITHOUT ANY WARRANTY; without even the implied warranty of
471 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
472 GNU General Public License for more details.
473
474 You should have received a copy of the GNU General Public License
475 along with this program. If not, see <http://www.gnu.org/licenses/>.
476
477XMMS - Cross-platform multimedia player
478<http://www.xmms.org/>
479
480 Copyright © 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson
481 and 4Front Technologies
482
483 This program is free software; you can redistribute it and/or modify
484 it under the terms of the GNU General Public License as published by
485 the Free Software Foundation; either version 2 of the License, or
486 (at your option) any later version.
487
488 This program is distributed in the hope that it will be useful,
489 but WITHOUT ANY WARRANTY; without even the implied warranty of
490 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
491 GNU General Public License for more details.
492
493 You should have received a copy of the GNU General Public License
494 along with this program. If not, see <http://www.gnu.org/licenses/>.
495
496Pthreads-win32 - POSIX Threads Library for Win32
497<http://sourceware.org/pthreads-win32/>
498
499 Copyright © 1998 John E. Bossom
500
501 This library is free software; you can redistribute it and/or
502 modify it under the terms of the GNU Library General Public
503 License as published by the Free Software Foundation; either
504 version 2 of the License, or (at your option) any later version.
505
506 This library is distributed in the hope that it will be useful,
507 but WITHOUT ANY WARRANTY; without even the implied warranty of
508 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
509 Library General Public License for more details.
510
511 You should have received a copy of the GNU Library General Public License
512 along with this program. If not, see <http://www.gnu.org/licenses/>.
513
514projectM - OpenGL based advanced music visualization program
515<http://projectm.sourceforge.net/>
516
517 Copyright © 2003-2007 projectM Team
518
519 This library is free software; you can redistribute it and/or
520 modify it under the terms of the GNU Lesser General Public
521 License as published by the Free Software Foundation; either
522 version 2.1 of the License, or (at your option) any later version.
523
524 This library is distributed in the hope that it will be useful,
525 but WITHOUT ANY WARRANTY; without even the implied warranty of
526 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
527 Lesser General Public License for more details.
528
529 You should have received a copy of the GNU Lesser General Public License
530 along with this program. If not, see <http://www.gnu.org/licenses/>.
531
532OpenDAAP
533<http://www.opendaap.org/>
534
535 Copyright © 2004 Forza (Chris Barnett)
536 Copyright © the authors of libOpenDAAP
537
538 This program is free software; you can redistribute it and/or modify
539 it under the terms of the GNU General Public License as published by
540 the Free Software Foundation; either version 2 of the License, or
541 (at your option) any later version.
542
543 This program is distributed in the hope that it will be useful,
544 but WITHOUT ANY WARRANTY; without even the implied warranty of
545 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
546 GNU General Public License for more details.
547
548 You should have received a copy of the GNU General Public License
549 along with this program. If not, see <http://www.gnu.org/licenses/>.
550
551zlib - A Massively Spiffy Yet Delicately Unobtrusive Compression Library
552<http://www.zlib.net/>
553
554 Copyright © 1995-2002 Jean-loup Gailly and Mark Adler.
555
556 This software is provided 'as-is', without any express or implied
557 warranty. In no event will the authors be held liable for any damages
558 arising from the use of this software.
559
560 Permission is granted to anyone to use this software for any purpose,
561 including commercial applications, and to alter it and redistribute it
562 freely, subject to the following restrictions:
563
564 1. The origin of this software must not be misrepresented; you must not
565 claim that you wrote the original software. If you use this software
566 in a product, an acknowledgment in the product documentation would be
567 appreciated but is not required.
568 2. Altered source versions must be plainly marked as such, and must not be
569 misrepresented as being the original software.
570 3. This notice may not be removed or altered from any source distribution.
571
572iso9660.h
573
574 Copyright © The Joker / Avalaunch team
575
576 This program is free software; you can redistribute it and/or modify
577 it under the terms of the GNU General Public License as published by
578 the Free Software Foundation; either version 2 of the License, or
579 (at your option) any later version.
580
581 This program is distributed in the hope that it will be useful,
582 but WITHOUT ANY WARRANTY; without even the implied warranty of
583 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
584 GNU General Public License for more details.
585
586 You should have received a copy of the GNU General Public License
587 along with this program. If not, see <http://www.gnu.org/licenses/>.
588
589Neptune Portable C++ Runtime Library
590<http://neptune.sourceforge.net/>
591
592 Copyright © 2001-2006 Gilles Boccon-Gibod
593 Copyright © 2002-2008, Axiomatic Systems, LLC.
594 All rights reserved.
595
596 Redistribution and use in source and binary forms, with or without
597 modification, are permitted provided that the following conditions are met:
598 * Redistributions of source code must retain the above copyright
599 notice, this list of conditions and the following disclaimer.
600 * Redistributions in binary form must reproduce the above copyright
601 notice, this list of conditions and the following disclaimer in the
602 documentation and/or other materials provided with the distribution.
603 * Neither the name of the <organization> nor the
604 names of its contributors may be used to endorse or promote products
605 derived from this software without specific prior written permission.
606
607 THIS SOFTWARE IS PROVIDED BY AXIOMATIC SYSTEMS ''AS IS'' AND ANY
608 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
609 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
610 DISCLAIMED. IN NO EVENT SHALL AXIOMATIC SYSTEMS BE LIABLE FOR ANY
611 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
612 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
613 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
614 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
615 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
616 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
617
618MMST implementation taken from the xine-mms plugin made by Major MMS
619(http://geocities.com/majormms/).
620
621 Copyright © 2005-2008 Team Kodi
622 Copyright © 2002 Abhijeet Phatak <abhijeetphatak@yahoo.com>
623 Copyright © 2002 the xine project
624 Copyright © 2000-2001 major mms
625
626 This program is free software; you can redistribute it and/or modify
627 it under the terms of the GNU General Public License as published by
628 the Free Software Foundation; either version 2 of the License, or
629 (at your option) any later version.
630
631 This program is distributed in the hope that it will be useful,
632 but WITHOUT ANY WARRANTY; without even the implied warranty of
633 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
634 GNU General Public License for more details.
635
636 You should have received a copy of the GNU General Public License
637 along with this program. If not, see <http://www.gnu.org/licenses/>.
638
639Ogg Bitstream Library
640<http://www.xiph.org/>
641
642 Copyright © 1994-2002 Xiph.Org Foundation http://www.xiph.org/
643
644 Redistribution and use in source and binary forms, with or without
645 modification, are permitted provided that the following conditions are met:
646
647 * Redistributions of source code must retain the above copyright notice,
648 this list of conditions and the following disclaimer.
649 * Redistributions in binary form must reproduce the above copyright
650 notice, this list of conditions and the following disclaimer in the
651 documentation and/or other materials provided with the distribution.
652 * Neither the name of the Xiph.org Foundation nor the names of its
653 contributors may be used to endorse or promote products derived from
654 this software without specific prior written permission.
655
656 This software is provided by the copyright holders and contributors “as is”
657 and any express or implied warranties, including, but not limited to, the
658 implied warranties of merchantability and fitness for a particular purpose
659 are disclaimed. In no event shall the foundation or contributors be liable
660 for any direct, indirect, incidental, special, exemplary, or consequential
661 damages (including, but not limited to, procurement of substitute goods or
662 services; loss of use, data, or profits; or business interruption) however
663 caused and on any theory of liability, whether in contract, strict
664 liability, or tort (including negligence or otherwise) arising in any way
665 out of the use of this software, even if advised of the possibility of such
666 damage.
667
668The Vorbis General Audio Compression Codec
669<http://www.xiph.org/>
670
671 Copyright © 2002, Xiph.org Foundation
672
673 Redistribution and use in source and binary forms, with or without
674 modification, are permitted provided that the following conditions are met:
675
676 * Redistributions of source code must retain the above copyright notice,
677 this list of conditions and the following disclaimer.
678 * Redistributions in binary form must reproduce the above copyright
679 notice, this list of conditions and the following disclaimer in the
680 documentation and/or other materials provided with the distribution.
681 * Neither the name of the Xiph.org Foundation nor the names of its
682 contributors may be used to endorse or promote products derived from
683 this software without specific prior written permission.
684
685 This software is provided by the copyright holders and contributors “as is”
686 and any express or implied warranties, including, but not limited to, the
687 implied warranties of merchantability and fitness for a particular purpose
688 are disclaimed. In no event shall the foundation or contributors be liable
689 for any direct, indirect, incidental, special, exemplary, or consequential
690 damages (including, but not limited to, procurement of substitute goods or
691 services; loss of use, data, or profits; or business interruption) however
692 caused and on any theory of liability, whether in contract, strict
693 liability, or tort (including negligence or otherwise) arising in any way
694 out of the use of this software, even if advised of the possibility of such
695 damage.
696
697LAME Ain't an Mp3 Encoder
698<http://lame.sourceforge.net/>
699
700 Copyright © 1999 Mark Taylor
701
702 This program is free software; you can redistribute it and/or modify
703 it under the terms of the GNU General Public License as published by
704 the Free Software Foundation; either version 2 of the License, or
705 (at your option) any later version.
706
707 This program is distributed in the hope that it will be useful,
708 but WITHOUT ANY WARRANTY; without even the implied warranty of
709 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
710 GNU General Public License for more details.
711
712 You should have received a copy of the GNU General Public License
713 along with this program. If not, see <http://www.gnu.org/licenses/>.
714
715GNU libmicrohttpd
716<http://www.gnu.org/software/libmicrohttpd/>
717
718 (C) 2006, 2007, 2008, 2009 Christian Grothoff (and other contributing
719 authors)
720
721 This library is free software; you can redistribute it and/or
722 modify it under the terms of the GNU Lesser General Public
723 License as published by the Free Software Foundation; either
724 version 2.1 of the License, or (at your option) any later version.
725
726 This library is distributed in the hope that it will be useful,
727 but WITHOUT ANY WARRANTY; without even the implied warranty of
728 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
729 Lesser General Public License for more details.
730
731 You should have received a copy of the GNU Lesser General Public License
732 along with this program. If not, see <http://www.gnu.org/licenses/>.
733
734Python Programming Language
735<http://www.python.org/>
736
737 Copyright © 2001-2008 Python Software Foundation. All rights reserved.
738 Copyright © 2000 BeOpen.com. All rights reserved.
739 Copyright © 1995-2001 Corporation for National Research Initiatives. All
740 rights reserved.
741 Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved.
742
743 Python is distributed under the Python Software Foundation License
744 version 2. A copy of the license may be retrieved from
745 http://www.python.org/psf/license/ and is repeated below under the section
746 "License: PSF License for Python 2.4".
747
748libopendaap - library which enables applications to discover, and connect to,
749iTunes music shares.
750<http://craz.net/programs/itunes/libopendaap.html>
751
752 Copyright © 2004 David Hammerton.
753
754 Permission is hereby granted, free of charge, to any person obtaining a copy
755 of this software and associated documentation files (the "Software"), to
756 deal in the Software without restriction, including without limitation the
757 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
758 sell copies of the Software, and to permit persons to whom the Software is
759 furnished to do so, subject to the following conditions:
760
761 The above copyright notice and this permission notice shall be included in
762 all copies or substantial portions of the Software.
763
764 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
765 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
766 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
767 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
768 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
769 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
770 IN THE SOFTWARE.
771
772libsamplerate - audio rate conversion library
773<http://www.mega-nerd.com/SRC/>
774
775 Copyright © 2002-2008 Erik de Castro Lopo <erikd@mega-nerd.com>
776
777 This program is free software; you can redistribute it and/or modify
778 it under the terms of the GNU General Public License as published by
779 the Free Software Foundation; either version 2 of the License, or
780 (at your option) any later version.
781
782 This program is distributed in the hope that it will be useful,
783 but WITHOUT ANY WARRANTY; without even the implied warranty of
784 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
785 GNU General Public License for more details.
786
787 You should have received a copy of the GNU General Public License
788 along with this program. If not, see <http://www.gnu.org/licenses/>.
789
790MediaMVP Media Center
791<http://www.mvpmc.org/>
792
793 Copyright © 2004-2006, Eric Lund, Jon Gettler, Sergio Slobodrian
794 http://www.mvpmc.org/
795
796 This library is free software; you can redistribute it and/or
797 modify it under the terms of the GNU Lesser General Public
798 License as published by the Free Software Foundation; either
799 version 2.1 of the License, or (at your option) any later version.
800
801 This library is distributed in the hope that it will be useful,
802 but WITHOUT ANY WARRANTY; without even the implied warranty of
803 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
804 Lesser General Public License for more details.
805
806 You should have received a copy of the GNU Lesser General Public License
807 along with this program. If not, see <http://www.gnu.org/licenses/>.
808
809MySQL
810<http://www.mysql.com/>
811
812 Copyright © 2000-2003 MySQL AB
813
814 This program is free software; you can redistribute it and/or modify
815 it under the terms of the GNU General Public License as published by
816 the Free Software Foundation; either version 2 of the License.
817
818 This program is distributed in the hope that it will be useful,
819 but WITHOUT ANY WARRANTY; without even the implied warranty of
820 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
821 GNU General Public License for more details.
822
823 You should have received a copy of the GNU General Public License
824 along with this program. If not, see <http://www.gnu.org/licenses/>.
825
826libid3tag - ID3 tag manipulation library
827<http://www.underbit.com/products/mad/>
828
829 Copyright © 2000-2004 Underbit Technologies, Inc.
830
831 This program is free software; you can redistribute it and/or modify
832 it under the terms of the GNU General Public License as published by
833 the Free Software Foundation; either version 2 of the License, or
834 (at your option) any later version.
835
836 This program is distributed in the hope that it will be useful,
837 but WITHOUT ANY WARRANTY; without even the implied warranty of
838 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
839 GNU General Public License for more details.
840
841 You should have received a copy of the GNU General Public License
842 along with this program. If not, see <http://www.gnu.org/licenses/>.
843
844Simple DirectMedia Layer
845<http://www.libsdl.org/>
846
847 Copyright © 1997-2006 Sam Lantinga
848
849 This library is free software; you can redistribute it and/or
850 modify it under the terms of the GNU Lesser General Public
851 License as published by the Free Software Foundation; either
852 version 2.1 of the License, or (at your option) any later version.
853
854 This library is distributed in the hope that it will be useful,
855 but WITHOUT ANY WARRANTY; without even the implied warranty of
856 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
857 Lesser General Public License for more details.
858
859 You should have received a copy of the GNU Lesser General Public License
860 along with this program. If not, see <http://www.gnu.org/licenses/>.
861
862libfribidi - Free Implementation of the Unicode BiDi algorithm
863<http://www.fribidi.org/>
864
865 Copyright © 1999,2000 Dov Grobgeld
866 Copyright © 2001,2002 Behdad Esfahbod
867
868 This library is free software; you can redistribute it and/or
869 modify it under the terms of the GNU Lesser General Public
870 License as published by the Free Software Foundation; either
871 version 2.1 of the License, or (at your option) any later version.
872
873 This library is distributed in the hope that it will be useful,
874 but WITHOUT ANY WARRANTY; without even the implied warranty of
875 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
876 Lesser General Public License for more details.
877
878 You should have received a copy of the GNU Lesser General Public License
879 along with this program. If not, see <http://www.gnu.org/licenses/>.
880
881CDRip - library that provides methods for extracting data from audio CDs
882<http://libcdrip.sourceforge.net/>
883
884 Copyright © 1999 - 2002 Albert L. Faber
885
886 This program is free software; you can redistribute it and/or modify
887 it under the terms of the GNU General Public License as published by
888 the Free Software Foundation; either version 2 of the License, or
889 (at your option) any later version.
890
891 This program is distributed in the hope that it will be useful,
892 but WITHOUT ANY WARRANTY; without even the implied warranty of
893 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
894 GNU General Public License for more details.
895
896 You should have received a copy of the GNU General Public License
897 along with this program. If not, see <http://www.gnu.org/licenses/>.
898
899Platinum - UPnP library
900<http://www.plutinosoft.com/>
901
902 Copyright © 2004-2008, Plutinosoft, LLC. All rights reserved.
903
904 This program is free software; you can redistribute it and/or modify
905 it under the terms of the GNU General Public License as published by
906 the Free Software Foundation; either version 2 of the License, or
907 (at your option) any later version.
908
909 This program is distributed in the hope that it will be useful,
910 but WITHOUT ANY WARRANTY; without even the implied warranty of
911 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
912 GNU General Public License for more details.
913
914 You should have received a copy of the GNU General Public License
915 along with this program. If not, see <http://www.gnu.org/licenses/>.
916
917SQLite - library that implements a self-contained, serverless,
918zero-configuration, transactional SQL database engine.
919<http://www.sqlite.org/>
920
921 Copyright © 2004, Leo Seib, Hannover
922
923 Permission is hereby granted, free of charge, to any person obtaining a copy
924 of this software and associated documentation files (the "Software"), to
925 deal in the Software without restriction, including without limitation the
926 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
927 sell copies of the Software, and to permit persons to whom the Software is
928 furnished to do so, subject to the following conditions:
929
930 The above copyright notice and this permission notice shall be included in
931 all copies or substantial portions of the Software.
932
933 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
934 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
935 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
936 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
937 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
938 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
939 IN THE SOFTWARE.
940
941CxImage - C++ image processing and conversion library
942<http://www.xdp.it/cximage.htm>
943
944 Copyright © 2001 - 2008, Davide Pizzolato
945
946 Original CImage and CImageIterator implementation are:
947 Copyright © 1995, Alejandro Aguilar Sierra
948 (asierra(at)servidor(dot)unam(dot)mx)
949
950 Covered code is provided under this license on an "as is" basis, without
951 warranty of any kind, either expressed or implied, including, without
952 limitation, warranties that the covered code is free of defects,
953 merchantable, fit for a particular purpose or non-infringing. The entire
954 risk as to the quality and performance of the covered code is with you.
955 Should any covered code prove defective in any respect, you (not the initial
956 developer or any other contributor) assume the cost of any necessary
957 servicing, repair or correction. This disclaimer of warranty constitutes an
958 essential part of this license. No use of any covered code is authorized
959 hereunder except under this disclaimer.
960
961 Permission is hereby granted to use, copy, modify, and distribute this
962 source code, or portions hereof, for any purpose, including commercial
963 applications, freely and without fee, subject to the following restrictions:
964
965 1. The origin of this software must not be misrepresented; you must not
966 claim that you wrote the original software. If you use this software
967 in a product, an acknowledgment in the product documentation would be
968 appreciated but is not required.
969
970 2. Altered source versions must be plainly marked as such, and must not be
971 misrepresented as being the original software.
972
973 3. This notice may not be removed or altered from any source distribution.
974
975 Portions of CxImage are under different copyright and under different
976 licenses.
977
978 JasPer
979 Copyright © 2001-2006 Michael David Adams
980 Copyright © 1999-2000 Image Power, Inc.
981 Copyright © 1999-2000 The University of British Columbia
982 All Rights Reserved.
983
984 Permission is hereby granted, free of charge, to any person (the
985 "User") obtaining a copy of this software and associated documentation
986 files (the "Software"), to deal in the Software without restriction,
987 including without limitation the rights to use, copy, modify, merge,
988 publish, distribute, and/or sell copies of the Software, and to permit
989 persons to whom the Software is furnished to do so, subject to the
990 following conditions:
991
992 1. The above copyright notices and this permission notice (which
993 includes the disclaimer below) shall be included in all copies or
994 substantial portions of the Software.
995
996 2. The name of a copyright holder shall not be used to endorse or
997 promote products derived from the Software without specific prior
998 written permission.
999
1000 THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
1001 LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER
1002 THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
1003 "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
1004 BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
1005 PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
1006 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
1007 INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
1008 FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
1009 NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
1010 WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE
1011 PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE
1012 THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.
1013 EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS
1014 BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL
1015 PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS
1016 GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE
1017 ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE
1018 IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL
1019 SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,
1020 AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL
1021 SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH
1022 THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,
1023 PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH
1024 RISK ACTIVITIES"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY
1025 EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.
1026
1027 JBIG
1028 Copyright © Markus Kuhn -- http://www.cl.cam.ac.uk/~mgk25/
1029
1030 This program is free software; you can redistribute it and/or modify
1031 it under the terms of the GNU General Public License as published by
1032 the Free Software Foundation; either version 2 of the License, or
1033 (at your option) any later version.
1034
1035 This program is distributed in the hope that it will be useful,
1036 but WITHOUT ANY WARRANTY; without even the implied warranty of
1037 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1038 GNU General Public License for more details.
1039
1040 You should have received a copy of the GNU General Public License
1041 along with this program. If not, see <http://www.gnu.org/licenses/>.
1042
1043 MNG
1044 Copyright © 2000-2007 Gerard Juyn (gerard@libmng.com)
1045
1046 For the purposes of this copyright and license, "Contributing Authors"
1047 is defined as the following set of individuals:
1048
1049 Gerard Juyn
1050 Glenn Randers-Pehrson
1051
1052 The MNG Library is supplied "AS IS". The Contributing Authors
1053 disclaim all warranties, expressed or implied, including, without
1054 limitation, the warranties of merchantability and of fitness for any
1055 purpose. The Contributing Authors assume no liability for direct,
1056 indirect, incidental, special, exemplary, or consequential damages,
1057 which may result from the use of the MNG Library, even if advised of
1058 the possibility of such damage.
1059
1060 Permission is hereby granted to use, copy, modify, and distribute this
1061 source code, or portions hereof, for any purpose, without fee, subject
1062 to the following restrictions:
1063
1064 1. The origin of this source code must not be misrepresented;
1065 you must not claim that you wrote the original software.
1066
1067 2. Altered versions must be plainly marked as such and must not be
1068 misrepresented as being the original source.
1069
1070 3. This Copyright notice may not be removed or altered from any source
1071 or altered source distribution.
1072
1073 The Contributing Authors specifically permit, without fee, and
1074 encourage the use of this source code as a component to supporting
1075 MNG and JNG file format in commercial products. If you use this
1076 source code in a product, acknowledgment would be highly appreciated.
1077
1078 JPEG
1079 Copyright © 1994-1998, Thomas G. Lane.
1080
1081 JPEG code is under the Independent JPEG Group License which can be found at
1082 http://dev.w3.org/cvsweb/Amaya/libjpeg/Attic/README?rev=1.2 and is repeated
1083 under the section "License: IJG License".
1084
1085 TIFF
1086 Copyright © 1988-1997 Sam Leffler
1087 Copyright © 1991-1997 Silicon Graphics, Inc.
1088
1089 Permission is hereby granted, free of charge, to any person obtaining a copy
1090 of this software and associated documentation files (the "Software"), to
1091 deal in the Software without restriction, including without limitation the
1092 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
1093 sell copies of the Software, and to permit persons to whom the Software is
1094 furnished to do so, subject to the following conditions:
1095
1096 The above copyright notice and this permission notice shall be included in
1097 all copies or substantial portions of the Software.
1098
1099 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1100 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1101 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1102 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1103 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1104 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1105 IN THE SOFTWARE.
1106
1107 PNG
1108 Copyright © 1998, 1999 Glenn Randers-Pehrson
1109
1110 This software is provided 'as-is', without any express or implied
1111 warranty. In no event will the authors be held liable for any damages
1112 arising from the use of this software.
1113
1114 Permission is granted to anyone to use this software for any purpose,
1115 including commercial applications, and to alter it and redistribute it
1116 freely, subject to the following restrictions:
1117
1118 1. The origin of this software must not be misrepresented; you must not
1119 claim that you wrote the original software. If you use this software
1120 in a product, an acknowledgment in the product documentation would be
1121 appreciated but is not required.
1122 2. Altered source versions must be plainly marked as such, and must not be
1123 misrepresented as being the original software.
1124 3. This notice may not be removed or altered from any source distribution.
1125
1126 Dave Coffin's raw photo decoder
1127 Copyright © 1997-2009 by Dave Coffin, dcoffin a cybercom o net
1128
1129 Covered code is provided under this license on an "as is" basis, without
1130 warranty of any kind, either expressed or implied, including, without
1131 limitation, warranties that the covered code is free of defects,
1132 merchantable, fit for a particular purpose or non-infringing. The entire
1133 risk as to the quality and performance of the covered code is with you.
1134 Should any covered code prove defective in any respect, you (not the initial
1135 developer or any other contributor) assume the cost of any necessary
1136 servicing, repair or correction. This disclaimer of warranty constitutes an
1137 essential part of this license. No use of any covered code is authorized
1138 hereunder except under this disclaimer.
1139
1140 No license is required to download and use libdcr. However,
1141 to lawfully redistribute libdcr, you must either (a) offer, at
1142 no extra charge, full source code for all executable files
1143 containing RESTRICTED functions, (b) distribute this code under
1144 the GPL Version 2 or later, (c) remove all RESTRICTED functions,
1145 re-implement them, or copy them from an earlier, unrestricted
1146 revision of dcraw.c, or (d) purchase a license from the author
1147 of dcraw.c.
1148
1149PortAudio - portable cross-platform Audio API
1150<http://www.portaudio.com/>
1151
1152 Copyright © 1999-2002 Ross Bencina and Phil Burk
1153
1154 Permission is hereby granted, free of charge, to any person obtaining a copy
1155 of this software and associated documentation files (the "Software"), to
1156 deal in the Software without restriction, including without limitation the
1157 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
1158 sell copies of the Software, and to permit persons to whom the Software is
1159 furnished to do so, subject to the following conditions:
1160
1161 The above copyright notice and this permission notice shall be included in
1162 all copies or substantial portions of the Software.
1163
1164 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1165 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1166 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1167 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1168 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1169 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1170 IN THE SOFTWARE.
1171
1172Audioscrobbler - The Social Music Technology Playground
1173<http://www.audioscrobbler.net/>
1174
1175 Copyright © 2003 Russell Garrett (russ-scrobbler@garrett.co.uk)
1176
1177 This program is free software; you can redistribute it and/or modify
1178 it under the terms of the GNU General Public License as published by
1179 the Free Software Foundation; either version 2 of the License, or
1180 (at your option) any later version.
1181
1182 This program is distributed in the hope that it will be useful,
1183 but WITHOUT ANY WARRANTY; without even the implied warranty of
1184 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1185 GNU General Public License for more details.
1186
1187 You should have received a copy of the GNU General Public License
1188 along with this program. If not, see <http://www.gnu.org/licenses/>.
1189
1190Samba - Opening Windows to a Wider World
1191<http://www.samba.org/>
1192
1193 Copyright © Andrew Tridgell 1998
1194 Copyright © Richard Sharpe 2000
1195 Copyright © John Terpsra 2000
1196 Copyright © Tom Jansen (Ninja ISD) 2002
1197 Copyright © Derrell Lipman 2003
1198
1199 This program is free software; you can redistribute it and/or modify
1200 it under the terms of the GNU General Public License as published by
1201 the Free Software Foundation; either version 2 of the License, or
1202 (at your option) any later version.
1203
1204 This program is distributed in the hope that it will be useful,
1205 but WITHOUT ANY WARRANTY; without even the implied warranty of
1206 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1207 GNU General Public License for more details.
1208
1209 You should have received a copy of the GNU General Public License
1210 along with this program. If not, see <http://www.gnu.org/licenses/>.
1211
1212PCRE - Perl Compatible Regular Expressions
1213<http://www.pcre.org/>
1214
1215 Copyright © 1997-2007 University of Cambridge
1216
1217 Redistribution and use in source and binary forms, with or without
1218 modification, are permitted provided that the following conditions are met:
1219
1220 * Redistributions of source code must retain the above copyright notice,
1221 this list of conditions and the following disclaimer.
1222
1223 * Redistributions in binary form must reproduce the above copyright
1224 notice, this list of conditions and the following disclaimer in the
1225 documentation and/or other materials provided with the distribution.
1226
1227 * Neither the name of the University of Cambridge nor the names of its
1228 contributors may be used to endorse or promote products derived from
1229 this software without specific prior written permission.
1230
1231 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1232 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1233 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1234 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
1235 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1236 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1237 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1238 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1239 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1240 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1241 POSSIBILITY OF SUCH DAMAGE.
1242
1243HDHomeRun - Networked Digital Tuner
1244<http://www.silicondust.com/>
1245
1246 Copyright © 2006-2008 Silicondust Engineering Ltd. <www.silicondust.com>
1247
1248 This library is free software; you can redistribute it and/or
1249 modify it under the terms of the GNU Lesser General Public
1250 License as published by the Free Software Foundation; either
1251 version 3 of the License, or (at your option) any later version.
1252
1253 This library is distributed in the hope that it will be useful,
1254 but WITHOUT ANY WARRANTY; without even the implied warranty of
1255 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1256 Lesser General Public License for more details.
1257
1258 You should have received a copy of the GNU Lesser General Public
1259 License along with this library. If not, see
1260 <http://www.gnu.org/licenses/>.
1261
1262 As a special exception to the GNU Lesser General Public License,
1263 you may link, statically or dynamically, an application with a
1264 publicly distributed version of the Library to produce an
1265 executable file containing portions of the Library, and
1266 distribute that executable file under terms of your choice,
1267 without any of the additional requirements listed in clause 4 of
1268 the GNU Lesser General Public License.
1269
1270 By "a publicly distributed version of the Library", we mean
1271 either the unmodified Library as distributed by Silicondust, or a
1272 modified version of the Library that is distributed under the
1273 conditions defined in the GNU Lesser General Public License.
1274
1275LibASS - portable library for SSA/ASS subtitles rendering
1276<http://sourceforge.net/projects/libass/>
1277
1278 Copyright © 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
1279
1280 This program is free software; you can redistribute it and/or modify
1281 it under the terms of the GNU General Public License as published by
1282 the Free Software Foundation; either version 2 of the License, or
1283 (at your option) any later version.
1284
1285 This program is distributed in the hope that it will be useful,
1286 but WITHOUT ANY WARRANTY; without even the implied warranty of
1287 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1288 GNU General Public License for more details.
1289
1290 You should have received a copy of the GNU General Public License
1291 along with this program. If not, see <http://www.gnu.org/licenses/>.
1292
1293libRTV - ReplayTV library
1294
1295 Copyright © 2002 John Todd Larason <jtl@molehill.org>
1296
1297 This program is free software; you can redistribute it and/or modify
1298 it under the terms of the GNU General Public License as published by
1299 the Free Software Foundation; either version 2 of the License, or
1300 (at your option) any later version.
1301
1302 This program is distributed in the hope that it will be useful,
1303 but WITHOUT ANY WARRANTY; without even the implied warranty of
1304 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1305 GNU General Public License for more details.
1306
1307 You should have received a copy of the GNU General Public License
1308 along with this program. If not, see <http://www.gnu.org/licenses/>.
1309
1310libiconv - iconv() implementation
1311<http://www.gnu.org/software/libiconv/>
1312
1313 Copyright © 1999-2003 Free Software Foundation, Inc.
1314
1315 This library is free software; you can redistribute it and/or
1316 modify it under the terms of the GNU Library General Public
1317 License as published by the Free Software Foundation; either
1318 version 2 of the License, or (at your option) any later version.
1319
1320 This library is distributed in the hope that it will be useful,
1321 but WITHOUT ANY WARRANTY; without even the implied warranty of
1322 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1323 Library General Public License for more details.
1324
1325 You should have received a copy of the GNU Library General Public License
1326 along with this program. If not, see <http://www.gnu.org/licenses/>.
1327
1328Boost C++ Libraries
1329<http://www.boost.org/>
1330
1331 Copyright © 2001, 2002 Peter Dimov and Multi Media Ltd.
1332 Copyright © 2007 Peter Dimov
1333
1334 Permission is hereby granted, free of charge, to any person or organization
1335 obtaining a copy of the software and accompanying documentation covered by
1336 this license (the "Software") to use, reproduce, display, distribute,
1337 execute, and transmit the Software, and to prepare derivative works of the
1338 Software, and to permit third-parties to whom the Software is furnished to
1339 do so, all subject to the following:
1340
1341 The copyright notices in the Software and this entire statement, including
1342 the above license grant, this restriction and the following disclaimer,
1343 must be included in all copies of the Software, in whole or in part, and
1344 all derivative works of the Software, unless such copies or derivative
1345 works are solely in the form of machine-executable object code generated by
1346 a source language processor.
1347
1348 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1349 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1350 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
1351 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
1352 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
1353 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1354 DEALINGS IN THE SOFTWARE.
1355
1356HTS Tvheadend - Combined DVB receiver, Digital Video Recorder and Showtime
1357streaming server for Linux.
1358<http://www.lonelycoder.com/hts/>
1359
1360 Copyright © 2008 Andreas Öman
1361
1362 This program is free software: you can redistribute it and/or modify
1363 it under the terms of the GNU General Public License as published by
1364 the Free Software Foundation, either version 3 of the License, or
1365 (at your option) any later version.
1366
1367 This program is distributed in the hope that it will be useful,
1368 but WITHOUT ANY WARRANTY; without even the implied warranty of
1369 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1370 GNU General Public License for more details.
1371
1372 You should have received a copy of the GNU General Public License
1373 along with this program. If not, see <http://www.gnu.org/licenses/>.
1374
1375GNU Compact Disc Input and Control Library
1376<http://www.gnu.org/software/libcdio/index.html>
1377
1378 Copyright © 2001 Herbert Valerio Riedel <hvr@gnu.org>
1379 Copyright © 2003, 2004, 2005 Rocky Bernstein <rocky@panix.com>
1380
1381 This program is free software; you can redistribute it and/or modify
1382 it under the terms of the GNU General Public License as published by
1383 the Free Software Foundation; either version 2 of the License, or
1384 (at your option) any later version.
1385
1386 This program is distributed in the hope that it will be useful,
1387 but WITHOUT ANY WARRANTY; without even the implied warranty of
1388 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1389 GNU General Public License for more details.
1390
1391 You should have received a copy of the GNU General Public License
1392 along with this program. If not, see <http://www.gnu.org/licenses/>.
1393
1394SNESAPU - SNES APU emulator library
1395<http://www.alpha-ii.com/>
1396
1397 Copyright © 2001-2006 Alpha-II
1398
1399 This library is free software; you can redistribute it and/or
1400 modify it under the terms of the GNU Lesser General Public
1401 License as published by the Free Software Foundation; either
1402 version 2.1 of the License, or (at your option) any later version.
1403
1404 This library is distributed in the hope that it will be useful,
1405 but WITHOUT ANY WARRANTY; without even the implied warranty of
1406 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1407 Lesser General Public License for more details.
1408
1409 You should have received a copy of the GNU Lesser General Public License
1410 along with this program. If not, see <http://www.gnu.org/licenses/>.
1411
1412Musepack Decoder Library
1413<http://www.musepack.net/>
1414
1415 Copyright © 2005, The Musepack Development Team. All rights reserved.
1416
1417 Redistribution and use in source and binary forms, with or without
1418 modification, are permitted provided that the following conditions are
1419 met:
1420
1421 * Redistributions of source code must retain the above copyrig
1422 notice, this list of conditions and the following disclaimer.
1423
1424 * Redistributions in binary form must reproduce the above
1425 copyright notice, this list of conditions and the following
1426 disclaimer in the documentation and/or other materials provided
1427 with the distribution.
1428
1429 * Neither the name of the The Musepack Development Team nor the
1430 names of its contributors may be used to endorse or promote
1431 products derived from this software without specific prior
1432 written permission.
1433
1434 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1435 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1436 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1437 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1438 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1439 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1440 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1441 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1442 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1443 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1444 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1445
1446FLAC - Free Lossless Audio Codec
1447
1448 Copyright © 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
1449
1450 This program is free software; you can redistribute it and/or modify
1451 it under the terms of the GNU General Public License as published by
1452 the Free Software Foundation; either version 2 of the License, or
1453 (at your option) any later version.
1454
1455 This program is distributed in the hope that it will be useful,
1456 but WITHOUT ANY WARRANTY; without even the implied warranty of
1457 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1458 GNU General Public License for more details.
1459
1460 You should have received a copy of the GNU General Public License
1461 along with this program. If not, see <http://www.gnu.org/licenses/>.
1462
1463Gens APU from Gens
1464<http://info.sonicretro.org/Gens/GS>
1465
1466 Copyright © 2002 by Stéphane Dallongeville
1467
1468 This program is free software; you can redistribute it and/or modify
1469 it under the terms of the GNU General Public License as published by
1470 the Free Software Foundation; either version 2 of the License, or
1471 (at your option) any later version.
1472
1473 This program is distributed in the hope that it will be useful,
1474 but WITHOUT ANY WARRANTY; without even the implied warranty of
1475 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1476 GNU General Public License for more details.
1477
1478 You should have received a copy of the GNU General Public License
1479 along with this program. If not, see <http://www.gnu.org/licenses/>.
1480
1481vgmstream - library for playback of various video game audio formats
1482<http://vgmstream.sourceforge.net/>
1483
1484 Copyright © 2008-2009 Adam Gashlin, Fastelbja, Ronny Elfert
1485
1486 Permission to use, copy, modify, and/or distribute this software for any
1487 purpose with or without fee is hereby granted, provided that the above
1488 copyright notice and this permission notice appear in all copies.
1489
1490 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1491 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1492 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
1493 SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1494 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
1495 OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
1496 CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1497
1498nosefart - NES sound format player
1499<http://nosefart.sourceforge.net/>
1500
1501 Copyright © 1998-2000 Matthew Conte (matt@conte.com)
1502
1503 This program is free software; you can redistribute it and/or modify
1504 it under the terms of the GNU General Public License as published by
1505 the Free Software Foundation; either version 2 of the License, or
1506 (at your option) any later version.
1507
1508 This program is distributed in the hope that it will be useful,
1509 but WITHOUT ANY WARRANTY; without even the implied warranty of
1510 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1511 GNU General Public License for more details.
1512
1513 You should have received a copy of the GNU General Public License
1514 along with this program. If not, see <http://www.gnu.org/licenses/>.
1515
1516MAD - MPEG Audio Decoder
1517<http://www.underbit.com/products/mad/>
1518
1519 Copyright © 2000-2004 Underbit Technologies, Inc
1520
1521 This program is free software; you can redistribute it and/or modify
1522 it under the terms of the GNU General Public License as published by
1523 the Free Software Foundation; either version 2 of the License, or
1524 (at your option) any later version.
1525
1526 This program is distributed in the hope that it will be useful,
1527 but WITHOUT ANY WARRANTY; without even the implied warranty of
1528 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1529 GNU General Public License for more details.
1530
1531 You should have received a copy of the GNU General Public License
1532 along with this program. If not, see <http://www.gnu.org/licenses/>.
1533
1534SID Player Music Library V2
1535<http://sidplay2.sourceforge.net/>
1536
1537 Copyright © Michael Schwendt <mschwendt@yahoo.com>
1538 Copyright © 2000 by Simon White
1539 Copyright © 2001-2002 by Jarno Paananen
1540 Copyright © 2004 Dag Lem <resid@nimrod.no>
1541
1542 This program is free software; you can redistribute it and/or modify
1543 it under the terms of the GNU General Public License as published by
1544 the Free Software Foundation; either version 2 of the License, or
1545 (at your option) any later version.
1546
1547 This program is distributed in the hope that it will be useful,
1548 but WITHOUT ANY WARRANTY; without even the implied warranty of
1549 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1550 GNU General Public License for more details.
1551
1552 You should have received a copy of the GNU General Public License
1553 along with this program. If not, see <http://www.gnu.org/licenses/>.
1554
1555Xbox ADPCM audio codec
1556<http://www.winamp.com/plugins/details/147392>
1557
1558 Copyright © Luigi Auriemma
1559
1560 This program is free software; you can redistribute it and/or modify
1561 it under the terms of the GNU General Public License as published by
1562 the Free Software Foundation; either version 2 of the License, or
1563 (at your option) any later version.
1564
1565 This program is distributed in the hope that it will be useful,
1566 but WITHOUT ANY WARRANTY; without even the implied warranty of
1567 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1568 GNU General Public License for more details.
1569
1570 You should have received a copy of the GNU General Public License
1571 along with this program. If not, see <http://www.gnu.org/licenses/>.
1572
1573ST-Sound - general "Nostalgic" Computer Sound Emulator
1574<http://leonard.oxg.free.fr>
1575
1576 Copyright © 1995-1999 Arnaud Carré ( http://leonard.oxg.free.fr )
1577
1578 This program is free software; you can redistribute it and/or modify
1579 it under the terms of the GNU General Public License as published by
1580 the Free Software Foundation; either version 2 of the License, or
1581 (at your option) any later version.
1582
1583 This program is distributed in the hope that it will be useful,
1584 but WITHOUT ANY WARRANTY; without even the implied warranty of
1585 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1586 GNU General Public License for more details.
1587
1588 You should have received a copy of the GNU General Public License
1589 along with this program. If not, see <http://www.gnu.org/licenses/>.
1590
1591TiMidity++ - software synthesizer
1592<http://timidity.sourceforge.net/>
1593
1594 Copyright © 1999-2002 Masanao Izumo <mo@goice.co.jp>
1595 Copyright © 1995 Tuukka Toivonen <tt@cgs.fi>
1596
1597 This program is free software; you can redistribute it and/or modify
1598 it under the terms of the GNU General Public License as published by
1599 the Free Software Foundation; either version 2 of the License, or
1600 (at your option) any later version.
1601
1602 This program is distributed in the hope that it will be useful,
1603 but WITHOUT ANY WARRANTY; without even the implied warranty of
1604 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1605 GNU General Public License for more details.
1606
1607 You should have received a copy of the GNU General Public License
1608 along with this program. If not, see <http://www.gnu.org/licenses/>.
1609
1610FFmpeg - complete, cross-platform solution to record, convert and stream audio
1611and video
1612<http://www.ffmpeg.org/>
1613
1614 Copyright © Fabrice Bellard
1615 Copyright © Alex Beregszaszi
1616 Copyright © BERO
1617 Copyright © Mario Brito
1618 Copyright © Ronald Bultje
1619 Copyright © Tim Ferguson
1620 Copyright © Brian Foley
1621 Copyright © Arpad Gereoffy
1622 Copyright © Philip Gladstone
1623 Copyright © Vladimir Gneushev
1624 Copyright © Wolfgang Hesseler
1625 Copyright © Falk Hueffner
1626 Copyright © Zdenek Kabelac
1627 Copyright © Robin Kay
1628 Copyright © Todd Kirby
1629 Copyright © Nick Kurshev
1630 Copyright © Mike Melanson
1631 Copyright © Michael Niedermayer
1632 Copyright © François Revol
1633 Copyright © Roman Shaposhnik
1634 Copyright © Dieter Shirley
1635 Copyright © Juan J. Sierralta
1636 Copyright © Ewald Snel
1637 Copyright © Leon van Stuivenberg
1638 Copyright © Roberto Togni
1639 Copyright © Lionel Ulmer
1640
1641 Falls under two licenses, the LGPL-2.1 and GPL-2.
1642
1643 LGPL-2.1
1644
1645 This library is free software; you can redistribute it and/or
1646 modify it under the terms of the GNU Lesser General Public
1647 License as published by the Free Software Foundation; either
1648 version 2.1 of the License, or (at your option) any later version.
1649
1650 This library is distributed in the hope that it will be useful,
1651 but WITHOUT ANY WARRANTY; without even the implied warranty of
1652 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1653 Lesser General Public License for more details.
1654
1655 You should have received a copy of the GNU Lesser General Public License
1656 along with this program. If not, see <http://www.gnu.org/licenses/>.
1657
1658 GPL-2
1659
1660 This program is free software; you can redistribute it and/or modify
1661 it under the terms of the GNU General Public License as published by
1662 the Free Software Foundation; either version 2 of the License, or
1663 (at your option) any later version.
1664
1665 This program is distributed in the hope that it will be useful,
1666 but WITHOUT ANY WARRANTY; without even the implied warranty of
1667 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1668 GNU General Public License for more details.
1669
1670 You should have received a copy of the GNU General Public License
1671 along with this program. If not, see <http://www.gnu.org/licenses/>.
1672
1673nuttcp - TCP/UDP network testing tool
1674<http://www.lcp.nrl.navy.mil/nuttcp/>
1675
1676 Copyright © 1995-1999 WIDE Project.
1677
1678 Redistribution and use in source and binary forms, with or without
1679 modification, are permitted provided that the following conditions
1680 are met:
1681 1. Redistributions of source code must retain the above copyright
1682 notice, this list of conditions and the following disclaimer.
1683 2. Redistributions in binary form must reproduce the above copyright
1684 notice, this list of conditions and the following disclaimer in the
1685 documentation and/or other materials provided with the distribution.
1686 3. Neither the name of the project nor the names of its contributors
1687 may be used to endorse or promote products derived from this software
1688 without specific prior written permission.
1689
1690 THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
1691 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1692 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1693 ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
1694 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1695 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1696 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1697 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1698 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1699 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1700 SUCH DAMAGE.
1701
1702libdvdnav and libdvdread - libraries to read DVDs and navigate DVD menus
1703<http://www.mplayerhq.hu/>
1704
1705 Copyright © 2001-2004 Rich Wareham <richwareham@users.sourceforge.net>
1706 Copyright © 2000, 2001, 2002 H�kan Hjort <d95hjort@dtek.chalmers.se>
1707 Copyright © 1998, 1999 Eric Smith <eric@brouhaha.com>
1708 Copyright © 2001, 2002 Billy Biggs <vektor@dumbterm.net>
1709 Copyright © 2000, 2001 Martin Norb�ck
1710 Copyright © 2000, 2001 Bj�rn Englund
1711
1712 This program is free software; you can redistribute it and/or modify
1713 it under the terms of the GNU General Public License as published by
1714 the Free Software Foundation; either version 2 of the License, or
1715 (at your option) any later version.
1716
1717 This program is distributed in the hope that it will be useful,
1718 but WITHOUT ANY WARRANTY; without even the implied warranty of
1719 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1720 GNU General Public License for more details.
1721
1722 You should have received a copy of the GNU General Public License
1723 along with this program. If not, see <http://www.gnu.org/licenses/>.
1724
1725libdca - free library for decoding DTS Coherent Acoustics streams
1726<http://www.videolan.org/developers/libdca.html>
1727
1728 Copyright © 2004 Gildas Bazin <gbazin@videolan.org>
1729
1730 This program is free software; you can redistribute it and/or modify
1731 it under the terms of the GNU General Public License as published by
1732 the Free Software Foundation; either version 2 of the License, or
1733 (at your option) any later version.
1734
1735 This program is distributed in the hope that it will be useful,
1736 but WITHOUT ANY WARRANTY; without even the implied warranty of
1737 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1738 GNU General Public License for more details.
1739
1740 You should have received a copy of the GNU General Public License
1741 along with this program. If not, see <http://www.gnu.org/licenses/>.
1742
1743libspucc - library that's part of the Xine project
1744<http://www.xine-project.org/home>
1745
1746 Copyright © 2000-2008 the xine project
1747 Copyright © Christian Vogler cvogler@gradient.cis.upenn.edu - December 2001
1748
1749 This program is free software; you can redistribute it and/or modify
1750 it under the terms of the GNU General Public License as published by
1751 the Free Software Foundation; either version 2 of the License, or
1752 (at your option) any later version.
1753
1754 This program is distributed in the hope that it will be useful,
1755 but WITHOUT ANY WARRANTY; without even the implied warranty of
1756 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1757 GNU General Public License for more details.
1758
1759 You should have received a copy of the GNU General Public License
1760 along with this program. If not, see <http://www.gnu.org/licenses/>.
1761
1762libmpeg2 - a free MPEG-2 video stream decoder
1763<http://libmpeg2.sourceforge.net/>
1764
1765 Copyright © 2000-2004 Michel Lespinasse <walken@zoy.org>
1766 Copyright © 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
1767
1768 This program is free software; you can redistribute it and/or modify
1769 it under the terms of the GNU General Public License as published by
1770 the Free Software Foundation; either version 2 of the License, or
1771 (at your option) any later version.
1772
1773 This program is distributed in the hope that it will be useful,
1774 but WITHOUT ANY WARRANTY; without even the implied warranty of
1775 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1776 GNU General Public License for more details.
1777
1778 You should have received a copy of the GNU General Public License
1779 along with this program. If not, see <http://www.gnu.org/licenses/>.
1780
1781libdvdcss - library designed for accessing encrypted DVDs
1782<http://www.videolan.org/developers/libdvdcss.html>
1783
1784 Copyright © 1999-2001 VideoLAN
1785
1786 This program is free software; you can redistribute it and/or modify
1787 it under the terms of the GNU General Public License as published by
1788 the Free Software Foundation; either version 2 of the License, or
1789 (at your option) any later version.
1790
1791 This program is distributed in the hope that it will be useful,
1792 but WITHOUT ANY WARRANTY; without even the implied warranty of
1793 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1794 GNU General Public License for more details.
1795
1796 You should have received a copy of the GNU General Public License
1797 along with this program. If not, see <http://www.gnu.org/licenses/>.
1798
1799Sample frequency change classes
1800
1801 Copyright © Spoon (www.dbpoweramp.com) March 2002 dbpoweramp@dbpoweramp.com
1802
1803 The code is based on original SSRC by Naoki Shibata
1804 <http://shibatch.sourceforge.net/
1805
1806 This library is free software; you can redistribute it and/or
1807 modify it under the terms of the GNU Lesser General Public
1808 License as published by the Free Software Foundation; either
1809 version 2.1 of the License, or (at your option) any later version.
1810
1811 This library is distributed in the hope that it will be useful,
1812 but WITHOUT ANY WARRANTY; without even the implied warranty of
1813 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1814 Lesser General Public License for more details.
1815
1816 You should have received a copy of the GNU Lesser General Public License
1817 along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
1819Kodi-xrandr.c
1820
1821 Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
1822 Copyright © 2002 Hewlett Packard Company, Inc.
1823 Copyright © 2006 Intel Corporation
1824
1825 Permission to use, copy, modify, distribute, and sell this software and its
1826 documentation for any purpose is hereby granted without fee, provided that
1827 the above copyright notice appear in all copies and that both that copyright
1828 notice and this permission notice appear in supporting documentation, and
1829 that the name of the copyright holders not be used in advertising or
1830 publicity pertaining to distribution of the software without specific,
1831 written prior permission. The copyright holders make no representations
1832 about the suitability of this software for any purpose. It is provided "as
1833 is" without express or implied warranty.
1834
1835 THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
1836 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
1837 EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
1838 CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
1839 DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
1840 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
1841 OF THIS SOFTWARE.
1842
1843Kodi/Crc32.cpp and Kodi/Crc32.h
1844
1845 Copyright (C) 2005-2009 Team Kodi
1846 http://kodi.tv
1847
1848 This program is free software; you can redistribute it and/or modify
1849 it under the terms of the GNU General Public License as published by
1850 the Free Software Foundation; either version 2 of the License, or
1851 (at your option) any later version.
1852
1853 This program is distributed in the hope that it will be useful,
1854 but WITHOUT ANY WARRANTY; without even the implied warranty of
1855 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1856 GNU General Public License for more details.
1857
1858 You should have received a copy of the GNU General Public License
1859 along with this program. If not, see <http://www.gnu.org/licenses/>.
1860
1861 Portion of this code was taken from efone.
1862 efone - Distributed internet phone system.
1863
1864 (c) 1999,2000 Krzysztof Dabrowski
1865 (c) 1999,2000 ElysiuM deeZine
1866
1867 This program is free software; you can redistribute it and/or
1868 modify it under the terms of the GNU General Public License
1869 as published by the Free Software Foundation; either version
1870 2 of the License, or (at your option) any later version.
1871
1872 based on implementation by Finn Yannick Jacobs
1873
1874guilib/AnimatedGif.cpp and guilib/AnimatedGif.h
1875
1876 Copyright (c) 2000, Juan Soulie <jsoulie@cplusplus.com>
1877
1878 Permission to use, copy, modify, distribute and sell this software or any
1879 part thereof and/or its documentation for any purpose is granted without fee
1880 provided that the above copyright notice and this permission notice appear
1881 in all copies.
1882
1883 This software is provided "as is" without express or implied warranty of
1884 any kind. The author shall have no liability with respect to the
1885 infringement of copyrights or patents that any modification to the content
1886 of this file or this file itself may incur.
1887
1888json-cpp - lightweight data-interchange format
1889<http://jsoncpp.sourceforge.net/>
1890
1891 Author is Baptiste Lepilleur <blep@users.sourceforge.net>
1892
1893 The json-cpp library and this documentation are in Public Domain.
1894
1895Crystal HD
1896<http://www.broadcom.com/support/crystal_hd/>
1897
1898 Copyright(c) 2006-2009 Broadcom Corporation.
1899
1900 The Crystal HD library is free software: you can redistribute it and/or
1901 modify it under the terms of the GNU Lesser General Public License as
1902 published by the Free Software Foundation, version 2.1 of the License.
1903
1904 The Crystal HD library is distributed in the hope that it will be useful,
1905 but WITHOUT ANY WARRANTY; without even the implied warranty of
1906 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1907 GNU Lesser General Public License for more details.
1908 You should have received a copy of the GNU Lesser General Public License
1909 along with this header. If not, see <http://www.gnu.org/licenses/>.
1910
1911 The Crystal HD driver is free software; you can redistribute it and/or
1912 modify it under the terms of the GNU General Public License as published by
1913 the Free Software Foundation, version 2 of the License.
1914
1915 The Crystal HD driver is distributed in the hope that it will be useful,
1916 but WITHOUT ANY WARRANTY; without even the implied warranty of
1917 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1918 GNU General Public License for more details.
1919
1920 You should have received a copy of the GNU General Public License
1921 along with this driver. If not, see <http://www.gnu.org/licenses/>.
1922
1923OpenSSH
1924<http://www.openssh.org/>
1925
1926 Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
1927 All rights reserved.
1928
1929 See the section 'License: OpenSSH' for full license terms.
1930
1931Enca - Extremely Naive Charset Analyser
1932<http://freshmeat.net/projects/enca/>
1933
1934 Copyright (C) 2000-2003 David Necas (Yeti) <yeti@physics.muni.cz>
1935 Copyright (C) 2009 Michal Cihar <michal@cihar.com>
1936
1937 This program is free software; you can redistribute it and/or modify it
1938 under the terms of version 2 of the GNU General Public License as published
1939 by the Free Software Foundation.
1940
1941 This program is distributed in the hope that it will be useful, but WITHOUT
1942 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1943 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
1944 more details.
1945
1946 You should have received a copy of the GNU General Public License
1947 along with this program. If not, see <http://www.gnu.org/licenses/>.
1948
1949C-Pluff - a plug-in framework for C
1950<http://www.c-pluff.org/>
1951
1952 Copyright 2007 Johannes Lehtinen
1953
1954 Permission is hereby granted, free of charge, to any person obtaining a
1955 copy of this software and associated documentation files (the "Software"),
1956 to deal in the Software without restriction, including without limitation
1957 the rights to use, copy, modify, merge, publish, distribute, sublicense,
1958 and/or sell copies of the Software, and to permit persons to whom the
1959 Software is furnished to do so, subject to the following conditions:
1960
1961 The above copyright notice and this permission notice shall be included
1962 in all copies or substantial portions of the Software.
1963
1964 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1965 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1966 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
1967 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
1968 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
1969 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
1970 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1971
1972 C-Pluff uses data structure implementations from Kazlib library.
1973
1974 KazLib copyright and license
1975 ----------------------------
1976
1977 Hash Table Data Type
1978 List Abstract Data Type
1979 Copyright (C) 1997 Kaz Kylheku <kaz@ashi.footprints.net>
1980
1981 Free Software License:
1982
1983 All rights are reserved by the author, with the following exceptions:
1984 Permission is granted to freely reproduce and distribute this software,
1985 possibly in exchange for a fee, provided that this copyright notice appears
1986 intact. Permission is also granted to adapt this software to produce
1987 derivative works, as long as the modified versions carry this copyright
1988 notice and additional notices stating that the work has been modified.
1989 This source code may be translated into executable form and incorporated
1990 into proprietary software; there is no requirement for such software to
1991 contain a copyright notice related to this source.
1992
1993J2ME Event Client
1994
1995 Copyright (c) 2008 topfs2
1996
1997 This program is free software; you can redistribute it and/or modify
1998 it under the terms of the GNU General Public License as published by
1999 the Free Software Foundation; either version 2 of the License, or
2000 (at your option) any later version.
2001
2002 This program is distributed in the hope that it will be useful,
2003 but WITHOUT ANY WARRANTY; without even the implied warranty of
2004 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2005 GNU General Public License for more details.
2006
2007 You should have received a copy of the GNU General Public License
2008 along with this program. If not, see <http://www.gnu.org/licenses/>.
2009
2010OSXRemote Client
2011
2012 Created by Stephan Diederich.
2013 Copyright 2008 University Heidelberg. All rights reserved.
2014
2015 This program is free software: you can redistribute it and/or modify
2016 it under the terms of the GNU General Public License as published by
2017 the Free Software Foundation, either version 3 of the License, or
2018 (at your option) any later version.
2019
2020 This program is distributed in the hope that it will be useful,
2021 but WITHOUT ANY WARRANTY; without even the implied warranty of
2022 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2023 GNU General Public License for more details.
2024
2025 You should have received a copy of the GNU General Public License
2026 along with this program. If not, see <http://www.gnu.org/licenses/>.
2027
2028HIDRemote Classes used by OSXRemote Client
2029
2030 Copyright (c) 2007-2009 IOSPIRIT GmbH (http://www.iospirit.com/)
2031 All rights reserved.
2032
2033 Redistribution and use in source and binary forms, with or without
2034 modification, are permitted provided that the following conditions are met:
2035
2036 * Redistributions of source code must retain the above copyright notice,
2037 this list of conditions and the following disclaimer.
2038
2039 * Redistributions in binary form must reproduce the above copyright notice,
2040 this list of conditions and the following disclaimer in the documentation
2041 and/or other materials provided with the distribution.
2042
2043 * Neither the name of IOSPIRIT GmbH nor the names of its contributors may be
2044 used to endorse or promote products derived from this software without
2045 specific prior written permission.
2046
2047 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
2048 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2049 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2050 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
2051 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2052 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2053 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2054 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2055 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2056 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2057 POSSIBILITY OF SUCH DAMAGE.
2058
2059Implementation of POSIX directory browsing functions and types for Win32.
2060
2061 Copyright Kevlin Henney, 1997, 2003. All rights reserved.
2062
2063 Permission to use, copy, modify, and distribute this software and its
2064 documentation for any purpose is hereby granted without fee, provided
2065 that this copyright and permissions notice appear in all copies and
2066 derivatives.
2067
2068 This software is supplied "as is" without express or implied warranty.
2069
2070 But that said, if there are any problems please get in touch.
2071
2072Bitstream Vera Fonts
2073
2074 Copyright (C) 2003 Bitstream, Inc.
2075 All Rights Reserved. Bitstream Vera is a trademark of Bitstream, Inc.
2076
2077 Permission is hereby granted, free of charge, to any person obtaining a
2078 copy of the fonts accompanying this license ("Fonts") and associated
2079 documentation files (the "Font Software"), to reproduce and distribute
2080 the Font Software, including without limitation the rights to use, copy,
2081 merge, publish, distribute, and/or sell copies of the Font Software, and
2082 to permit persons to whom the Font Software is furnished to do so,
2083 subject to the following conditions:
2084
2085 The above copyright and trademark notices and this permission notice
2086 shall be included in all copies of one or more of the Font Software
2087 typefaces.
2088
2089 The Font Software may be modified, altered, or added to, and in
2090 particular the designs of glyphs or characters in the Fonts may be
2091 modified and additional glyphs or characters may be added to the Fonts,
2092 only if the fonts are renamed to names not containing either the words
2093 "Bitstream" or the word "Vera".
2094
2095 This License becomes null and void to the extent applicable to Fonts or
2096 Font Software that has been modified and is distributed under the
2097 "Bitstream Vera" names.
2098
2099 The Font Software may be sold as part of a larger software package but
2100 no copy of one or more of the Font Software typefaces may be sold by
2101 itself.
2102
2103 THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2104 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
2105 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
2106 COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
2107 BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR
2108 OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
2109 OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR
2110 OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT
2111 SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
2112
2113 Except as contained in this notice, the names of Gnome, the Gnome
2114 Foundation, and Bitstream Inc., shall not be used in advertising or
2115 otherwise to promote the sale, use or other dealings in this Font
2116 Software without prior written authorization from the Gnome Foundation
2117 or Bitstream Inc., respectively. For further information, contact:
2118 <fonts@gnome.org>.
2119
2120DejaVu Fonts
2121
2122 Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
2123 Glyphs imported from Arev fonts are (c) Tavmjung Bah (see below)
2124 Bitstream Vera Fonts Copyright
2125 ------------------------------
2126 Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
2127 a trademark of Bitstream, Inc.
2128 Permission is hereby granted, free of charge, to any person obtaining a copy
2129 of the fonts accompanying this license ("Fonts") and associated
2130 documentation files (the "Font Software"), to reproduce and distribute the
2131 Font Software, including without limitation the rights to use, copy, merge,
2132 publish, distribute, and/or sell copies of the Font Software, and to permit
2133 persons to whom the Font Software is furnished to do so, subject to the
2134 following conditions:
2135 The above copyright and trademark notices and this permission notice shall
2136 be included in all copies of one or more of the Font Software typefaces.
2137 The Font Software may be modified, altered, or added to, and in particular
2138 the designs of glyphs or characters in the Fonts may be modified and
2139 additional glyphs or characters may be added to the Fonts, only if the fonts
2140 are renamed to names not containing either the words "Bitstream" or the word
2141 "Vera".
2142 This License becomes null and void to the extent applicable to Fonts or Font
2143 Software that has been modified and is distributed under the "Bitstream
2144 Vera" names.
2145 The Font Software may be sold as part of a larger software package but no
2146 copy of one or more of the Font Software typefaces may be sold by itself.
2147 THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2148 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
2149 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
2150 TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
2151 FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
2152 ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
2153 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
2154 THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
2155 FONT SOFTWARE.
2156 Except as contained in this notice, the names of Gnome, the Gnome
2157 Foundation, and Bitstream Inc., shall not be used in advertising or
2158 otherwise to promote the sale, use or other dealings in this Font Software
2159 without prior written authorization from the Gnome Foundation or Bitstream
2160 Inc., respectively. For further information, contact: fonts at gnome dot
2161 org.
2162 Arev Fonts Copyright
2163 ------------------------------
2164 Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
2165 Permission is hereby granted, free of charge, to any person obtaining
2166 a copy of the fonts accompanying this license ("Fonts") and
2167 associated documentation files (the "Font Software"), to reproduce
2168 and distribute the modifications to the Bitstream Vera Font Software,
2169 including without limitation the rights to use, copy, merge, publish,
2170 distribute, and/or sell copies of the Font Software, and to permit
2171 persons to whom the Font Software is furnished to do so, subject to
2172 the following conditions:
2173 The above copyright and trademark notices and this permission notice
2174 shall be included in all copies of one or more of the Font Software
2175 typefaces.
2176 The Font Software may be modified, altered, or added to, and in
2177 particular the designs of glyphs or characters in the Fonts may be
2178 modified and additional glyphs or characters may be added to the
2179 Fonts, only if the fonts are renamed to names not containing either
2180 the words "Tavmjong Bah" or the word "Arev".
2181 This License becomes null and void to the extent applicable to Fonts
2182 or Font Software that has been modified and is distributed under the
2183 "Tavmjong Bah Arev" names.
2184 The Font Software may be sold as part of a larger software package but
2185 no copy of one or more of the Font Software typefaces may be sold by
2186 itself.
2187 THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2188 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
2189 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
2190 OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
2191 TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2192 INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
2193 DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2194 FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
2195 OTHER DEALINGS IN THE FONT SOFTWARE.
2196 Except as contained in this notice, the name of Tavmjong Bah shall not
2197 be used in advertising or otherwise to promote the sale, use or other
2198 dealings in this Font Software without prior written authorization
2199 from Tavmjong Bah. For further information, contact: tavmjong @ free
2200
2201SlingboxLib - Library to communicate with Slingbox devices
2202<http://www.stonyx.com>
2203
2204 Copyright (C) 2010-2011 Stonyx
2205
2206 This library is free software. You can redistribute it and/or modify it
2207 under the terms of the GNU General Public License Version 2 (or at your
2208 option any later version) as published by The Free Software Foundation.
2209
2210 This library is distributed in the hope that it will be useful, but
2211 WITHOUT ANY WARRANTY; without even the implied warranty of
2212 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2213 General Public License for more details.
2214
2215 You should have received a copy of the GNU General Public License
2216 along with this program. If not, see <http://www.gnu.org/licenses/>.
2217
2218ASAP (Another Slight Atari Player)
2219<http://asap.sourceforge.net>
2220
2221 Copyright (C) 2005-2009 Piotr Fusik
2222
2223 ASAP is free software; you can redistribute it and/or modify it
2224 under the terms of the GNU General Public License as published
2225 by the Free Software Foundation; either version 2 of the License,
2226 or (at your option) any later version.
2227
2228 ASAP is distributed in the hope that it will be useful,
2229 but WITHOUT ANY WARRANTY; without even the implied warranty
2230 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
2231 See the GNU General Public License for more details.
2232
2233 You should have received a copy of the GNU General Public License
2234 along with this program. If not, see <http://www.gnu.org/licenses/>.
2235
2236CMyth - C library for communicating with MythTv server
2237<http://www.mvpmc.org>
2238
2239 Copyright (C) 2004-2006, Eric Lund, Jon Gettler
2240
2241 This library is free software; you can redistribute it and/or
2242 modify it under the terms of the GNU Lesser General Public
2243 License as published by the Free Software Foundation; either
2244 version 2.1 of the License, or (at your option) any later version.
2245
2246 This library is distributed in the hope that it will be useful,
2247 but WITHOUT ANY WARRANTY; without even the implied warranty of
2248 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2249 Lesser General Public License for more details.
2250
2251 You should have received a copy of the GNU Lesser General Public License
2252 along with this program. If not, see <http://www.gnu.org/licenses/>.
2253
2254libapetag - Library for manipulating APE tags.
2255<http://src.gnu-darwin.org/ports/audio/easytag/work/easytag-2.1/src/libapetag/>
2256
2257 Copyright (c) 2002 Artur Polaczynski (Ar't) All rights reserved.
2258
2259 This program is free software; you can redistribute it and/or modify
2260 it under the terms of the GNU Lesser General Public License as
2261 published by the Free Software Foundation; either version 2.1
2262 of the License, or (at your option) any later version.
2263
2264 This program is distributed in the hope that it will be useful,
2265 but WITHOUT ANY WARRANTY; without even the implied warranty of
2266 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2267 GNU Lesser General Public License for more details.
2268
2269 You should have received a copy of the GNU Lesser General Public License
2270 along with this program. If not, see <http://www.gnu.org/licenses/>.
2271
2272libbluray - Blu-ray disc playback support library
2273
2274 Copyright (C) 2010, hpi1
2275 Copyright (C) 2010, fraxinas
2276 Copyright (C) 2010, John Stebbins
2277 Copyright (C) 2010, Joakim
2278 Copyright (C) 2010, Obliter0n
2279 Copyright (C) 2010, William Hahne
2280
2281 This library is free software; you can redistribute it and/or
2282 modify it under the terms of the GNU Lesser General Public
2283 License as published by the Free Software Foundation; either
2284 version 2.1 of the License, or (at your option) any later version.
2285
2286 This library is distributed in the hope that it will be useful,
2287 but WITHOUT ANY WARRANTY; without even the implied warranty of
2288 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2289 Lesser General Public License for more details.
2290
2291 You should have received a copy of the GNU Lesser General Public License
2292 along with this library. If not, see <http://www.gnu.org/licenses/>.
2293
2294libexif - library to parse EXIF files
2295
2296 Copyright (C) 2001-2009, Lutz Müller <urc8@rz.uni-karlsruhe.de>
2297 Copyright (C) 2004-2009, Jan Patera <patera@users.sourceforge.net>
2298 Copyright (C) 2004, Joerg Hoh<joerg@devone.org>
2299 Copyright (C) 2005-2006, Hubert Figuiere <hub@figuiere.net>
2300 Copyright (C) 2002-2005, Hans Ulrich Niedermann <gp@n-dimensional.de>
2301 Copyright (C) 2007-2010, Dan Fandrich <dan@coneharvesters.com>
2302
2303 This library is free software; you can redistribute it and/or
2304 modify it under the terms of the GNU Lesser General Public
2305 License as published by the Free Software Foundation; either
2306 version 2.1 of the License, or (at your option) any later version.
2307
2308 This library is distributed in the hope that it will be useful,
2309 but WITHOUT ANY WARRANTY; without even the implied warranty of
2310 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2311 Lesser General Public License for more details.
2312
2313 You should have received a copy of the GNU Lesser General Public License
2314 along with this library. If not, see <http://www.gnu.org/licenses/>.
2315
2316libnfs - NFS client library
2317
2318 Copyright (C) 2010-2011 Ronnie Sahlberg <ronniesahlberg@gmail.com>
2319
2320 This library is free software; you can redistribute it and/or
2321 modify it under the terms of the GNU Lesser General Public
2322 License as published by the Free Software Foundation; either
2323 version 2.1 of the License, or (at your option) any later version.
2324
2325 This library is distributed in the hope that it will be useful,
2326 but WITHOUT ANY WARRANTY; without even the implied warranty of
2327 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2328 Lesser General Public License for more details.
2329
2330 You should have received a copy of the GNU Lesser General Public License
2331 along with this library. If not, see <http://www.gnu.org/licenses/>.
2332
2333libsquish - Open source DXT compression library
2334
2335 Copyright (C) 2006 Simon Brown <si@sjbrown.co.uk>
2336
2337 Permission is hereby granted, free of charge, to any person obtaining
2338 a copy of this software and associated documentation files (the
2339 "Software"), to deal in the Software without restriction, including
2340 without limitation the rights to use, copy, modify, merge, publish,
2341 distribute, sublicense, and/or sell copies of the Software, and to
2342 permit persons to whom the Software is furnished to do so, subject to
2343 the following conditions:
2344
2345 The above copyright notice and this permission notice shall be included
2346 in all copies or substantial portions of the Software.
2347
2348 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2349 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2350 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
2351 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
2352 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2353 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2354 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2355
2356LZO Library - LZO real-time data compression library
2357
2358 Copyright (C) 1996-1997 Markus Franz Xaver Johannes Oberhumer
2359
2360 The LZO library is free software; you can redistribute it and/or
2361 modify it under the terms of the GNU General Public License as
2362 published by the Free Software Foundation; either version 2 of
2363 the License, or (at your option) any later version.
2364
2365 The LZO library is distributed in the hope that it will be useful,
2366 but WITHOUT ANY WARRANTY; without even the implied warranty of
2367 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2368 GNU General Public License for more details.
2369
2370 You should have received a copy of the GNU General Public License
2371 along with this program. If not, see <http://www.gnu.org/licenses/>.
2372
2373Licenses:
2374
2375License: GPL
2376
2377A copy of the GPL can be found on Debian systems at
2378/usr/share/common-licenses/GPL.
2379
2380License: LGPL
2381
2382A copy of the LGPL can be found on Debian systems at
2383/usr/share/common-licenses/LGPL.
2384
2385License: FTL
2386 The FreeType Project LICENSE
2387 ----------------------------
2388
2389 2006-Jan-27
2390
2391 Copyright 1996-2002, 2006 by
2392 David Turner, Robert Wilhelm, and Werner Lemberg
2393
2394
2395
2396Introduction
2397============
2398
2399 The FreeType Project is distributed in several archive packages;
2400 some of them may contain, in addition to the FreeType font engine,
2401 various tools and contributions which rely on, or relate to, the
2402 FreeType Project.
2403
2404 This license applies to all files found in such packages, and
2405 which do not fall under their own explicit license. The license
2406 affects thus the FreeType font engine, the test programs,
2407 documentation and makefiles, at the very least.
2408
2409 This license was inspired by the BSD, Artistic, and IJG
2410 (Independent JPEG Group) licenses, which all encourage inclusion
2411 and use of free software in commercial and freeware products
2412 alike. As a consequence, its main points are that:
2413
2414 o We don't promise that this software works. However, we will be
2415 interested in any kind of bug reports. (`as is' distribution)
2416
2417 o You can use this software for whatever you want, in parts or
2418 full form, without having to pay us. (`royalty-free' usage)
2419
2420 o You may not pretend that you wrote this software. If you use
2421 it, or only parts of it, in a program, you must acknowledge
2422 somewhere in your documentation that you have used the
2423 FreeType code. (`credits')
2424
2425 We specifically permit and encourage the inclusion of this
2426 software, with or without modifications, in commercial products.
2427 We disclaim all warranties covering The FreeType Project and
2428 assume no liability related to The FreeType Project.
2429
2430
2431 Finally, many people asked us for a preferred form for a
2432 credit/disclaimer to use in compliance with this license. We thus
2433 encourage you to use the following text:
2434
2435 """
2436 Portions of this software are copyright © <year> The FreeType
2437 Project (www.freetype.org). All rights reserved.
2438 """
2439
2440 Please replace <year> with the value from the FreeType version you
2441 actually use.
2442
2443
2444Legal Terms
2445===========
2446
24470. Definitions
2448--------------
2449
2450 Throughout this license, the terms `package', `FreeType Project',
2451 and `FreeType archive' refer to the set of files originally
2452 distributed by the authors (David Turner, Robert Wilhelm, and
2453 Werner Lemberg) as the `FreeType Project', be they named as alpha,
2454 beta or final release.
2455
2456 `You' refers to the licensee, or person using the project, where
2457 `using' is a generic term including compiling the project's source
2458 code as well as linking it to form a `program' or `executable'.
2459 This program is referred to as `a program using the FreeType
2460 engine'.
2461
2462 This license applies to all files distributed in the original
2463 FreeType Project, including all source code, binaries and
2464 documentation, unless otherwise stated in the file in its
2465 original, unmodified form as distributed in the original archive.
2466 If you are unsure whether or not a particular file is covered by
2467 this license, you must contact us to verify this.
2468
2469 The FreeType Project is copyright (C) 1996-2000 by David Turner,
2470 Robert Wilhelm, and Werner Lemberg. All rights reserved except as
2471 specified below.
2472
24731. No Warranty
2474--------------
2475
2476 THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
2477 KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
2478 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
2479 PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
2480 BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
2481 USE, OF THE FREETYPE PROJECT.
2482
24832. Redistribution
2484-----------------
2485
2486 This license grants a worldwide, royalty-free, perpetual and
2487 irrevocable right and license to use, execute, perform, compile,
2488 display, copy, create derivative works of, distribute and
2489 sublicense the FreeType Project (in both source and object code
2490 forms) and derivative works thereof for any purpose; and to
2491 authorize others to exercise some or all of the rights granted
2492 herein, subject to the following conditions:
2493
2494 o Redistribution of source code must retain this license file
2495 (`FTL.TXT') unaltered; any additions, deletions or changes to
2496 the original files must be clearly indicated in accompanying
2497 documentation. The copyright notices of the unaltered,
2498 original files must be preserved in all copies of source
2499 files.
2500
2501 o Redistribution in binary form must provide a disclaimer that
2502 states that the software is based in part of the work of the
2503 FreeType Team, in the distribution documentation. We also
2504 encourage you to put an URL to the FreeType web page in your
2505 documentation, though this isn't mandatory.
2506
2507 These conditions apply to any software derived from or based on
2508 the FreeType Project, not just the unmodified files. If you use
2509 our work, you must acknowledge us. However, no fee need be paid
2510 to us.
2511
25123. Advertising
2513--------------
2514
2515 Neither the FreeType authors and contributors nor you shall use
2516 the name of the other for commercial, advertising, or promotional
2517 purposes without specific prior written permission.
2518
2519 We suggest, but do not require, that you use one or more of the
2520 following phrases to refer to this software in your documentation
2521 or advertising materials: `FreeType Project', `FreeType Engine',
2522 `FreeType library', or `FreeType Distribution'.
2523
2524 As you have not signed this license, you are not required to
2525 accept it. However, as the FreeType Project is copyrighted
2526 material, only this license, or another one contracted with the
2527 authors, grants you the right to use, distribute, and modify it.
2528 Therefore, by using, distributing, or modifying the FreeType
2529 Project, you indicate that you understand and accept all the terms
2530 of this license.
2531
25324. Contacts
2533-----------
2534
2535 There are two mailing lists related to FreeType:
2536
2537 o freetype@nongnu.org
2538
2539 Discusses general use and applications of FreeType, as well as
2540 future and wanted additions to the library and distribution.
2541 If you are looking for support, start in this list if you
2542 haven't found anything to help you in the documentation.
2543
2544 o freetype-devel@nongnu.org
2545
2546 Discusses bugs, as well as engine internals, design issues,
2547 specific licenses, porting, etc.
2548
2549 Our home page can be found at
2550
2551 http://www.freetype.org
2552
2553
2554--- end of FTL ---
2555
2556License: PSF License for Python 2.4
2557
2558A. HISTORY OF THE SOFTWARE
2559==========================
2560
2561Python was created in the early 1990s by Guido van Rossum at Stichting
2562Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
2563as a successor of a language called ABC. Guido remains Python's
2564principal author, although it includes many contributions from others.
2565
2566In 1995, Guido continued his work on Python at the Corporation for
2567National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
2568in Reston, Virginia where he released several versions of the
2569software.
2570
2571In May 2000, Guido and the Python core development team moved to
2572BeOpen.com to form the BeOpen PythonLabs team. In October of the same
2573year, the PythonLabs team moved to Digital Creations (now Zope
2574Corporation, see http://www.zope.com). In 2001, the Python Software
2575Foundation (PSF, see http://www.python.org/psf/) was formed, a
2576non-profit organization created specifically to own Python-related
2577Intellectual Property. Zope Corporation is a sponsoring member of
2578the PSF.
2579
2580All Python releases are Open Source (see http://www.opensource.org for
2581the Open Source Definition). Historically, most, but not all, Python
2582releases have also been GPL-compatible; the table below summarizes
2583the various releases.
2584
2585 Release Derived Year Owner GPL-
2586 from compatible? (1)
2587
2588 0.9.0 thru 1.2 1991-1995 CWI yes
2589 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
2590 1.6 1.5.2 2000 CNRI no
2591 2.0 1.6 2000 BeOpen.com no
2592 1.6.1 1.6 2001 CNRI yes (2)
2593 2.1 2.0+1.6.1 2001 PSF no
2594 2.0.1 2.0+1.6.1 2001 PSF yes
2595 2.1.1 2.1+2.0.1 2001 PSF yes
2596 2.2 2.1.1 2001 PSF yes
2597 2.1.2 2.1.1 2002 PSF yes
2598 2.1.3 2.1.2 2002 PSF yes
2599 2.2.1 2.2 2002 PSF yes
2600 2.2.2 2.2.1 2002 PSF yes
2601 2.2.3 2.2.2 2003 PSF yes
2602 2.3 2.2.2 2002-2003 PSF yes
2603 2.3.1 2.3 2002-2003 PSF yes
2604 2.3.2 2.3.1 2002-2003 PSF yes
2605 2.3.3 2.3.2 2002-2003 PSF yes
2606 2.3.4 2.3.3 2004 PSF yes
2607 2.3.5 2.3.4 2005 PSF yes
2608 2.4 2.3 2004 PSF yes
2609 2.4.1 2.4 2005 PSF yes
2610 2.4.2 2.4.1 2005 PSF yes
2611 2.4.3 2.4.2 2006 PSF yes
2612 2.4.4 2.4.3 2006 PSF yes
2613
2614Footnotes:
2615
2616(1) GPL-compatible doesn't mean that we're distributing Python under
2617 the GPL. All Python licenses, unlike the GPL, let you distribute
2618 a modified version without making your changes open source. The
2619 GPL-compatible licenses make it possible to combine Python with
2620 other software that is released under the GPL; the others don't.
2621
2622(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
2623 because its license has a choice of law clause. According to
2624 CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
2625 is "not incompatible" with the GPL.
2626
2627Thanks to the many outside volunteers who have worked under Guido's
2628direction to make these releases possible.
2629
2630
2631B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
2632===============================================================
2633
2634PSF LICENSE AGREEMENT FOR PYTHON 2.4
2635------------------------------------
2636
26371. This LICENSE AGREEMENT is between the Python Software Foundation
2638("PSF"), and the Individual or Organization ("Licensee") accessing and
2639otherwise using Python 2.4 software in source or binary form and its
2640associated documentation.
2641
26422. Subject to the terms and conditions of this License Agreement, PSF
2643hereby grants Licensee a nonexclusive, royalty-free, world-wide
2644license to reproduce, analyze, test, perform and/or display publicly,
2645prepare derivative works, distribute, and otherwise use Python 2.4
2646alone or in any derivative version, provided, however, that PSF's
2647License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
26482001, 2002, 2003, 2004 Python Software Foundation; All Rights Reserved"
2649are retained in Python 2.4 alone or in any derivative version prepared
2650by Licensee.
2651
26523. In the event Licensee prepares a derivative work that is based on
2653or incorporates Python 2.4 or any part thereof, and wants to make
2654the derivative work available to others as provided herein, then
2655Licensee hereby agrees to include in any such work a brief summary of
2656the changes made to Python 2.4.
2657
26584. PSF is making Python 2.4 available to Licensee on an "AS IS"
2659basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
2660IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
2661DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
2662FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.4 WILL NOT
2663INFRINGE ANY THIRD PARTY RIGHTS.
2664
26655. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
26662.4 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
2667A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.4,
2668OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
2669
26706. This License Agreement will automatically terminate upon a material
2671breach of its terms and conditions.
2672
26737. Nothing in this License Agreement shall be deemed to create any
2674relationship of agency, partnership, or joint venture between PSF and
2675Licensee. This License Agreement does not grant permission to use PSF
2676trademarks or trade name in a trademark sense to endorse or promote
2677products or services of Licensee, or any third party.
2678
26798. By copying, installing or otherwise using Python 2.4, Licensee
2680agrees to be bound by the terms and conditions of this License
2681Agreement.
2682
2683
2684BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
2685-------------------------------------------
2686
2687BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
2688
26891. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
2690office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
2691Individual or Organization ("Licensee") accessing and otherwise using
2692this software in source or binary form and its associated
2693documentation ("the Software").
2694
26952. Subject to the terms and conditions of this BeOpen Python License
2696Agreement, BeOpen hereby grants Licensee a non-exclusive,
2697royalty-free, world-wide license to reproduce, analyze, test, perform
2698and/or display publicly, prepare derivative works, distribute, and
2699otherwise use the Software alone or in any derivative version,
2700provided, however, that the BeOpen Python License is retained in the
2701Software, alone or in any derivative version prepared by Licensee.
2702
27033. BeOpen is making the Software available to Licensee on an "AS IS"
2704basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
2705IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
2706DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
2707FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
2708INFRINGE ANY THIRD PARTY RIGHTS.
2709
27104. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
2711SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
2712AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
2713DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
2714
27155. This License Agreement will automatically terminate upon a material
2716breach of its terms and conditions.
2717
27186. This License Agreement shall be governed by and interpreted in all
2719respects by the law of the State of California, excluding conflict of
2720law provisions. Nothing in this License Agreement shall be deemed to
2721create any relationship of agency, partnership, or joint venture
2722between BeOpen and Licensee. This License Agreement does not grant
2723permission to use BeOpen trademarks or trade names in a trademark
2724sense to endorse or promote products or services of Licensee, or any
2725third party. As an exception, the "BeOpen Python" logos available at
2726http://www.pythonlabs.com/logos.html may be used according to the
2727permissions granted on that web page.
2728
27297. By copying, installing or otherwise using the software, Licensee
2730agrees to be bound by the terms and conditions of this License
2731Agreement.
2732
2733
2734CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
2735---------------------------------------
2736
27371. This LICENSE AGREEMENT is between the Corporation for National
2738Research Initiatives, having an office at 1895 Preston White Drive,
2739Reston, VA 20191 ("CNRI"), and the Individual or Organization
2740("Licensee") accessing and otherwise using Python 1.6.1 software in
2741source or binary form and its associated documentation.
2742
27432. Subject to the terms and conditions of this License Agreement, CNRI
2744hereby grants Licensee a nonexclusive, royalty-free, world-wide
2745license to reproduce, analyze, test, perform and/or display publicly,
2746prepare derivative works, distribute, and otherwise use Python 1.6.1
2747alone or in any derivative version, provided, however, that CNRI's
2748License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
27491995-2001 Corporation for National Research Initiatives; All Rights
2750Reserved" are retained in Python 1.6.1 alone or in any derivative
2751version prepared by Licensee. Alternately, in lieu of CNRI's License
2752Agreement, Licensee may substitute the following text (omitting the
2753quotes): "Python 1.6.1 is made available subject to the terms and
2754conditions in CNRI's License Agreement. This Agreement together with
2755Python 1.6.1 may be located on the Internet using the following
2756unique, persistent identifier (known as a handle): 1895.22/1013. This
2757Agreement may also be obtained from a proxy server on the Internet
2758using the following URL: http://hdl.handle.net/1895.22/1013".
2759
27603. In the event Licensee prepares a derivative work that is based on
2761or incorporates Python 1.6.1 or any part thereof, and wants to make
2762the derivative work available to others as provided herein, then
2763Licensee hereby agrees to include in any such work a brief summary of
2764the changes made to Python 1.6.1.
2765
27664. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
2767basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
2768IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
2769DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
2770FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
2771INFRINGE ANY THIRD PARTY RIGHTS.
2772
27735. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
27741.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
2775A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
2776OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
2777
27786. This License Agreement will automatically terminate upon a material
2779breach of its terms and conditions.
2780
27817. This License Agreement shall be governed by the federal
2782intellectual property law of the United States, including without
2783limitation the federal copyright law, and, to the extent such
2784U.S. federal law does not apply, by the law of the Commonwealth of
2785Virginia, excluding Virginia's conflict of law provisions.
2786Notwithstanding the foregoing, with regard to derivative works based
2787on Python 1.6.1 that incorporate non-separable material that was
2788previously distributed under the GNU General Public License (GPL), the
2789law of the Commonwealth of Virginia shall govern this License
2790Agreement only as to issues arising under or with respect to
2791Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
2792License Agreement shall be deemed to create any relationship of
2793agency, partnership, or joint venture between CNRI and Licensee. This
2794License Agreement does not grant permission to use CNRI trademarks or
2795trade name in a trademark sense to endorse or promote products or
2796services of Licensee, or any third party.
2797
27988. By clicking on the "ACCEPT" button where indicated, or by copying,
2799installing or otherwise using Python 1.6.1, Licensee agrees to be
2800bound by the terms and conditions of this License Agreement.
2801
2802 ACCEPT
2803
2804
2805CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
2806--------------------------------------------------
2807
2808Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
2809The Netherlands. All rights reserved.
2810
2811Permission to use, copy, modify, and distribute this software and its
2812documentation for any purpose and without fee is hereby granted,
2813provided that the above copyright notice appear in all copies and that
2814both that copyright notice and this permission notice appear in
2815supporting documentation, and that the name of Stichting Mathematisch
2816Centrum or CWI not be used in advertising or publicity pertaining to
2817distribution of the software without specific, written prior
2818permission.
2819
2820STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
2821THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
2822FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
2823FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
2824WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
2825ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
2826OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2827
2828-- End of PSF License for Python 2.4 --
2829
2830License: IJG License
2831
2832LEGAL ISSUES
2833============
2834
2835In plain English:
2836
28371. We don't promise that this software works. (But if you find any bugs,
2838 please let us know!)
28392. You can use this software for whatever you want. You don't have to pay us.
28403. You may not pretend that you wrote this software. If you use it in a
2841 program, you must acknowledge somewhere in your documentation that
2842 you've used the IJG code.
2843
2844In legalese:
2845
2846The authors make NO WARRANTY or representation, either express or implied,
2847with respect to this software, its quality, accuracy, merchantability, or
2848fitness for a particular purpose. This software is provided "AS IS", and you,
2849its user, assume the entire risk as to its quality and accuracy.
2850
2851This software is copyright (C) 1991-1998, Thomas G. Lane.
2852All Rights Reserved except as specified below.
2853
2854Permission is hereby granted to use, copy, modify, and distribute this
2855software (or portions thereof) for any purpose, without fee, subject to these
2856conditions:
2857(1) If any part of the source code for this software is distributed, then this
2858README file must be included, with this copyright and no-warranty notice
2859unaltered; and any additions, deletions, or changes to the original files
2860must be clearly indicated in accompanying documentation.
2861(2) If only executable code is distributed, then the accompanying
2862documentation must state that "this software is based in part on the work of
2863the Independent JPEG Group".
2864(3) Permission for use of this software is granted only if the user accepts
2865full responsibility for any undesirable consequences; the authors accept
2866NO LIABILITY for damages of any kind.
2867
2868These conditions apply to any software derived from or based on the IJG code,
2869not just to the unmodified library. If you use our work, you ought to
2870acknowledge us.
2871
2872Permission is NOT granted for the use of any IJG author's name or company name
2873in advertising or publicity relating to this software or products derived from
2874it. This software may be referred to only as "the Independent JPEG Group's
2875software".
2876
2877We specifically permit and encourage the use of this software as the basis of
2878commercial products, provided that all warranty or liability claims are
2879assumed by the product vendor.
2880
2881
2882ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
2883sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
2884ansi2knr.c is NOT covered by the above copyright and conditions, but instead
2885by the usual distribution terms of the Free Software Foundation; principally,
2886that you must include source code if you redistribute it. (See the file
2887ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
2888of any program generated from the IJG code, this does not limit you more than
2889the foregoing paragraphs do.
2890
2891The Unix configuration script "configure" was produced with GNU Autoconf.
2892It is copyright by the Free Software Foundation but is freely distributable.
2893The same holds for its supporting scripts (config.guess, config.sub,
2894ltconfig, ltmain.sh). Another support script, install-sh, is copyright
2895by M.I.T. but is also freely distributable.
2896
2897It appears that the arithmetic coding option of the JPEG spec is covered by
2898patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot
2899legally be used without obtaining one or more licenses. For this reason,
2900support for arithmetic coding has been removed from the free JPEG software.
2901(Since arithmetic coding provides only a marginal gain over the unpatented
2902Huffman mode, it is unlikely that very many implementations will support it.)
2903So far as we are aware, there are no patent restrictions on the remaining
2904code.
2905
2906The IJG distribution formerly included code to read and write GIF files.
2907To avoid entanglement with the Unisys LZW patent, GIF reading support has
2908been removed altogether, and the GIF writer has been simplified to produce
2909"uncompressed GIFs". This technique does not use the LZW algorithm; the
2910resulting GIF files are larger than usual, but are readable by all standard
2911GIF decoders.
2912
2913We are required to state that
2914 "The Graphics Interchange Format(c) is the Copyright property of
2915 CompuServe Incorporated. GIF(sm) is a Service Mark property of
2916 CompuServe Incorporated."
2917
2918-- End of IJG License --
2919
2920License: OpenSSH
2921
2922This file is part of the OpenSSH software.
2923
2924The licences which components of this software fall under are as
2925follows. First, we will summarize and say that all components
2926are under a BSD licence, or a licence more free than that.
2927
2928OpenSSH contains no GPL code.
2929
29301)
2931 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
2932 * All rights reserved
2933 *
2934 * As far as I am concerned, the code I have written for this software
2935 * can be used freely for any purpose. Any derived versions of this
2936 * software must be clearly marked as such, and if the derived work is
2937 * incompatible with the protocol description in the RFC file, it must be
2938 * called by a name other than "ssh" or "Secure Shell".
2939
2940 [Tatu continues]
2941 * However, I am not implying to give any licenses to any patents or
2942 * copyrights held by third parties, and the software includes parts that
2943 * are not under my direct control. As far as I know, all included
2944 * source code is used in accordance with the relevant license agreements
2945 * and can be used freely for any purpose (the GNU license being the most
2946 * restrictive); see below for details.
2947
2948 [However, none of that term is relevant at this point in time. All of
2949 these restrictively licenced software components which he talks about
2950 have been removed from OpenSSH, i.e.,
2951
2952 - RSA is no longer included, found in the OpenSSL library
2953 - IDEA is no longer included, its use is deprecated
2954 - DES is now external, in the OpenSSL library
2955 - GMP is no longer used, and instead we call BN code from OpenSSL
2956 - Zlib is now external, in a library
2957 - The make-ssh-known-hosts script is no longer included
2958 - TSS has been removed
2959 - MD5 is now external, in the OpenSSL library
2960 - RC4 support has been replaced with ARC4 support from OpenSSL
2961 - Blowfish is now external, in the OpenSSL library
2962
2963 [The licence continues]
2964
2965 Note that any information and cryptographic algorithms used in this
2966 software are publicly available on the Internet and at any major
2967 bookstore, scientific library, and patent office worldwide. More
2968 information can be found e.g. at "http://www.cs.hut.fi/crypto".
2969
2970 The legal status of this program is some combination of all these
2971 permissions and restrictions. Use only at your own responsibility.
2972 You will be responsible for any legal consequences yourself; I am not
2973 making any claims whether possessing or using this is legal or not in
2974 your country, and I am not taking any responsibility on your behalf.
2975
2976
2977 NO WARRANTY
2978
2979 BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
2980 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
2981 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
2982 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
2983 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
2984 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
2985 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
2986 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
2987 REPAIR OR CORRECTION.
2988
2989 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
2990 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
2991 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
2992 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
2993 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
2994 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
2995 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
2996 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
2997 POSSIBILITY OF SUCH DAMAGES.
2998
29992)
3000 The 32-bit CRC compensation attack detector in deattack.c was
3001 contributed by CORE SDI S.A. under a BSD-style license.
3002
3003 * Cryptographic attack detector for ssh - source code
3004 *
3005 * Copyright (c) 1998 CORE SDI S.A., Buenos Aires, Argentina.
3006 *
3007 * All rights reserved. Redistribution and use in source and binary
3008 * forms, with or without modification, are permitted provided that
3009 * this copyright notice is retained.
3010 *
3011 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
3012 * WARRANTIES ARE DISCLAIMED. IN NO EVENT SHALL CORE SDI S.A. BE
3013 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR
3014 * CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR MISUSE OF THIS
3015 * SOFTWARE.
3016 *
3017 * Ariel Futoransky <futo@core-sdi.com>
3018 * <http://www.core-sdi.com>
3019
30203)
3021 ssh-keyscan was contributed by David Mazieres under a BSD-style
3022 license.
3023
3024 * Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
3025 *
3026 * Modification and redistribution in source and binary forms is
3027 * permitted provided that due credit is given to the author and the
3028 * OpenBSD project by leaving this copyright notice intact.
3029
30304)
3031 The Rijndael implementation by Vincent Rijmen, Antoon Bosselaers
3032 and Paulo Barreto is in the public domain and distributed
3033 with the following license:
3034
3035 * @version 3.0 (December 2000)
3036 *
3037 * Optimised ANSI C code for the Rijndael cipher (now AES)
3038 *
3039 * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
3040 * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
3041 * @author Paulo Barreto <paulo.barreto@terra.com.br>
3042 *
3043 * This code is hereby placed in the public domain.
3044 *
3045 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
3046 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
3047 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
3048 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
3049 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
3050 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
3051 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
3052 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
3053 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
3054 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
3055 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3056
30575)
3058 One component of the ssh source code is under a 3-clause BSD license,
3059 held by the University of California, since we pulled these parts from
3060 original Berkeley code.
3061
3062 * Copyright (c) 1983, 1990, 1992, 1993, 1995
3063 * The Regents of the University of California. All rights reserved.
3064 *
3065 * Redistribution and use in source and binary forms, with or without
3066 * modification, are permitted provided that the following conditions
3067 * are met:
3068 * 1. Redistributions of source code must retain the above copyright
3069 * notice, this list of conditions and the following disclaimer.
3070 * 2. Redistributions in binary form must reproduce the above copyright
3071 * notice, this list of conditions and the following disclaimer in the
3072 * documentation and/or other materials provided with the distribution.
3073 * 3. Neither the name of the University nor the names of its contributors
3074 * may be used to endorse or promote products derived from this software
3075 * without specific prior written permission.
3076 *
3077 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
3078 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
3079 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
3080 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
3081 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
3082 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
3083 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
3084 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
3085 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
3086 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
3087 * THE POSSIBILITY OF SUCH DAMAGE.
3088
30896)
3090 Remaining components of the software are provided under a standard
3091 2-term BSD licence with the following names as copyright holders:
3092
3093 Markus Friedl
3094 Theo de Raadt
3095 Niels Provos
3096 Dug Song
3097 Aaron Campbell
3098 Damien Miller
3099 Kevin Steves
3100 Daniel Kouril
3101 Wesley Griffin
3102 Per Allansson
3103 Nils Nordman
3104 Simon Wilkinson
3105
3106 * Redistribution and use in source and binary forms, with or without
3107 * modification, are permitted provided that the following conditions
3108 * are met:
3109 * 1. Redistributions of source code must retain the above copyright
3110 * notice, this list of conditions and the following disclaimer.
3111 * 2. Redistributions in binary form must reproduce the above copyright
3112 * notice, this list of conditions and the following disclaimer in the
3113 * documentation and/or other materials provided with the distribution.
3114 *
3115 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
3116 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
3117 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
3118 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
3119 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3120 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3121 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3122 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3123 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3124 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3125
3126-- End of OpenSSH License --
diff --git a/project/cmake/cpack/deb/lintian/overrides/kodi b/project/cmake/cpack/deb/lintian/overrides/kodi
deleted file mode 100644
index d9536c4..0000000
--- a/project/cmake/cpack/deb/lintian/overrides/kodi
+++ /dev/null
@@ -1 +0,0 @@
1kodi: description-starts-with-package-name
diff --git a/project/cmake/cpack/deb/menu/kodi b/project/cmake/cpack/deb/menu/kodi
deleted file mode 100644
index 0c221a4..0000000
--- a/project/cmake/cpack/deb/menu/kodi
+++ /dev/null
@@ -1,2 +0,0 @@
1?package(kodi):needs="X11" section="Applications/Video" \
2 title="kodi" command="/usr/bin/kodi"
diff --git a/project/cmake/cpack/deb/package-description.txt b/project/cmake/cpack/deb/package-description.txt
deleted file mode 100644
index 961e1c8..0000000
--- a/project/cmake/cpack/deb/package-description.txt
+++ /dev/null
@@ -1,16 +0,0 @@
1Kodi, formerly known as XBMC Media Center, is an award winning free and open
2source software media-player and entertainment hub for all your digital media.
3Kodi is available for Linux, Mac OS X (Leopard, Tiger and Apple TV) and
4Microsoft Windows, as well as the original Xbox game console. Created in 2003
5by a group of like minded programmers, Kodi is a non-profit project run and
6developed by volunteers located around the world. More than 50 software
7developers have contributed to Kodi, and 100-plus translators have worked to
8expand its reach, making it available in more than 30 languages.
9.
10While Kodi functions very well as a standard media player application for your
11computer, it has been designed to be the perfect companion for your HTPC.
12Supporting an almost endless range of remote controls, and combined with its
13beautiful interface and powerful skinning engine, Kodi feels very natural to
14use from the couch and is the ideal solution for your home theater. Once
15installed, your computer will become a fully functional multimedia jukebox.
16. \ No newline at end of file
diff --git a/project/cmake/cpack/deb/packages/kodi-addon-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-addon-dev.txt.in
deleted file mode 100644
index aebae7e..0000000
--- a/project/cmake/cpack/deb/packages/kodi-addon-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-addon-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-addon-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS
19PACKAGE_RECOMMENDS @APP_NAME_LC@-audio-dev, @APP_NAME_LC@-inputstream-dev, @APP_NAME_LC@-pvr-dev, @APP_NAME_LC@-screensaver-dev, @APP_NAME_LC@-visualization-dev
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-addon-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (general add-on dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-audio-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-audio-dev.txt.in
deleted file mode 100644
index f03a64d..0000000
--- a/project/cmake/cpack/deb/packages/kodi-audio-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-audio-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-audio-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-audio-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (audio add-ons dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s audio add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-bin.txt.in b/project/cmake/cpack/deb/packages/kodi-bin.txt.in
deleted file mode 100644
index 8ee33d3..0000000
--- a/project/cmake/cpack/deb/packages/kodi-bin.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-bin debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-bin
14PACKAGE_ARCHITECTURE
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS libasound2 (>= 1.0.27), libavahi-client3 (>= 0.6.16), libavahi-common3 (>= 0.6.16), libbluetooth3 (>= 4.91), libbz2-1.0, libc6 (>= 2.15), libcdio13 (>= 0.83), libcrossguid1, libdbus-1-3 (>= 1.9.14), libdrm2 (>= 2.4.16), libegl1-mesa (>= 7.8.1) | libegl1-x11, libexpat1 (>= 2.0.1), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:3.0), libgl1-mesa-glx | libgl1, libgnutls30 (>= 3.4.2), liblzma5 (>= 5.1.1alpha+20120614), liblzo2-2, libmicrohttpd10 (>= 0.9.20), libmysqlclient20 (>= 5.7.11), libpcre3, libpcrecpp0v5 (>= 7.7), libpulse0 (>= 0.99.4), libpython2.7 (>= 2.7), libsmbclient (>= 2:4.0.3+dfsg1), libsqlite3-0 (>= 3.6.11), libssh-4 (>= 0.6.1), libstdc++6 (>= 5.2), libtag1v5 (>= 1.9.1-2.4ubuntu1), libtinyxml2.6.2v5, libudev1 (>= 183), libva-x11-1 (>= 1.0.3), libva1 (>= 1.4.0), libx11-6, libxext6, libxml2 (>= 2.7.4), libxrandr2 (>= 2:1.2.99.3), libxslt1.1 (>= 1.1.25), libyajl2 (>= 2.0.4), zlib1g (>= 1:1.2.0.2)
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS xbmc-bin (<< 2:14.0~git20141019), xbmc-common
22PACKAGE_REPLACES xbmc-bin (<< 2:14.0~git20141019), xbmc-common
23PACKAGE_PROVIDES @APP_NAME_LC@-bin, @APP_NAME_LC@-common, xbmc-bin, xbmc-common
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (binary data package)
25PACKAGE_DESCRIPTION_FOOTER This package contains @APP_NAME@'s binary data.
diff --git a/project/cmake/cpack/deb/packages/kodi-eventclients-common.txt.in b/project/cmake/cpack/deb/packages/kodi-eventclients-common.txt.in
deleted file mode 100644
index 6559842..0000000
--- a/project/cmake/cpack/deb/packages/kodi-eventclients-common.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-eventclients-common debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-eventclients-common
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-eventclients-common
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (event client common package)
25PACKAGE_DESCRIPTION_FOOTER This is the common package for @APP_NAME@'s event client.
diff --git a/project/cmake/cpack/deb/packages/kodi-eventclients-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-eventclients-dev.txt.in
deleted file mode 100644
index 4b166b5..0000000
--- a/project/cmake/cpack/deb/packages/kodi-eventclients-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-eventclients-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-eventclients-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-eventclients-common (= @CPACK_DEBIAN_PACKAGE_VERSION@)
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-eventclients-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (event client dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s event client.
diff --git a/project/cmake/cpack/deb/packages/kodi-eventclients-ps3.txt.in b/project/cmake/cpack/deb/packages/kodi-eventclients-ps3.txt.in
deleted file mode 100644
index bd432a2..0000000
--- a/project/cmake/cpack/deb/packages/kodi-eventclients-ps3.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-eventclients-ps3 debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-eventclients-ps3
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-eventclients-common (= @CPACK_DEBIAN_PACKAGE_VERSION@), python-bluez | python-lightblue
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-eventclients-ps3
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (PS3 event client package)
25PACKAGE_DESCRIPTION_FOOTER This is the PS3 package for @APP_NAME@'s event client.
diff --git a/project/cmake/cpack/deb/packages/kodi-eventclients-wiiremote.txt.in b/project/cmake/cpack/deb/packages/kodi-eventclients-wiiremote.txt.in
deleted file mode 100644
index 5973784..0000000
--- a/project/cmake/cpack/deb/packages/kodi-eventclients-wiiremote.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-eventclients-wiiremote debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-eventclients-wiiremote
14PACKAGE_ARCHITECTURE
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-eventclients-common (= @CPACK_DEBIAN_PACKAGE_VERSION@), libbluetooth3 (>= 4.91), libc6 (>= 2.14), libcwiid1 (>= 0.6.00+svn184), libgcc1 (>= 1:3.0), libstdc++6 (>= 5.2)
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-eventclients-wiiremote
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (Wii Remote event client package)
25PACKAGE_DESCRIPTION_FOOTER This is the Wii Remote package for @APP_NAME@'s event client.
diff --git a/project/cmake/cpack/deb/packages/kodi-eventclients-xbmc-send.txt.in b/project/cmake/cpack/deb/packages/kodi-eventclients-xbmc-send.txt.in
deleted file mode 100644
index 0062479..0000000
--- a/project/cmake/cpack/deb/packages/kodi-eventclients-xbmc-send.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-eventclients-xbmc-send debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-eventclients-xbmc-send
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-eventclients-common (= @CPACK_DEBIAN_PACKAGE_VERSION@)
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-eventclients-xbmc-send
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (@APP_NAME@-send event client package)
25PACKAGE_DESCRIPTION_FOOTER This is the Kodi-SEND package for @APP_NAME@'s event client.
diff --git a/project/cmake/cpack/deb/packages/kodi-inputstream-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-inputstream-dev.txt.in
deleted file mode 100644
index 3b4c381..0000000
--- a/project/cmake/cpack/deb/packages/kodi-inputstream-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-inputstream-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-inputstream-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-inputstream-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (inputstream add-ons dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s inputstream add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-peripheral-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-peripheral-dev.txt.in
deleted file mode 100644
index 1c41c5f..0000000
--- a/project/cmake/cpack/deb/packages/kodi-peripheral-dev.txt.in
+++ /dev/null
@@ -1,24 +0,0 @@
1# kodi-peripheral-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-peripheral-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (peripheral add-ons dev package)
24PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s peripheral add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-pvr-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-pvr-dev.txt.in
deleted file mode 100644
index 90e4a14..0000000
--- a/project/cmake/cpack/deb/packages/kodi-pvr-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-pvr-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-pvr-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-pvr-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (PVR add-ons dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s PVR add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-screensaver-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-screensaver-dev.txt.in
deleted file mode 100644
index 877c3ab..0000000
--- a/project/cmake/cpack/deb/packages/kodi-screensaver-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-screensaver-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-screensaver-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-screensaver-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (screensaver add-ons dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s screensaver add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi-tools-texturepacker.txt.in b/project/cmake/cpack/deb/packages/kodi-tools-texturepacker.txt.in
deleted file mode 100644
index c5c5f8d..0000000
--- a/project/cmake/cpack/deb/packages/kodi-tools-texturepacker.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-tools-texturepacker debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-tools-texturepacker
14PACKAGE_ARCHITECTURE
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (skin development - TexturePacker tool)
25PACKAGE_DESCRIPTION_FOOTER This is @APP_NAME@'s TexturePacker tool for skin development.
diff --git a/project/cmake/cpack/deb/packages/kodi-visualization-dev.txt.in b/project/cmake/cpack/deb/packages/kodi-visualization-dev.txt.in
deleted file mode 100644
index ecc5436..0000000
--- a/project/cmake/cpack/deb/packages/kodi-visualization-dev.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi-visualization-dev debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@-visualization-dev
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION libdevel
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-addon-dev
19PACKAGE_RECOMMENDS
20PACKAGE_SUGGESTS
21PACKAGE_BREAKS
22PACKAGE_REPLACES
23PACKAGE_PROVIDES xbmc-visualization-dev
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (visualization add-ons dev package)
25PACKAGE_DESCRIPTION_FOOTER This is the development package for @APP_NAME@'s visualization add-ons.
diff --git a/project/cmake/cpack/deb/packages/kodi.txt.in b/project/cmake/cpack/deb/packages/kodi.txt.in
deleted file mode 100644
index 4ca417b..0000000
--- a/project/cmake/cpack/deb/packages/kodi.txt.in
+++ /dev/null
@@ -1,25 +0,0 @@
1# kodi debian package metadata
2#
3# Setting PACKAGE_SHLIBDEPS to 'ON' will cause CPack to ignore PACKAGE_DEPENDS
4# content and use dpkg-shlibdeps to automatically generate the package dependency
5# list. Only useful for packages that contain binaries.
6#
7# PACKAGE_ARCHITECTURE should be set to 'all' only if package contains
8# architecture agnostic data. CPack will set proper architecture (amd64/i386/etc)
9# based on build options.
10#
11# Remaining settings are (hopefully) self-explanatory.
12
13PACKAGE_NAME @APP_NAME_LC@
14PACKAGE_ARCHITECTURE all
15PACKAGE_SECTION video
16PACKAGE_PRIORITY optional
17PACKAGE_SHLIBDEPS
18PACKAGE_DEPENDS @APP_NAME_LC@-bin (>= @CPACK_DEBIAN_PACKAGE_VERSION@), @APP_NAME_LC@-bin (<< @CPACK_DEBIAN_PACKAGE_VERSION@.1~), curl, libcurl3, mesa-utils, x11-utils, fonts-liberation | ttf-liberation, fonts-dejavu-core | ttf-dejavu-core, python-bluez | python-lightblue, python-imaging, python-simplejson, libass5 | libass4, libgif5 | libgif7, libssh-4 | libssh2-1, libnfs8 | libnfs4 | libnfs1, libbluray1, libshairplay0, libvorbisfile3, libaacs0, libcec4, libgnutls30 | libgnutls-deb0-28 | libgnutls28 | libgnutls26, libxslt1.1, libyajl2
19PACKAGE_RECOMMENDS libvdpau1, libva-intel-vaapi-driver, libva1
20PACKAGE_SUGGESTS @APP_NAME_LC@-pvr-mythtv, @APP_NAME_LC@-pvr-vuplus, @APP_NAME_LC@-pvr-vdr-vnsi, @APP_NAME_LC@-pvr-njoy, @APP_NAME_LC@-pvr-nextpvr, @APP_NAME_LC@-pvr-mediaportal-tvserver, @APP_NAME_LC@-pvr-tvheadend-hts, @APP_NAME_LC@-pvr-dvbviewer, @APP_NAME_LC@-pvr-argustv, @APP_NAME_LC@-pvr-iptvsimple, @APP_NAME_LC@-audioencoder-vorbis, @APP_NAME_LC@-audioencoder-flac, @APP_NAME_LC@-audioencoder-lame
21PACKAGE_BREAKS xbmc (<< 2:14.0~git20141019), xbmc-data, xbmc-standalone
22PACKAGE_REPLACES xbmc (<< 2:14.0~git20141019), xbmc-data, xbmc-standalone
23PACKAGE_PROVIDES @APP_NAME_LC@-data, @APP_NAME_LC@-skin-estuary, @APP_NAME_LC@-standalone, xbmc, xbmc-data, xbmc-standalone
24PACKAGE_DESCRIPTION_HEADER @APP_NAME@ Media Center (arch-independent data package)
25PACKAGE_DESCRIPTION_FOOTER This package contains @APP_NAME@'s architecture independent data.
diff --git a/project/cmake/cpack/deb/postinst b/project/cmake/cpack/deb/postinst
deleted file mode 100755
index 318d280..0000000
--- a/project/cmake/cpack/deb/postinst
+++ /dev/null
@@ -1,5 +0,0 @@
1#!/bin/sh
2set -e
3if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
4 update-menus
5fi
diff --git a/project/cmake/cpack/deb/postrm b/project/cmake/cpack/deb/postrm
deleted file mode 100755
index adc11fd..0000000
--- a/project/cmake/cpack/deb/postrm
+++ /dev/null
@@ -1,3 +0,0 @@
1#!/bin/sh
2set -e
3if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
diff --git a/project/cmake/installdata/common/addons.txt b/project/cmake/installdata/common/addons.txt
deleted file mode 100644
index 5613ba7..0000000
--- a/project/cmake/installdata/common/addons.txt
+++ /dev/null
@@ -1,49 +0,0 @@
1addons/audioencoder.xbmc.builtin.aac/*
2addons/audioencoder.xbmc.builtin.wav/*
3addons/audioencoder.xbmc.builtin.wma/*
4addons/game.controller.default/*
5addons/kodi.adsp/*
6addons/kodi.audiodecoder/*
7addons/kodi.game/*
8addons/kodi.inputstream/*
9addons/kodi.peripheral/*
10addons/kodi.resource/*
11addons/xbmc.addon/metadata.xsd
12addons/xbmc.addon/repository.xsd
13addons/xbmc.audioencoder/*
14addons/xbmc.codec/*
15addons/xbmc.core/*
16addons/xbmc.gui/*
17addons/xbmc.metadata/*
18addons/xbmc.pvr/*
19addons/xbmc.python/*
20addons/xbmc.webinterface/*
21addons/library.kodi.adsp/*
22addons/library.kodi.audioengine/*
23addons/library.kodi.game/*
24addons/library.kodi.guilib/*
25addons/library.kodi.peripheral/*
26addons/library.xbmc.addon/*
27addons/library.xbmc.codec/*
28addons/repository.xbmc.org/*
29addons/webinterface.default/*
30addons/screensaver.xbmc.builtin.dim/*
31addons/screensaver.xbmc.builtin.black/*
32addons/script.module.pil/*
33addons/script.module.pysqlite/*
34addons/resource.language.en_gb/*
35addons/resource.uisounds.kodi/*
36addons/resource.images.weathericons.default/*
37addons/service.xbmc.versioncheck/*
38addons/metadata.local/*
39addons/metadata.album.universal/*
40addons/metadata.artists.universal/*
41addons/metadata.common.allmusic.com/*
42addons/metadata.common.fanart.tv/*
43addons/metadata.common.htbackdrops.com/*
44addons/metadata.common.imdb.com/*
45addons/metadata.common.musicbrainz.org/*
46addons/metadata.common.theaudiodb.com/*
47addons/metadata.common.themoviedb.org/*
48addons/metadata.themoviedb.org/*
49addons/metadata.tvdb.com/*
diff --git a/project/cmake/installdata/common/common.txt b/project/cmake/installdata/common/common.txt
deleted file mode 100644
index c1e52f0..0000000
--- a/project/cmake/installdata/common/common.txt
+++ /dev/null
@@ -1,13 +0,0 @@
1media/*
2sounds/*
3system/keymaps/*
4system/library/*
5system/players/VideoPlayer/etc/*
6system/shaders/*
7system/settings/*
8userdata/*
9system/addon-manifest.xml
10system/colors.xml
11system/peripherals.xml
12system/playercorefactory.xml
13system/keyboardlayouts/*
diff --git a/project/cmake/installdata/ios/certificates.txt b/project/cmake/installdata/ios/certificates.txt
deleted file mode 100644
index 14e74a7..0000000
--- a/project/cmake/installdata/ios/certificates.txt
+++ /dev/null
@@ -1 +0,0 @@
1tools/depends/target/openssl/cacert.pem system/certs \ No newline at end of file
diff --git a/project/cmake/installdata/ios/packaging.txt b/project/cmake/installdata/ios/packaging.txt
deleted file mode 100644
index ce990b5..0000000
--- a/project/cmake/installdata/ios/packaging.txt
+++ /dev/null
@@ -1,3 +0,0 @@
1LICENSE.gpl
2privacy-policy.txt
3xbmc/platform/darwin/Credits.html
diff --git a/project/cmake/installdata/ios/runtime.txt b/project/cmake/installdata/ios/runtime.txt
deleted file mode 100644
index 3bb5467..0000000
--- a/project/cmake/installdata/ios/runtime.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1tools/darwin/runtime/preflight
2tools/darwin/runtime/org.xbmc.helper.plist
diff --git a/project/cmake/installdata/linux/lirc.txt b/project/cmake/installdata/linux/lirc.txt
deleted file mode 100644
index 1b48478..0000000
--- a/project/cmake/installdata/linux/lirc.txt
+++ /dev/null
@@ -1 +0,0 @@
1system/Lircmap.xml
diff --git a/project/cmake/installdata/osx/certificates.txt b/project/cmake/installdata/osx/certificates.txt
deleted file mode 100644
index 14e74a7..0000000
--- a/project/cmake/installdata/osx/certificates.txt
+++ /dev/null
@@ -1 +0,0 @@
1tools/depends/target/openssl/cacert.pem system/certs \ No newline at end of file
diff --git a/project/cmake/installdata/osx/packaging.txt b/project/cmake/installdata/osx/packaging.txt
deleted file mode 100644
index f869e4c..0000000
--- a/project/cmake/installdata/osx/packaging.txt
+++ /dev/null
@@ -1,4 +0,0 @@
1LICENSE.gpl
2privacy-policy.txt
3xbmc/platform/darwin/Credits.html
4tools/darwin/packaging/media/osx/icon.iconset/*
diff --git a/project/cmake/installdata/osx/runtime.txt b/project/cmake/installdata/osx/runtime.txt
deleted file mode 100644
index 3bb5467..0000000
--- a/project/cmake/installdata/osx/runtime.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1tools/darwin/runtime/preflight
2tools/darwin/runtime/org.xbmc.helper.plist
diff --git a/project/cmake/installdata/rbpi/lirc.txt b/project/cmake/installdata/rbpi/lirc.txt
deleted file mode 120000
index e89ae50..0000000
--- a/project/cmake/installdata/rbpi/lirc.txt
+++ /dev/null
@@ -1 +0,0 @@
1../linux/lirc.txt \ No newline at end of file
diff --git a/project/cmake/installdata/test-reference-data.txt b/project/cmake/installdata/test-reference-data.txt
deleted file mode 100644
index 895079a..0000000
--- a/project/cmake/installdata/test-reference-data.txt
+++ /dev/null
@@ -1,10 +0,0 @@
1xbmc/utils/test/CXBMCTinyXML-test.xml
2xbmc/utils/test/data/language/Spanish/strings.po
3xbmc/filesystem/test/reffile.txt
4xbmc/filesystem/test/reffile.txt.rar
5xbmc/filesystem/test/reffile.txt.zip
6xbmc/filesystem/test/refRARnormal.rar
7xbmc/filesystem/test/refRARstored.rar
8xbmc/network/test/data/test.html
9xbmc/network/test/data/test.png
10xbmc/network/test/data/test-ranges.txt
diff --git a/project/cmake/installdata/windows/addons.txt b/project/cmake/installdata/windows/addons.txt
deleted file mode 100644
index 92bf9b3..0000000
--- a/project/cmake/installdata/windows/addons.txt
+++ /dev/null
@@ -1 +0,0 @@
1addons/repository.pvr-win32.xbmc.org/*
diff --git a/project/cmake/installdata/windows/dlls.txt b/project/cmake/installdata/windows/dlls.txt
deleted file mode 100644
index 64d9756..0000000
--- a/project/cmake/installdata/windows/dlls.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1system/*.dll .
2project/Win32BuildSetup/dependencies/python27.dll . \ No newline at end of file
diff --git a/project/cmake/installdata/windows/irss.txt b/project/cmake/installdata/windows/irss.txt
deleted file mode 100644
index 6fd8d48..0000000
--- a/project/cmake/installdata/windows/irss.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1system/IRSSmap.xml
2system/X10-Lola-IRSSmap.xml
diff --git a/project/cmake/installdata/windows/python.txt b/project/cmake/installdata/windows/python.txt
deleted file mode 100644
index b805318..0000000
--- a/project/cmake/installdata/windows/python.txt
+++ /dev/null
@@ -1 +0,0 @@
1system/python/* \ No newline at end of file
diff --git a/project/cmake/modules/FindAML.cmake b/project/cmake/modules/FindAML.cmake
deleted file mode 100644
index 5b9a859..0000000
--- a/project/cmake/modules/FindAML.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
1#.rst:
2# FindAML
3# -------
4# Finds the AML codec
5#
6# This will will define the following variables::
7#
8# AML_FOUND - system has AML
9# AML_INCLUDE_DIRS - the AML include directory
10# AML_DEFINITIONS - the AML definitions
11#
12# and the following imported targets::
13#
14# AML::AML - The AML codec
15
16find_path(AML_INCLUDE_DIR codec_error.h
17 PATH_SUFFIXES amcodec)
18
19include(FindPackageHandleStandardArgs)
20find_package_handle_standard_args(AML
21 REQUIRED_VARS AML_INCLUDE_DIR)
22
23if(AML_FOUND)
24 set(AML_INCLUDE_DIRS ${AML_INCLUDE_DIR})
25 set(AML_DEFINITIONS -DHAS_LIBAMCODEC=1)
26
27 if(NOT TARGET AML::AML)
28 add_library(AML::AML UNKNOWN IMPORTED)
29 set_target_properties(AML::AML PROPERTIES
30 INTERFACE_INCLUDE_DIRECTORIES "${AML_INCLUDE_DIR}"
31 INTERFACE_COMPILE_DEFINITIONS HAS_LIBAMCODEC=1)
32 endif()
33endif()
34
35mark_as_advanced(AMLCODEC_INCLUDE_DIR)
diff --git a/project/cmake/modules/FindASS.cmake b/project/cmake/modules/FindASS.cmake
deleted file mode 100644
index 2d592fa..0000000
--- a/project/cmake/modules/FindASS.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
1#.rst:
2# FindASS
3# -------
4# Finds the ASS library
5#
6# This will will define the following variables::
7#
8# ASS_FOUND - system has ASS
9# ASS_INCLUDE_DIRS - the ASS include directory
10# ASS_LIBRARIES - the ASS libraries
11#
12# and the following imported targets::
13#
14# ASS::ASS - The ASS library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_ASS libass QUIET)
18endif()
19
20find_path(ASS_INCLUDE_DIR NAMES ass/ass.h
21 PATHS ${PC_ASS_INCLUDEDIR})
22find_library(ASS_LIBRARY NAMES ass libass
23 PATHS ${PC_ASS_LIBDIR})
24
25set(ASS_VERSION ${PC_ASS_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(ASS
29 REQUIRED_VARS ASS_LIBRARY ASS_INCLUDE_DIR
30 VERSION_VAR ASS_VERSION)
31
32if(ASS_FOUND)
33 set(ASS_LIBRARIES ${ASS_LIBRARY})
34 set(ASS_INCLUDE_DIRS ${ASS_INCLUDE_DIR})
35
36 if(NOT TARGET ASS::ASS)
37 add_library(ASS::ASS UNKNOWN IMPORTED)
38 set_target_properties(ASS::ASS PROPERTIES
39 IMPORTED_LOCATION "${ASS_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${ASS_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(ASS_INCLUDE_DIR ASS_LIBRARY)
diff --git a/project/cmake/modules/FindAlsa.cmake b/project/cmake/modules/FindAlsa.cmake
deleted file mode 100644
index a282243..0000000
--- a/project/cmake/modules/FindAlsa.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
1#.rst:
2# FindAlsa
3# --------
4# Finds the Alsa library
5#
6# This will will define the following variables::
7#
8# ALSA_FOUND - system has Alsa
9# ALSA_INCLUDE_DIRS - the Alsa include directory
10# ALSA_LIBRARIES - the Alsa libraries
11# ALSA_DEFINITIONS - the Alsa compile definitions
12#
13# and the following imported targets::
14#
15# ALSA::ALSA - The Alsa library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_ALSA alsa QUIET)
19endif()
20
21find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h
22 PATHS ${PC_ALSA_INCLUDEDIR})
23find_library(ALSA_LIBRARY NAMES asound
24 PATHS ${PC_ALSA_LIBDIR})
25
26set(ALSA_VERSION ${PC_ALSA_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(ALSA
30 REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR
31 VERSION_VAR ALSA_VERSION)
32
33if(ALSA_FOUND)
34 set(ALSA_INCLUDE_DIRS "") # Don't want these added as 'timer.h' is a dangerous file
35 set(ALSA_LIBRARIES ${ALSA_LIBRARY})
36 set(ALSA_DEFINITIONS -DHAVE_ALSA=1 -DUSE_ALSA=1)
37
38 if(NOT TARGET ALSA::ALSA)
39 add_library(ALSA::ALSA UNKNOWN IMPORTED)
40 set_target_properties(ALSA::ALSA PROPERTIES
41 IMPORTED_LOCATION "${ALSA_LIBRARY}"
42 INTERFACE_COMPILE_DEFINITIONS "${ALSA_DEFINITIONS}")
43 endif()
44endif()
45
46mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY)
diff --git a/project/cmake/modules/FindAvahi.cmake b/project/cmake/modules/FindAvahi.cmake
deleted file mode 100644
index 77c3e4d..0000000
--- a/project/cmake/modules/FindAvahi.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
1#.rst:
2# FindAvahi
3# ---------
4# Finds the avahi library
5#
6# This will will define the following variables::
7#
8# AVAHI_FOUND - system has avahi
9# AVAHI_INCLUDE_DIRS - the avahi include directory
10# AVAHI_LIBRARIES - the avahi libraries
11# AVAHI_DEFINITIONS - the avahi definitions
12#
13# and the following imported targets::
14#
15# Avahi::Avahi - The avahi library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_AVAHI avahi-client QUIET)
19endif()
20
21find_path(AVAHI_CLIENT_INCLUDE_DIR NAMES avahi-client/client.h
22 PATHS ${PC_AVAHI_INCLUDEDIR})
23find_path(AVAHI_COMMON_INCLUDE_DIR NAMES avahi-common/defs.h
24 PATHS ${PC_AVAHI_INCLUDEDIR})
25find_library(AVAHI_CLIENT_LIBRARY NAMES avahi-client
26 PATHS ${PC_AVAHI_LIBDIR})
27find_library(AVAHI_COMMON_LIBRARY NAMES avahi-common
28 PATHS ${PC_AVAHI_LIBDIR})
29
30set(AVAHI_VERSION ${PC_AVAHI_VERSION})
31
32include(FindPackageHandleStandardArgs)
33find_package_handle_standard_args(Avahi
34 REQUIRED_VARS AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY
35 AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
36 VERSION_VAR AVAHI_VERSION)
37
38if(AVAHI_FOUND)
39 set(AVAHI_INCLUDE_DIRS ${AVAHI_CLIENT_INCLUDE_DIR}
40 ${AVAHI_COMMON_INCLUDE_DIR})
41 set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY}
42 ${AVAHI_COMMON_LIBRARY})
43 set(AVAHI_DEFINITIONS -DHAVE_LIBAVAHI_CLIENT=1 -DHAVE_LIBAVAHI_COMMON=1)
44
45 if(NOT TARGET Avahi::Avahi)
46 add_library(Avahi::Avahi UNKNOWN IMPORTED)
47 set_target_properties(Avahi::Avahi PROPERTIES
48 IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}"
49 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}"
50 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_CLIENT=1)
51 endif()
52 if(NOT TARGET Avahi::AvahiCommon)
53 add_library(Avahi::AvahiCommon UNKNOWN IMPORTED)
54 set_target_properties(Avahi::AvahiCommon PROPERTIES
55 IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}"
56 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}"
57 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_COMMON=1
58 INTERFACE_LINK_LIBRARIES Avahi::Avahi)
59 endif()
60endif()
61
62mark_as_advanced(AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
63 AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY)
diff --git a/project/cmake/modules/FindBluetooth.cmake b/project/cmake/modules/FindBluetooth.cmake
deleted file mode 100644
index a69980d..0000000
--- a/project/cmake/modules/FindBluetooth.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
1#.rst:
2# FindBluetooth
3# ---------
4# Finds the Bluetooth library
5#
6# This will will define the following variables::
7#
8# BLUETOOTH_FOUND - system has Bluetooth
9# BLUETOOTH_INCLUDE_DIRS - the Bluetooth include directory
10# BLUETOOTH_LIBRARIES - the Bluetooth libraries
11#
12# and the following imported targets::
13#
14# Bluetooth::Bluetooth - The Bluetooth library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_BLUETOOTH bluez bluetooth QUIET)
18endif()
19
20find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h
21 PATHS ${PC_BLUETOOTH_INCLUDEDIR})
22find_library(BLUETOOTH_LIBRARY NAMES bluetooth libbluetooth
23 PATHS ${PC_BLUETOOTH_LIBDIR})
24
25set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(Bluetooth
29 REQUIRED_VARS BLUETOOTH_LIBRARY BLUETOOTH_INCLUDE_DIR
30 VERSION_VAR BLUETOOTH_VERSION)
31
32if(BLUETOOTH_FOUND)
33 set(BLUETOOTH_INCLUDE_DIRS ${BLUETOOTH_INCLUDE_DIR})
34 set(BLUETOOTH_LIBRARIES ${BLUETOOTH_LIBRARY})
35
36 if(NOT TARGET Bluetooth::Bluetooth)
37 add_library(Bluetooth::Bluetooth UNKNOWN IMPORTED)
38 set_target_properties(Bluetooth::Bluetooth PROPERTIES
39 IMPORTED_LOCATION "${BLUETOOTH_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${BLUETOOTH_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(BLUETOOTH_INCLUDE_DIR BLUETOOTH_LIBRARY)
diff --git a/project/cmake/modules/FindBluray.cmake b/project/cmake/modules/FindBluray.cmake
deleted file mode 100644
index b8422ed..0000000
--- a/project/cmake/modules/FindBluray.cmake
+++ /dev/null
@@ -1,58 +0,0 @@
1#.rst:
2# FindBluray
3# ----------
4# Finds the libbluray library
5#
6# This will will define the following variables::
7#
8# BLURAY_FOUND - system has libbluray
9# BLURAY_INCLUDE_DIRS - the libbluray include directory
10# BLURAY_LIBRARIES - the libbluray libraries
11# BLURAY_DEFINITIONS - the libbluray compile definitions
12#
13# and the following imported targets::
14#
15# Bluray::Bluray - The libblueray library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_BLURAY libbluray>=0.7.0 QUIET)
19endif()
20
21find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h
22 PATHS ${PC_BLURAY_INCLUDEDIR})
23
24set(BLURAY_VERSION ${PC_BLURAY_VERSION})
25
26include(FindPackageHandleStandardArgs)
27if(NOT WIN32)
28 find_library(BLURAY_LIBRARY NAMES bluray
29 PATHS ${PC_BLURAY_LIBDIR})
30
31 find_package_handle_standard_args(Bluray
32 REQUIRED_VARS BLURAY_LIBRARY BLURAY_INCLUDE_DIR
33 VERSION_VAR BLURAY_VERSION)
34else()
35 # Dynamically loaded DLL
36 find_package_handle_standard_args(Bluray
37 REQUIRED_VARS BLURAY_INCLUDE_DIR
38 VERSION_VAR BLURAY_VERSION)
39endif()
40
41if(BLURAY_FOUND)
42 set(BLURAY_LIBRARIES ${BLURAY_LIBRARY})
43 set(BLURAY_INCLUDE_DIRS ${BLURAY_INCLUDE_DIR})
44 set(BLURAY_DEFINITIONS -DHAVE_LIBBLURAY=1)
45
46 if(NOT TARGET Bluray::Bluray)
47 add_library(Bluray::Bluray UNKNOWN IMPORTED)
48 if(BLURAY_LIBRARY)
49 set_target_properties(Bluray::Bluray PROPERTIES
50 IMPORTED_LOCATION "${BLURAY_LIBRARY}")
51 endif()
52 set_target_properties(Bluray::Bluray PROPERTIES
53 INTERFACE_INCLUDE_DIRECTORIES "${BLURAY_INCLUDE_DIR}"
54 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBBLURAY=1)
55 endif()
56endif()
57
58mark_as_advanced(BLURAY_INCLUDE_DIR BLURAY_LIBRARY)
diff --git a/project/cmake/modules/FindCAP.cmake b/project/cmake/modules/FindCAP.cmake
deleted file mode 100644
index 04e8378..0000000
--- a/project/cmake/modules/FindCAP.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
1#.rst:
2# FindCAP
3# -----------
4# Finds the POSIX 1003.1e capabilities library
5#
6# This will define the following variables::
7#
8# CAP_FOUND - system has LibCap
9# CAP_INCLUDE_DIRS - the LibCap include directory
10# CAP_LIBRARIES - the LibCap libraries
11#
12# and the following imported targets::
13#
14# CAP::CAP - The LibCap library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_CAP libcap QUIET)
18endif()
19
20find_path(CAP_INCLUDE_DIR NAMES sys/capability.h
21 PATHS ${PC_CAP_INCLUDEDIR})
22find_library(CAP_LIBRARY NAMES cap libcap
23 PATHS ${PC_CAP_LIBDIR})
24
25set(CAP_VERSION ${PC_CAP_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(CAP
29 REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR
30 VERSION_VAR CAP_VERSION)
31
32if(CAP_FOUND)
33 set(CAP_LIBRARIES ${CAP_LIBRARY})
34 set(CAP_INCLUDE_DIRS ${CAP_INCLUDE_DIR})
35
36 if(NOT TARGET CAP::CAP)
37 add_library(CAP::CAP UNKNOWN IMPORTED)
38 set_target_properties(CAP::CAP PROPERTIES
39 IMPORTED_LOCATION "${CAP_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${CAP_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(CAP_INCLUDE_DIR CAP_LIBRARY)
diff --git a/project/cmake/modules/FindCCache.cmake b/project/cmake/modules/FindCCache.cmake
deleted file mode 100644
index a7fd29f..0000000
--- a/project/cmake/modules/FindCCache.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
1#.rst:
2# FindCCache
3# ----------
4# Finds ccache and sets it up as compiler wrapper.
5# This should ideally be called before the call to project().
6#
7# See: https://crascit.com/2016/04/09/using-ccache-with-cmake/
8
9find_program(CCACHE_PROGRAM ccache)
10
11include(FindPackageHandleStandardArgs)
12find_package_handle_standard_args(CCACHE REQUIRED_VARS CCACHE_PROGRAM)
13
14if(CCACHE_FOUND)
15 # Supports Unix Makefiles and Ninja
16 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
17 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}")
18endif()
diff --git a/project/cmake/modules/FindCEC.cmake b/project/cmake/modules/FindCEC.cmake
deleted file mode 100644
index bd6fd1d..0000000
--- a/project/cmake/modules/FindCEC.cmake
+++ /dev/null
@@ -1,68 +0,0 @@
1#.rst:
2# FindCEC
3# -------
4# Finds the libCEC library
5#
6# This will will define the following variables::
7#
8# CEC_FOUND - system has libCEC
9# CEC_INCLUDE_DIRS - the libCEC include directory
10# CEC_LIBRARIES - the libCEC libraries
11# CEC_DEFINITIONS - the libCEC compile definitions
12#
13# and the following imported targets::
14#
15# CEC::CEC - The libCEC library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_CEC libcec QUIET)
19endif()
20
21find_path(CEC_INCLUDE_DIR NAMES libcec/cec.h libCEC/CEC.h
22 PATHS ${PC_CEC_INCLUDEDIR})
23
24if(PC_CEC_VERSION)
25 set(CEC_VERSION ${PC_CEC_VERSION})
26elseif(CEC_INCLUDE_DIR AND EXISTS "${CEC_INCLUDE_DIR}/libcec/version.h")
27 file(STRINGS "${CEC_INCLUDE_DIR}/libcec/version.h" cec_version_str REGEX "^[\t ]+LIBCEC_VERSION_TO_UINT\\(.*\\)")
28 string(REGEX REPLACE "^[\t ]+LIBCEC_VERSION_TO_UINT\\(([0-9]+), ([0-9]+), ([0-9]+)\\)" "\\1.\\2.\\3" CEC_VERSION "${cec_version_str}")
29 unset(cec_version_str)
30endif()
31
32if(NOT CEC_FIND_VERSION)
33 set(CEC_FIND_VERSION 4.0.0)
34endif()
35
36include(FindPackageHandleStandardArgs)
37if(NOT WIN32)
38 find_library(CEC_LIBRARY NAMES cec
39 PATHS ${PC_CEC_LIBDIR})
40
41 find_package_handle_standard_args(CEC
42 REQUIRED_VARS CEC_LIBRARY CEC_INCLUDE_DIR
43 VERSION_VAR CEC_VERSION)
44else()
45 # Dynamically loaded DLL
46 find_package_handle_standard_args(CEC
47 REQUIRED_VARS CEC_INCLUDE_DIR
48 VERSION_VAR CEC_VERSION)
49endif()
50
51if(CEC_FOUND)
52 set(CEC_LIBRARIES ${CEC_LIBRARY})
53 set(CEC_INCLUDE_DIRS ${CEC_INCLUDE_DIR})
54 set(CEC_DEFINITIONS -DHAVE_LIBCEC=1)
55
56 if(NOT TARGET CEC::CEC)
57 add_library(CEC::CEC UNKNOWN IMPORTED)
58 if(CEC_LIBRARY)
59 set_target_properties(CEC::CEC PROPERTIES
60 IMPORTED_LOCATION "${CEC_LIBRARY}")
61 endif()
62 set_target_properties(CEC::CEC PROPERTIES
63 INTERFACE_INCLUDE_DIRECTORIES "${CEC_INCLUDE_DIR}"
64 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBCEC=1)
65 endif()
66endif()
67
68mark_as_advanced(CEC_INCLUDE_DIR CEC_LIBRARY)
diff --git a/project/cmake/modules/FindCWiid.cmake b/project/cmake/modules/FindCWiid.cmake
deleted file mode 100644
index 88cfbef..0000000
--- a/project/cmake/modules/FindCWiid.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
1#.rst:
2# FindCWiid
3# ---------
4# Finds the CWiid library
5#
6# This will will define the following variables::
7#
8# CWIID_FOUND - system has CWiid
9# CWIID_INCLUDE_DIRS - the CWiid include directory
10# CWIID_LIBRARIES - the CWiid libraries
11#
12# and the following imported targets::
13#
14# CWiid::CWiid - The CWiid library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_CWIID cwiid QUIET)
18endif()
19
20find_path(CWIID_INCLUDE_DIR NAMES cwiid.h
21 PATHS ${PC_CWIID_INCLUDEDIR})
22find_library(CWIID_LIBRARY NAMES cwiid
23 PATHS ${PC_CWIID_LIBDIR})
24
25set(CWIID_VERSION ${PC_CWIID_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(CWIID
29 REQUIRED_VARS CWIID_LIBRARY CWIID_INCLUDE_DIR
30 VERSION_VAR CWIID_VERSION)
31
32if(CWIID_FOUND)
33 set(CWIID_INCLUDE_DIRS ${CWIID_INCLUDE_DIR})
34 set(CWIID_LIBRARIES ${CWIID_LIBRARY})
35
36 if(NOT TARGET CWiid::CWiid)
37 add_library(CWiid::CWiid UNKNOWN IMPORTED)
38 set_target_properties(CWiid::CWiid PROPERTIES
39 IMPORTED_LOCATION "${CWIID_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${CWIID_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(CWIID_INCLUDE_DIR CWIID_LIBRARY)
diff --git a/project/cmake/modules/FindCXX11.cmake b/project/cmake/modules/FindCXX11.cmake
deleted file mode 100644
index c0b9a52..0000000
--- a/project/cmake/modules/FindCXX11.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
1include(TestCXXAcceptsFlag)
2
3# try to use compiler flag -std=c++11
4check_cxx_accepts_flag("-std=c++11" CXX_FLAG_CXX11)
5if(CXX_FLAG_CXX11)
6 add_options (CXX ALL_BUILDS "-std=c++11")
7 set(CXX_STD11_FLAGS "-std=c++11")
8else()
9 # try to use compiler flag -std=c++0x for older compilers
10 check_cxx_accepts_flag("-std=c++0x" CXX_FLAG_CXX0X)
11 if(CXX_FLAG_CXX0X)
12 add_options (CXX ALL_BUILDS "-std=c++0x")
13 set(CXX_STD11_FLAGS "-std=c++0x")
14 endif()
15endif()
16
17include(FindPackageHandleStandardArgs)
18find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX_STD11_FLAGS)
diff --git a/project/cmake/modules/FindCdio.cmake b/project/cmake/modules/FindCdio.cmake
deleted file mode 100644
index aa089c2..0000000
--- a/project/cmake/modules/FindCdio.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1#.rst:
2# FindCdio
3# --------
4# Finds the cdio library
5#
6# This will will define the following variables::
7#
8# CDIO_FOUND - system has cdio
9# CDIO_INCLUDE_DIRS - the cdio include directory
10# CDIO_LIBRARIES - the cdio libraries
11#
12# and the following imported targets::
13#
14# CDIO::CDIO - The cdio library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_CDIO libcdio libiso9660 QUIET)
18endif()
19
20find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h
21 PATHS ${PC_CDIO_libcdio_INCLUDEDIR}
22 ${PC_CDIO_libiso9660_INCLUDEDIR})
23find_library(CDIO_LIBRARY NAMES cdio
24 PATHS ${CDIO_libcdio_LIBDIR} ${CDIO_libiso9660_LIBDIR})
25
26set(CDIO_VERSION ${PC_CDIO_libcdio_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(CDIO
30 REQUIRED_VARS CDIO_LIBRARY CDIO_INCLUDE_DIR
31 VERSION_VAR CDIO_VERSION)
32
33if(CDIO_FOUND)
34 set(CDIO_LIBRARIES ${CDIO_LIBRARY})
35 set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR})
36
37 if(NOT TARGET CDIO::CDIO)
38 add_library(CDIO::CDIO UNKNOWN IMPORTED)
39 set_target_properties(CDIO::CDIO PROPERTIES
40 IMPORTED_LOCATION "${CDIO_LIBRARY}"
41 INTERFACE_INCLUDE_DIRECTORIES "${CDIO_INCLUDE_DIR}")
42 endif()
43endif()
44
45mark_as_advanced(CDIO_INCLUDE_DIR CDIO_LIBRARY)
diff --git a/project/cmake/modules/FindCpluff.cmake b/project/cmake/modules/FindCpluff.cmake
deleted file mode 100644
index ce6c127..0000000
--- a/project/cmake/modules/FindCpluff.cmake
+++ /dev/null
@@ -1,61 +0,0 @@
1# - Builds Cpluff as external project
2# Once done this will define
3#
4# CPLUFF_FOUND - system has cpluff
5# CPLUFF_INCLUDE_DIRS - the cpluff include directories
6#
7# and link Kodi against the cpluff libraries.
8
9if(NOT WIN32)
10 string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}")
11 get_filename_component(expat_dir ${EXPAT_LIBRARY} DIRECTORY)
12 set(ldflags "-L${expat_dir}")
13
14 # iOS: Without specifying -arch, configure tries to use /bin/cpp as C-preprocessor
15 # http://stackoverflow.com/questions/38836754/cant-cross-compile-c-library-for-arm-ios
16 if(CORE_SYSTEM_NAME STREQUAL ios)
17 set(cppflags "-arch ${CPU}")
18 endif()
19
20 ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff
21 BUILD_IN_SOURCE 1
22 PREFIX ${CORE_BUILD_DIR}/cpluff
23 CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ${CORE_SOURCE_DIR}/lib/cpluff/configure
24 --disable-nls
25 --enable-static
26 --disable-shared
27 --with-pic
28 --prefix=<INSTALL_DIR>
29 --libdir=<INSTALL_DIR>/lib
30 --host=${ARCH}
31 CFLAGS=${defines}
32 CPPFLAGS=${cppflags}
33 LDFLAGS=${ldflags})
34 ExternalProject_Add_Step(libcpluff autoreconf
35 DEPENDEES download update patch
36 DEPENDERS configure
37 COMMAND rm -f config.status
38 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
39 WORKING_DIRECTORY <SOURCE_DIR>)
40
41 set(ldflags "${ldflags};-lexpat")
42 core_link_library(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/lib/libcpluff.a
43 system/libcpluff libcpluff extras "${ldflags}")
44 set(CPLUFF_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cpluff/include)
45 set(CPLUFF_FOUND 1)
46 mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND)
47else()
48 find_path(CPLUFF_INCLUDE_DIR cpluff.h)
49
50 include(FindPackageHandleStandardArgs)
51 find_package_handle_standard_args(CPLUFF
52 REQUIRED_VARS CPLUFF_INCLUDE_DIR)
53
54 if(CPLUFF_FOUND)
55 set(CPLUFF_INCLUDE_DIRS ${CPLUFF_INCLUDE_DIR})
56 endif()
57 mark_as_advanced(CPLUFF_INCLUDE_DIRS CPLUFF_FOUND)
58
59 add_custom_target(libcpluff)
60endif()
61set_target_properties(libcpluff PROPERTIES FOLDER "External Projects")
diff --git a/project/cmake/modules/FindCrossGUID.cmake b/project/cmake/modules/FindCrossGUID.cmake
deleted file mode 100644
index ba2823a..0000000
--- a/project/cmake/modules/FindCrossGUID.cmake
+++ /dev/null
@@ -1,78 +0,0 @@
1if(ENABLE_INTERNAL_CROSSGUID)
2 include(ExternalProject)
3 file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/Makefile VER)
4 string(REGEX MATCH "VERSION=[^ ]*" CGUID_VER "${VER}")
5 list(GET CGUID_VER 0 CGUID_VER)
6 string(SUBSTRING "${CGUID_VER}" 8 -1 CGUID_VER)
7
8 # allow user to override the download URL with a local tarball
9 # needed for offline build envs
10 if(CROSSGUID_URL)
11 get_filename_component(CROSSGUID_URL "${CROSSGUID_URL}" ABSOLUTE)
12 else()
13 set(CROSSGUID_URL http://mirrors.kodi.tv/build-deps/sources/crossguid-${CGUID_VER}.tar.gz)
14 endif()
15 if(VERBOSE)
16 message(STATUS "CROSSGUID_URL: ${CROSSGUID_URL}")
17 endif()
18
19 if(APPLE)
20 set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")
21 endif()
22
23 set(CROSSGUID_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a)
24 set(CROSSGUID_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
25 externalproject_add(crossguid
26 URL ${CROSSGUID_URL}
27 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
28 PREFIX ${CORE_BUILD_DIR}/crossguid
29 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
30 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
31 "${EXTRA_ARGS}"
32 PATCH_COMMAND ${CMAKE_COMMAND} -E copy
33 ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/CMakeLists.txt
34 <SOURCE_DIR> &&
35 ${CMAKE_COMMAND} -E copy
36 ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindUUID.cmake
37 <SOURCE_DIR> &&
38 ${CMAKE_COMMAND} -E copy
39 ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/FindCXX11.cmake
40 <SOURCE_DIR>
41 BUILD_BYPRODUCTS ${CROSSGUID_LIBRARY})
42 set_target_properties(crossguid PROPERTIES FOLDER "External Projects")
43
44 include(FindPackageHandleStandardArgs)
45 find_package_handle_standard_args(CrossGuid
46 REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR
47 VERSION_VAR CGUID_VER)
48
49 set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY})
50 set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR})
51else()
52 find_path(CROSSGUID_INCLUDE_DIR NAMES guid.h)
53
54 find_library(CROSSGUID_LIBRARY_RELEASE NAMES crossguid)
55 find_library(CROSSGUID_LIBRARY_DEBUG NAMES crossguidd)
56
57 include(SelectLibraryConfigurations)
58 select_library_configurations(CROSSGUID)
59
60 include(FindPackageHandleStandardArgs)
61 find_package_handle_standard_args(CrossGuid
62 REQUIRED_VARS CROSSGUID_LIBRARY CROSSGUID_INCLUDE_DIR)
63
64 if(CROSSGUID_FOUND)
65 set(CROSSGUID_LIBRARIES ${CROSSGUID_LIBRARY})
66 set(CROSSGUID_INCLUDE_DIRS ${CROSSGUID_INCLUDE_DIR})
67
68 add_custom_target(crossguid)
69 set_target_properties(crossguid PROPERTIES FOLDER "External Projects")
70 endif()
71 mark_as_advanced(CROSSGUID_INCLUDE_DIR CROSSGUID_LIBRARY)
72endif()
73
74if(NOT WIN32 AND NOT APPLE)
75 find_package(UUID REQUIRED)
76 list(APPEND CROSSGUID_INCLUDE_DIRS ${UUID_INCLUDE_DIRS})
77 list(APPEND CROSSGUID_LIBRARIES ${UUID_LIBRARIES})
78endif()
diff --git a/project/cmake/modules/FindCurl.cmake b/project/cmake/modules/FindCurl.cmake
deleted file mode 100644
index ed4d81f..0000000
--- a/project/cmake/modules/FindCurl.cmake
+++ /dev/null
@@ -1,83 +0,0 @@
1#.rst:
2# FindCurl
3# --------
4# Finds the Curl library
5#
6# This will will define the following variables::
7#
8# CURL_FOUND - system has Curl
9# CURL_INCLUDE_DIRS - the Curl include directory
10# CURL_LIBRARIES - the Curl libraries
11# CURL_DEFINITIONS - the Curl definitions
12#
13# and the following imported targets::
14#
15# Curl::Curl - The Curl library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_CURL libcurl QUIET)
19endif()
20
21find_path(CURL_INCLUDE_DIR NAMES curl/curl.h
22 PATHS ${PC_CURL_INCLUDEDIR})
23find_library(CURL_LIBRARY NAMES curl libcurl
24 PATHS ${PC_CURL_LIBDIR})
25
26set(CURL_VERSION ${PC_CURL_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(Curl
30 REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
31 VERSION_VAR CURL_VERSION)
32
33if(CURL_FOUND)
34 set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
35 set(CURL_LIBRARIES ${CURL_LIBRARY})
36
37 # Check whether OpenSSL inside libcurl is static.
38 if(UNIX)
39 if(NOT DEFINED HAS_CURL_STATIC)
40 get_filename_component(CURL_LIBRARY_DIR ${CURL_LIBRARY} DIRECTORY)
41 find_soname(CURL REQUIRED)
42
43 if(APPLE)
44 set(libchecker nm)
45 set(searchpattern "T [_]?CRYPTO_set_locking_call")
46 else()
47 set(libchecker readelf -s)
48 set(searchpattern "CRYPTO_set_locking_call")
49 endif()
50 execute_process(
51 COMMAND ${libchecker} ${CURL_LIBRARY_DIR}/${CURL_SONAME}
52 COMMAND grep -Eq ${searchpattern}
53 RESULT_VARIABLE HAS_CURL_STATIC)
54 unset(libchecker)
55 unset(searchpattern)
56 if(HAS_CURL_STATIC EQUAL 0)
57 set(HAS_CURL_STATIC TRUE)
58 else()
59 set(HAS_CURL_STATIC FALSE)
60 endif()
61 set(HAS_CURL_STATIC ${HAS_CURL_STATIC} CACHE INTERNAL
62 "OpenSSL is statically linked into Curl")
63 message(STATUS "OpenSSL is statically linked into Curl: ${HAS_CURL_STATIC}")
64 endif()
65 endif()
66
67 if(HAS_CURL_STATIC)
68 set(CURL_DEFINITIONS -DHAS_CURL_STATIC=1)
69 endif()
70
71 if(NOT TARGET Curl::Curl)
72 add_library(Curl::Curl UNKNOWN IMPORTED)
73 set_target_properties(Curl::Curl PROPERTIES
74 IMPORTED_LOCATION "${CURL_LIBRARY}"
75 INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}")
76 if(HAS_CURL_STATIC)
77 set_target_properties(Curl::Curl PROPERTIES
78 INTERFACE_COMPILE_DEFINITIONS HAS_CURL_STATIC=1)
79 endif()
80 endif()
81endif()
82
83mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY)
diff --git a/project/cmake/modules/FindD3DX11Effects.cmake b/project/cmake/modules/FindD3DX11Effects.cmake
deleted file mode 100644
index d7468e1..0000000
--- a/project/cmake/modules/FindD3DX11Effects.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
1# - Finds D3DX11 dependencies
2# Once done this will define
3#
4# D3DCOMPILER_DLL - Path to the Direct3D Compiler
5# FXC - Path to the DirectX Effects Compiler (FXC)
6
7find_file(D3DCOMPILER_DLL
8 NAMES d3dcompiler_47.dll d3dcompiler_46.dll
9 PATHS
10 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/Redist/D3D/x86"
11 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/Redist/D3D/x86"
12 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/Redist/D3D/x86"
13 "$ENV{WindowsSdkDir}Redist/d3d/x86"
14 NO_DEFAULT_PATH)
15if(NOT D3DCOMPILER_DLL)
16 message(WARNING "Could NOT find Direct3D Compiler")
17endif()
18mark_as_advanced(D3DCOMPILER_DLL)
19copy_file_to_buildtree(${D3DCOMPILER_DLL} DIRECTORY .)
20
21find_program(FXC fxc
22 PATHS
23 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/bin/x86"
24 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/bin/x86"
25 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/bin/x86"
26 "$ENV{WindowsSdkDir}bin/x86")
27if(NOT FXC)
28 message(WARNING "Could NOT find DirectX Effects Compiler (FXC)")
29endif()
30mark_as_advanced(FXC)
diff --git a/project/cmake/modules/FindDBus.cmake b/project/cmake/modules/FindDBus.cmake
deleted file mode 100644
index 2d64af4..0000000
--- a/project/cmake/modules/FindDBus.cmake
+++ /dev/null
@@ -1,52 +0,0 @@
1#.rst:
2# FindDBUS
3# -------
4# Finds the DBUS library
5#
6# This will will define the following variables::
7#
8# DBUS_FOUND - system has DBUS
9# DBUS_INCLUDE_DIRS - the DBUS include directory
10# DBUS_LIBRARIES - the DBUS libraries
11# DBUS_DEFINITIONS - the DBUS definitions
12#
13# and the following imported targets::
14#
15# DBus::DBus - The DBUS library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_DBUS dbus-1 QUIET)
19endif()
20
21find_path(DBUS_INCLUDE_DIR NAMES dbus/dbus.h
22 PATH_SUFFIXES dbus-1.0
23 PATHS ${PC_DBUS_INCLUDE_DIR})
24find_path(DBUS_ARCH_INCLUDE_DIR NAMES dbus/dbus-arch-deps.h
25 PATH_SUFFIXES dbus-1.0/include
26 PATHS ${PC_DBUS_LIBDIR}
27 /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE})
28find_library(DBUS_LIBRARY NAMES dbus-1
29 PATHS ${PC_DBUS_LIBDIR})
30
31set(DBUS_VERSION ${PC_DBUS_VERSION})
32
33include(FindPackageHandleStandardArgs)
34find_package_handle_standard_args(DBus
35 REQUIRED_VARS DBUS_LIBRARY DBUS_INCLUDE_DIR DBUS_ARCH_INCLUDE_DIR
36 VERSION_VAR DBUS_VERSION)
37
38if(DBUS_FOUND)
39 set(DBUS_LIBRARIES ${DBUS_LIBRARY})
40 set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR})
41 set(DBUS_DEFINITIONS -DHAVE_DBUS=1)
42
43 if(NOT TARGET DBus::DBus)
44 add_library(DBus::DBus UNKNOWN IMPORTED)
45 set_target_properties(DBus::DBus PROPERTIES
46 IMPORTED_LOCATION "${DBUS_LIBRARY}"
47 INTERFACE_INCLUDE_DIRECTORIES "${DBUS_INCLUDE_DIR}"
48 INTERFACE_COMPILE_DEFINITIONS HAVE_DBUS=1)
49 endif()
50endif()
51
52mark_as_advanced(DBUS_INCLUDE_DIR DBUS_LIBRARY)
diff --git a/project/cmake/modules/FindEGL.cmake b/project/cmake/modules/FindEGL.cmake
deleted file mode 100644
index 79bb176..0000000
--- a/project/cmake/modules/FindEGL.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
1#.rst:
2# FindEGL
3# -------
4# Finds the EGL library
5#
6# This will will define the following variables::
7#
8# EGL_FOUND - system has EGL
9# EGL_INCLUDE_DIRS - the EGL include directory
10# EGL_LIBRARIES - the EGL libraries
11# EGL_DEFINITIONS - the EGL definitions
12#
13# and the following imported targets::
14#
15# EGL::EGL - The EGL library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_EGL egl QUIET)
19endif()
20
21find_path(EGL_INCLUDE_DIR EGL/egl.h
22 PATHS ${PC_EGL_INCLUDEDIR})
23
24find_library(EGL_LIBRARY NAMES EGL egl
25 PATHS ${PC_EGL_LIBDIR})
26
27set(EGL_VERSION ${PC_EGL_VERSION})
28
29include(FindPackageHandleStandardArgs)
30find_package_handle_standard_args(EGL
31 REQUIRED_VARS EGL_LIBRARY EGL_INCLUDE_DIR
32 VERSION_VAR EGL_VERSION)
33
34if(EGL_FOUND)
35 set(EGL_LIBRARIES ${EGL_LIBRARY})
36 set(EGL_INCLUDE_DIRS ${EGL_INCLUDE_DIR})
37 set(EGL_DEFINITIONS -DHAVE_LIBEGL=1)
38
39 if(NOT TARGET EGL::EGL)
40 add_library(EGL::EGL UNKNOWN IMPORTED)
41 set_target_properties(EGL::EGL PROPERTIES
42 IMPORTED_LOCATION "${EGL_LIBRARY}"
43 INTERFACE_INCLUDE_DIRECTORIES "${EGL_INCLUDE_DIR}"
44 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBEGL=1)
45 endif()
46endif()
47
48mark_as_advanced(EGL_INCLUDE_DIR EGL_LIBRARY)
diff --git a/project/cmake/modules/FindEMBEDDED.cmake b/project/cmake/modules/FindEMBEDDED.cmake
deleted file mode 100644
index aa938c5..0000000
--- a/project/cmake/modules/FindEMBEDDED.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
1# - Try to find embedded platforms (RPI/IMX6)
2# Once done this will define
3#
4# EMBEDDED_FOUND - system is RPI / IMX6 and we most probably want to compile for GLES2 support
5# (don't configure for OpenGL)
6
7if(NOT CMAKE_SYSTEM_PROCESSOR)
8 set(CMAKE_SYSTEM_PROCESSOR ${CPU})
9endif()
10
11string(REGEX MATCH "^arm" TARGET_ARCH_ARM "${CMAKE_SYSTEM_PROCESSOR}")
12if(NOT CMAKE_CROSSCOMPILING AND NOT TARGET_ARCH_ARM)
13 return()
14endif()
15
16find_path(EMBEDDED_FOUND NAMES include/linux/imxfb.h include/bcm_host.h PATHS /opt/vc)
diff --git a/project/cmake/modules/FindFFMPEG.cmake b/project/cmake/modules/FindFFMPEG.cmake
deleted file mode 100644
index 2b3f47b..0000000
--- a/project/cmake/modules/FindFFMPEG.cmake
+++ /dev/null
@@ -1,292 +0,0 @@
1# FindFFMPEG
2# --------
3# Finds FFmpeg libraries
4#
5# This module will first look for the required library versions on the system.
6# If they are not found, it will fall back to downloading and building kodi's own version
7#
8# --------
9# the following variables influence behaviour:
10# ENABLE_INTERNAL_FFMPEG - if enabled, kodi's own version will always be built
11#
12# FFMPEG_PATH - use external ffmpeg not found in system paths
13# usage: -DFFMPEG_PATH=/path/to/ffmpeg_install_prefix
14#
15# WITH_FFMPEG - use external ffmpeg not found in system paths
16# WARNING: this option is for developers as it will _disable ffmpeg version checks_!
17# Consider using FFMPEG_PATH instead, which _does_ check library versions
18# usage: -DWITH_FFMPEG=/path/to/ffmpeg_install_prefix
19#
20# --------
21# This module will will define the following variables:
22#
23# FFMPEG_FOUND - system has FFmpeg
24# FFMPEG_INCLUDE_DIRS - FFmpeg include directory
25# FFMPEG_LIBRARIES - FFmpeg libraries
26# FFMPEG_DEFINITIONS - pre-processor definitions
27# FFMPEG_LDFLAGS - linker flags
28#
29# and the following imported targets::
30#
31# ffmpeg - The FFmpeg libraries
32# --------
33#
34
35# required ffmpeg library versions
36set(REQUIRED_FFMPEG_VERSION 3.1)
37set(_avcodec_ver ">=57.48.101")
38set(_avfilter_ver ">=6.47.100")
39set(_avformat_ver ">=57.41.100")
40set(_avutil_ver ">=55.28.100")
41set(_swscale_ver ">=4.1.100")
42set(_swresample_ver ">=2.1.100")
43set(_postproc_ver ">=54.0.100")
44
45
46# Allows building with external ffmpeg not found in system paths,
47# without library version checks
48if(WITH_FFMPEG)
49 set(FFMPEG_PATH ${WITH_FFMPEG})
50 message(STATUS "Warning: FFmpeg version checking disabled")
51 set(REQUIRED_FFMPEG_VERSION undef)
52 unset(_avcodec_ver)
53 unset(_avfilter_ver)
54 unset(_avformat_ver)
55 unset(_avutil_ver)
56 unset(_swscale_ver)
57 unset(_swresample_ver)
58 unset(_postproc_ver)
59endif()
60
61# Allows building with external ffmpeg not found in system paths,
62# with library version checks
63if(FFMPEG_PATH)
64 set(ENABLE_INTERNAL_FFMPEG OFF)
65endif()
66
67# external FFMPEG
68if(NOT ENABLE_INTERNAL_FFMPEG OR CMAKE_CROSSCOMPILING)
69 if(FFMPEG_PATH)
70 set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig")
71 list(APPEND CMAKE_PREFIX_PATH ${FFMPEG_PATH})
72 endif()
73
74 set(FFMPEG_PKGS libavcodec${_avcodec_ver}
75 libavfilter${_avfilter_ver}
76 libavformat${_avformat_ver}
77 libavutil${_avutil_ver}
78 libswscale${_swscale_ver}
79 libswresample${_swresample_ver}
80 libpostproc${_postproc_ver})
81
82 if(PKG_CONFIG_FOUND)
83 pkg_check_modules(PC_FFMPEG ${FFMPEG_PKGS} QUIET)
84 string(REGEX REPLACE "framework;" "framework " PC_FFMPEG_LDFLAGS "${PC_FFMPEG_LDFLAGS}")
85 endif()
86
87 find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h
88 libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h
89 PATH_SUFFIXES ffmpeg
90 PATHS ${PC_FFMPEG_INCLUDE_DIRS}
91 NO_DEFAULT_PATH)
92 find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h
93 libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h)
94
95 find_library(FFMPEG_LIBAVCODEC
96 NAMES avcodec libavcodec
97 PATH_SUFFIXES ffmpeg/libavcodec
98 PATHS ${PC_FFMPEG_libavcodec_LIBDIR}
99 NO_DEFAULT_PATH)
100 find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec)
101
102 find_library(FFMPEG_LIBAVFILTER
103 NAMES avfilter libavfilter
104 PATH_SUFFIXES ffmpeg/libavfilter
105 PATHS ${PC_FFMPEG_libavfilter_LIBDIR}
106 NO_DEFAULT_PATH)
107 find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter)
108
109 find_library(FFMPEG_LIBAVFORMAT
110 NAMES avformat libavformat
111 PATH_SUFFIXES ffmpeg/libavformat
112 PATHS ${PC_FFMPEG_libavformat_LIBDIR}
113 NO_DEFAULT_PATH)
114 find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat)
115
116 find_library(FFMPEG_LIBAVUTIL
117 NAMES avutil libavutil
118 PATH_SUFFIXES ffmpeg/libavutil
119 PATHS ${PC_FFMPEG_libavutil_LIBDIR}
120 NO_DEFAULT_PATH)
121 find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil)
122
123 find_library(FFMPEG_LIBSWSCALE
124 NAMES swscale libswscale
125 PATH_SUFFIXES ffmpeg/libswscale
126 PATHS ${PC_FFMPEG_libswscale_LIBDIR}
127 NO_DEFAULT_PATH)
128 find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale)
129
130 find_library(FFMPEG_LIBSWRESAMPLE
131 NAMES swresample libswresample
132 PATH_SUFFIXES ffmpeg/libswresample
133 PATHS ${PC_FFMPEG_libswresample_LIBDIR}
134 NO_DEFAULT_PATH)
135 find_library(FFMPEG_LIBSWRESAMPLE NAMES NAMES swresample libswresample PATH_SUFFIXES ffmpeg/libswresample)
136
137 find_library(FFMPEG_LIBPOSTPROC
138 NAMES postproc libpostproc
139 PATH_SUFFIXES ffmpeg/libpostproc
140 PATHS ${PC_FFMPEG_libpostproc_LIBDIR}
141 NO_DEFAULT_PATH)
142 find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc)
143
144 if((PC_FFMPEG_FOUND
145 AND PC_FFMPEG_libavcodec_VERSION
146 AND PC_FFMPEG_libavfilter_VERSION
147 AND PC_FFMPEG_libavformat_VERSION
148 AND PC_FFMPEG_libavutil_VERSION
149 AND PC_FFMPEG_libswscale_VERSION
150 AND PC_FFMPEG_libswresample_VERSION
151 AND PC_FFMPEG_libpostproc_VERSION)
152 OR WIN32)
153 set(FFMPEG_VERSION ${REQUIRED_FFMPEG_VERSION})
154
155
156 include(FindPackageHandleStandardArgs)
157 find_package_handle_standard_args(FFMPEG
158 VERSION_VAR FFMPEG_VERSION
159 REQUIRED_VARS FFMPEG_INCLUDE_DIRS
160 FFMPEG_LIBAVCODEC
161 FFMPEG_LIBAVFILTER
162 FFMPEG_LIBAVFORMAT
163 FFMPEG_LIBAVUTIL
164 FFMPEG_LIBSWSCALE
165 FFMPEG_LIBSWRESAMPLE
166 FFMPEG_LIBPOSTPROC
167 FFMPEG_VERSION
168 FAIL_MESSAGE "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, please consider using -DENABLE_INTERNAL_FFMPEG=ON")
169
170 else()
171 message(STATUS "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, falling back to internal build")
172 unset(FFMPEG_INCLUDE_DIRS)
173 unset(FFMPEG_INCLUDE_DIRS CACHE)
174 unset(FFMPEG_LIBRARIES)
175 unset(FFMPEG_LIBRARIES CACHE)
176 unset(FFMPEG_DEFINITIONS)
177 unset(FFMPEG_DEFINITIONS CACHE)
178 endif()
179
180 if(FFMPEG_FOUND)
181 set(FFMPEG_LDFLAGS ${PC_FFMPEG_LDFLAGS} CACHE STRING "ffmpeg linker flags")
182
183 # check if ffmpeg libs are statically linked
184 set(FFMPEG_LIB_TYPE SHARED)
185 foreach(_fflib IN LISTS FFMPEG_LIBRARIES)
186 if(${_fflib} MATCHES ".+\.a$" AND PC_FFMPEG_STATIC_LDFLAGS)
187 set(FFMPEG_LDFLAGS ${PC_FFMPEG_STATIC_LDFLAGS} CACHE STRING "ffmpeg linker flags" FORCE)
188 set(FFMPEG_LIB_TYPE STATIC)
189 break()
190 endif()
191 endforeach()
192
193 set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER}
194 ${FFMPEG_LIBAVFORMAT} ${FFMPEG_LIBAVUTIL}
195 ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBSWRESAMPLE}
196 ${FFMPEG_LIBPOSTPROC} ${FFMPEG_LDFLAGS})
197 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VERSION}\")
198
199 if(NOT TARGET ffmpeg)
200 add_library(ffmpeg ${FFMPEG_LIB_TYPE} IMPORTED)
201 set_target_properties(ffmpeg PROPERTIES
202 FOLDER "External Projects"
203 IMPORTED_LOCATION "${FFMPEG_LIBRARIES}"
204 INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}"
205 INTERFACE_LINK_LIBRARIES "${FFMPEG_LDFLAGS}"
206 INTERFACE_COMPILE_DEFINITIONS "${FFMPEG_DEFINITIONS}")
207 endif()
208 endif()
209endif()
210
211# Internal FFMPEG
212if(NOT FFMPEG_FOUND)
213 include(ExternalProject)
214 file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER)
215 string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}")
216 list(GET FFMPEG_VER 0 FFMPEG_VER)
217 string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER)
218 string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}")
219 list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL)
220 string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL)
221
222 # allow user to override the download URL with a local tarball
223 # needed for offline build envs
224 if(FFMPEG_URL)
225 get_filename_component(FFMPEG_URL "${FFMPEG_URL}" ABSOLUTE)
226 else()
227 set(FFMPEG_URL ${FFMPEG_BASE_URL}/${FFMPEG_VER}.tar.gz)
228 endif()
229 if(VERBOSE)
230 message(STATUS "FFMPEG_URL: ${FFMPEG_URL}")
231 endif()
232
233 if(CMAKE_CROSSCOMPILING)
234 set(CROSS_ARGS -DDEPENDS_PATH=${DEPENDS_PATH}
235 -DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}
236 -DCROSSCOMPILING=${CMAKE_CROSSCOMPILING}
237 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
238 -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
239 -DCPU=${WITH_CPU}
240 -DOS=${OS}
241 -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
242 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
243 -DCMAKE_AR=${CMAKE_AR}
244 -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
245 -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS})
246 endif()
247
248 externalproject_add(ffmpeg
249 URL ${FFMPEG_URL}
250 DOWNLOAD_NAME ffmpeg-${FFMPEG_VER}.tar.gz
251 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
252 PREFIX ${CORE_BUILD_DIR}/ffmpeg
253 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
254 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
255 -DFFMPEG_VER=${FFMPEG_VER}
256 -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
257 ${CROSS_ARGS}
258 PATCH_COMMAND ${CMAKE_COMMAND} -E copy
259 ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/CMakeLists.txt
260 <SOURCE_DIR> &&
261 ${CMAKE_COMMAND} -E copy
262 ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FindGnuTls.cmake
263 <SOURCE_DIR>)
264
265 file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper
266"#!/bin/bash
267if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]]
268then
269 avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec`
270 avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat`
271 avfilter=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavfilter`
272 avutil=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavutil`
273 swscale=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswscale`
274 swresample=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libswresample`
275 gnutls=`PKG_CONFIG_PATH=${DEPENDS_PATH}/lib/pkgconfig/ ${PKG_CONFIG_EXECUTABLE} --libs-only-l --static --silence-errors gnutls`
276 $@ $avcodec $avformat $avcodec $avfilter $swscale $swresample -lpostproc $gnutls
277else
278 $@
279fi")
280 file(COPY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper
281 DESTINATION ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
282 FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE)
283 set(FFMPEG_LINK_EXECUTABLE "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg-link-wrapper <CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>" PARENT_SCOPE)
284 set(FFMPEG_CREATE_SHARED_LIBRARY "${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg-link-wrapper <CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>" PARENT_SCOPE)
285 set(FFMPEG_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
286 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\"
287 -DUSE_STATIC_FFMPEG=1)
288 set(FFMPEG_FOUND 1)
289 set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects")
290endif()
291
292mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_LDFLAGS FFMPEG_DEFINITIONS FFMPEG_FOUND)
diff --git a/project/cmake/modules/FindFreeType.cmake b/project/cmake/modules/FindFreeType.cmake
deleted file mode 100644
index fb4c668..0000000
--- a/project/cmake/modules/FindFreeType.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1#.rst:
2# FindFreetype
3# ------------
4# Finds the FreeType library
5#
6# This will will define the following variables::
7#
8# FREETYPE_FOUND - system has FreeType
9# FREETYPE_INCLUDE_DIRS - the FreeType include directory
10# FREETYPE_LIBRARIES - the FreeType libraries
11#
12# and the following imported targets::
13#
14# FreeType::FreeType - The FreeType library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_FREETYPE freetype2 QUIET)
18endif()
19
20find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h freetype.h
21 PATHS ${PC_FREETYPE_INCLUDEDIR}
22 ${PC_FREETYPE_INCLUDE_DIRS})
23find_library(FREETYPE_LIBRARY NAMES freetype freetype246MT
24 PATHS ${PC_FREETYPE_LIBDIR})
25
26set(FREETYPE_VERSION ${PC_FREETYPE_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(FreeType
30 REQUIRED_VARS FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR
31 VERSION_VAR FREETYPE_VERSION)
32
33if(FREETYPE_FOUND)
34 set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
35 set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR})
36
37 if(NOT TARGET FreeType::FreeType)
38 add_library(FreeType::FreeType UNKNOWN IMPORTED)
39 set_target_properties(FreeType::FreeType PROPERTIES
40 IMPORTED_LOCATION "${FREETYPE_LIBRARY}"
41 INTERFACE_INCLUDE_DIRECTORIES "${FREETYPE_INCLUDE_DIR}")
42 endif()
43endif()
44
45mark_as_advanced(FREETYPE_INCLUDE_DIR FREETYPE_LIBRARY)
diff --git a/project/cmake/modules/FindFribidi.cmake b/project/cmake/modules/FindFribidi.cmake
deleted file mode 100644
index dcaeb48..0000000
--- a/project/cmake/modules/FindFribidi.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
1#.rst:
2# FindFribidi
3# -----------
4# Finds the GNU FriBidi library
5#
6# This will will define the following variables::
7#
8# FRIBIDI_FOUND - system has FriBidi
9# FRIBIDI_INCLUDE_DIRS - the FriBidi include directory
10# FRIBIDI_LIBRARIES - the FriBidi libraries
11#
12# and the following imported targets::
13#
14# FriBidi::FriBidi - The FriBidi library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_FRIBIDI fribidi QUIET)
18endif()
19
20find_path(FRIBIDI_INCLUDE_DIR NAMES fribidi/fribidi.h
21 PATHS ${PC_FRIBIDI_INCLUDEDIR})
22find_library(FRIBIDI_LIBRARY NAMES fribidi libfribidi
23 PATHS ${PC_FRIBIDI_LIBDIR})
24
25set(FRIBIDI_VERSION ${PC_FRIBIDI_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(FriBidi
29 REQUIRED_VARS FRIBIDI_LIBRARY FRIBIDI_INCLUDE_DIR
30 VERSION_VAR FRIBIDI_VERSION)
31
32if(FRIBIDI_FOUND)
33 set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY})
34 set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR})
35 if(PC_FRIBIDI_CFLAGS)
36 set(FRIBIDI_DEFINITIONS ${PC_FRIBIDI_CFLAGS})
37 endif()
38
39 if(NOT TARGET FriBidi::FriBidi)
40 add_library(FriBidi::FriBidi UNKNOWN IMPORTED)
41 set_target_properties(FriBidi::FriBidi PROPERTIES
42 IMPORTED_LOCATION "${FRIBIDI_LIBRARY}"
43 INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}"
44 INTERFACE_COMPILE_OPTIONS "${FRIBIDI_DEFINITIONS}")
45 endif()
46endif()
47
48mark_as_advanced(FRIBIDI_INCLUDE_DIR FRIBIDI_LIBRARY)
diff --git a/project/cmake/modules/FindGIF.cmake b/project/cmake/modules/FindGIF.cmake
deleted file mode 100644
index 8649bd4..0000000
--- a/project/cmake/modules/FindGIF.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
1#.rst:
2# FindGIF
3# -------
4# Finds the libgif library
5#
6# This will will define the following variables::
7#
8# GIF_FOUND - system has libgif
9# GIF_INCLUDE_DIRS - the libgif include directory
10# GIF_LIBRARIES - the libgif libraries
11#
12# and the following imported targets::
13#
14# GIF::GIF - The libgif library
15
16find_path(GIF_INCLUDE_DIR gif_lib.h)
17
18include(FindPackageHandleStandardArgs)
19if(NOT WIN32)
20 find_library(GIF_LIBRARY NAMES gif)
21 find_package_handle_standard_args(GIF
22 REQUIRED_VARS GIF_LIBRARY GIF_INCLUDE_DIR)
23else()
24 # Dynamically loaded DLL
25 find_package_handle_standard_args(GIF
26 REQUIRED_VARS GIF_INCLUDE_DIR)
27endif()
28
29if(GIF_FOUND)
30 set(GIF_LIBRARIES ${GIF_LIBRARY})
31 set(GIF_INCLUDE_DIRS ${GIF_INCLUDE_DIR})
32 set(GIF_DEFINITIONS -DHAVE_LIBGIF=1)
33
34 if(NOT TARGET GIF::GIF)
35 add_library(GIF::GIF UNKNOWN IMPORTED)
36 if(GIF_LIBRARY)
37 set_target_properties(GIF::GIF PROPERTIES
38 IMPORTED_LOCATION "${GIF_LIBRARY}")
39 endif()
40 set_target_properties(GIF::GIF PROPERTIES
41 INTERFACE_INCLUDE_DIRECTORIES "${GIF_INCLUDE_DIR}"
42 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBGIF=1)
43 endif()
44endif()
45
46mark_as_advanced(GIF_INCLUDE_DIR GIF_LIBRARY)
diff --git a/project/cmake/modules/FindJsonSchemaBuilder.cmake b/project/cmake/modules/FindJsonSchemaBuilder.cmake
deleted file mode 100644
index ecff1e4..0000000
--- a/project/cmake/modules/FindJsonSchemaBuilder.cmake
+++ /dev/null
@@ -1,21 +0,0 @@
1#.rst:
2# FindJsonSchemaBuilder
3# ---------------------
4# Finds the JsonSchemaBuilder
5#
6# This will define the following (imported) targets::
7#
8# JsonSchemaBuilder::JsonSchemaBuilder - The JsonSchemaBuilder executable
9
10if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder)
11 if(CMAKE_CROSSCOMPILING)
12 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
13 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
14 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder")
15 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES FOLDER Tools)
16 else()
17 add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder)
18 add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder)
19 set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools)
20 endif()
21endif()
diff --git a/project/cmake/modules/FindLibDRM.cmake b/project/cmake/modules/FindLibDRM.cmake
deleted file mode 100644
index 35d632e..0000000
--- a/project/cmake/modules/FindLibDRM.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1#.rst:
2# FindLibDRM
3# ----------
4# Finds the LibDRM library
5#
6# This will will define the following variables::
7#
8# LIBDRM_FOUND - system has LibDRM
9# LIBDRM_INCLUDE_DIRS - the LibDRM include directory
10# LIBDRM_LIBRARIES - the LibDRM libraries
11#
12# and the following imported targets::
13#
14# LibDRM::LibDRM - The LibDRM library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_LIBDRM libdrm QUIET)
18endif()
19
20find_path(LIBDRM_INCLUDE_DIR NAMES drm.h
21 PATH_SUFFIXES libdrm drm
22 PATHS ${PC_LIBDRM_INCLUDEDIR})
23find_library(LIBDRM_LIBRARY NAMES drm
24 PATHS ${PC_LIBDRM_LIBDIR})
25
26set(LIBDRM_VERSION ${PC_LIBDRM_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(LibDRM
30 REQUIRED_VARS LIBDRM_LIBRARY LIBDRM_INCLUDE_DIR
31 VERSION_VAR LIBDRM_VERSION)
32
33if(LIBDRM_FOUND)
34 set(LIBDRM_LIBRARIES ${LIBDRM_LIBRARY})
35 set(LIBDRM_INCLUDE_DIRS ${LIBDRM_INCLUDE_DIR})
36
37 if(NOT TARGET LIBDRM::LIBDRM)
38 add_library(LIBDRM::LIBDRM UNKNOWN IMPORTED)
39 set_target_properties(LIBDRM::LIBDRM PROPERTIES
40 IMPORTED_LOCATION "${LIBDRM_LIBRARY}"
41 INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIR}")
42 endif()
43endif()
44
45mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY)
diff --git a/project/cmake/modules/FindLibDvd.cmake b/project/cmake/modules/FindLibDvd.cmake
deleted file mode 100644
index fa644d6..0000000
--- a/project/cmake/modules/FindLibDvd.cmake
+++ /dev/null
@@ -1,219 +0,0 @@
1if(NOT WIN32)
2 if(CMAKE_CROSSCOMPILING)
3 set(_dvdlibs dvdread dvdnav)
4 set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY)
5 if(ENABLE_DVDCSS)
6 list(APPEND _dvdlibs libdvdcss)
7 list(APPEND _handlevars DVDCSS_LIBRARY)
8 endif()
9
10 if(PKG_CONFIG_FOUND)
11 pkg_check_modules(PC_DVD ${_dvdlibs} QUIET)
12 endif()
13
14 find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS})
15 find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR})
16 find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR})
17 if(ENABLE_DVDCSS)
18 find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR})
19 endif()
20
21 include(FindPackageHandleStandardArgs)
22 find_package_handle_standard_args(LIBDVD REQUIRED_VARS ${_handlevars})
23 if(LIBDVD_FOUND)
24 add_library(dvdnav UNKNOWN IMPORTED)
25 set_target_properties(dvdnav PROPERTIES
26 FOLDER "External Projects"
27 IMPORTED_LOCATION "${DVDNAV_LIBRARY}")
28
29 add_library(dvdread UNKNOWN IMPORTED)
30 set_target_properties(dvdread PROPERTIES
31 FOLDER "External Projects"
32 IMPORTED_LOCATION "${DVDREAD_LIBRARY}")
33 add_library(dvdcss UNKNOWN IMPORTED)
34 set_target_properties(dvdcss PROPERTIES
35 FOLDER "External Projects"
36 IMPORTED_LOCATION "${DVDCSS_LIBRARY}")
37
38 set(_linklibs ${DVDREAD_LIBRARY})
39 if(ENABLE_DVDCSS)
40 list(APPEND _linklibs ${DVDCSS_LIBRARY})
41 endif()
42 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}")
43 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY})
44 mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES)
45 endif()
46 else()
47 set(dvdlibs libdvdread libdvdnav)
48 if(ENABLE_DVDCSS)
49 list(APPEND dvdlibs libdvdcss)
50 endif()
51 foreach(dvdlib ${dvdlibs})
52 file(GLOB VERSION_FILE ${CORE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION)
53 file(STRINGS ${VERSION_FILE} VER)
54 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
55 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
56 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
57 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
58 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
59 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
60 string(TOUPPER ${dvdlib} DVDLIB)
61
62 # allow user to override the download URL with a local tarball
63 # needed for offline build envs
64 # allow upper and lowercase var name
65 if(${dvdlib}_URL)
66 set(${DVDLIB}_URL ${${dvdlib}_URL})
67 endif()
68 if(${DVDLIB}_URL)
69 get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE)
70 else()
71 set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz)
72 endif()
73 if(VERBOSE)
74 message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}")
75 endif()
76 endforeach()
77
78 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
79 if(CMAKE_CROSSCOMPILING)
80 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
81 endif()
82
83 if(APPLE)
84 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation")
85 endif()
86
87 set(HOST_ARCH ${ARCH})
88 if(CORE_SYSTEM_NAME STREQUAL android)
89 if(ARCH STREQUAL arm)
90 set(HOST_ARCH arm-linux-androideabi)
91 elseif(ARCH STREQUAL aarch64)
92 set(HOST_ARCH aarch64-linux-android)
93 elseif(ARCH STREQUAL i486-linux)
94 set(HOST_ARCH i686-linux-android)
95 endif()
96 endif()
97
98 if(ENABLE_DVDCSS)
99 set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a)
100 ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL}
101 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz
102 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
103 PREFIX ${CORE_BUILD_DIR}/libdvd
104 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
105 --target=${HOST_ARCH}
106 --host=${HOST_ARCH}
107 --disable-doc
108 --enable-static
109 --disable-shared
110 --with-pic
111 --prefix=<INSTALL_DIR>
112 --libdir=<INSTALL_DIR>/lib
113 "${EXTRA_FLAGS}"
114 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
115 "LDFLAGS=${CMAKE_LD_FLAGS}"
116 BUILD_BYPRODUCTS ${DVDCSS_LIBRARY})
117 ExternalProject_Add_Step(dvdcss autoreconf
118 DEPENDEES download update patch
119 DEPENDERS configure
120 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
121 WORKING_DIRECTORY <SOURCE_DIR>)
122
123 set_target_properties(dvdcss PROPERTIES FOLDER "External Projects")
124 endif()
125
126 set(DVDREAD_CFLAGS "-D_XBMC")
127 if(ENABLE_DVDCSS)
128 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
129 endif()
130
131 set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a)
132 ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL}
133 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz
134 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
135 PREFIX ${CORE_BUILD_DIR}/libdvd
136 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
137 --target=${HOST_ARCH}
138 --host=${HOST_ARCH}
139 --enable-static
140 --disable-shared
141 --with-pic
142 --prefix=<INSTALL_DIR>
143 --libdir=<INSTALL_DIR>/lib
144 "${EXTRA_FLAGS}"
145 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
146 "LDFLAGS=${CMAKE_LD_FLAGS}"
147 BUILD_BYPRODUCTS ${DVDREAD_LIBRARY})
148 ExternalProject_Add_Step(dvdread autoreconf
149 DEPENDEES download update patch
150 DEPENDERS configure
151 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
152 WORKING_DIRECTORY <SOURCE_DIR>)
153 if(ENABLE_DVDCSS)
154 add_dependencies(dvdread dvdcss)
155 endif()
156
157 set_target_properties(dvdread PROPERTIES FOLDER "External Projects")
158
159 if(ENABLE_DVDCSS)
160 set(DVDNAV_LIBS -ldvdcss)
161 endif()
162
163 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a)
164 ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL}
165 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz
166 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
167 PREFIX ${CORE_BUILD_DIR}/libdvd
168 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
169 --target=${HOST_ARCH}
170 --host=${HOST_ARCH}
171 --enable-static
172 --disable-shared
173 --with-pic
174 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
175 --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib
176 "${EXTRA_FLAGS}"
177 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib"
178 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
179 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}"
180 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la"
181 "LIBS=${DVDNAV_LIBS}"
182 BUILD_BYPRODUCTS ${DVDNAV_LIBRARY})
183 ExternalProject_Add_Step(dvdnav autoreconf
184 DEPENDEES download update patch
185 DEPENDERS configure
186 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
187 WORKING_DIRECTORY <SOURCE_DIR>)
188 add_dependencies(dvdnav dvdread)
189 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
190
191 set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY})
192 # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well
193 # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically
194 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}")
195
196 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include)
197 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY})
198 if(ENABLE_DVDCSS)
199 list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY})
200 endif()
201 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
202 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
203 endif()
204else()
205 # Dynamically loaded on Windows
206 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CORE_SOURCE_DIR}/lib/libdvd/include)
207
208 include(FindPackageHandleStandardArgs)
209 find_package_handle_standard_args(LIBDVD REQUIRED_VARS LIBDVD_INCLUDE_DIR)
210
211 if(LIBDVD_FOUND)
212 set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR})
213
214 add_custom_target(dvdnav)
215 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
216 endif()
217
218 mark_as_advanced(LIBDVD_INCLUDE_DIR)
219endif()
diff --git a/project/cmake/modules/FindLibUSB.cmake b/project/cmake/modules/FindLibUSB.cmake
deleted file mode 100644
index e976bf4..0000000
--- a/project/cmake/modules/FindLibUSB.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1#.rst:
2# FindLibUSB
3# ----------
4# Finds the USB library
5#
6# This will will define the following variables::
7#
8# LIBUSB_FOUND - system has LibUSB
9# LIBUSB_INCLUDE_DIRS - the USB include directory
10# LIBUSB_LIBRARIES - the USB libraries
11#
12# and the following imported targets::
13#
14# LibUSB::LibUSB - The USB library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_LIBUSB libusb QUIET)
18endif()
19
20find_path(LIBUSB_INCLUDE_DIR usb.h
21 PATHS ${PC_LIBUSB_INCLUDEDIR})
22find_library(LIBUSB_LIBRARY NAMES usb
23 PATHS ${PC_LIBUSB_INCLUDEDIR})
24set(LIBUSB_VERSION ${PC_LIBUSB_VERSION})
25
26include(FindPackageHandleStandardArgs)
27find_package_handle_standard_args(LIBUSB
28 REQUIRED_VARS LIBUSB_LIBRARY LIBUSB_INCLUDE_DIR
29 VERSION_VAR LIBUSB_VERSION)
30
31if(LIBUSB_FOUND)
32 set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIR})
33 set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
34 set(LIBUSB_DEFINITIONS -DUSE_LIBUSB=1)
35
36 if(NOT TARGET LibUSB::LibUSB)
37 add_library(LibUSB::LibUSB UNKNOWN IMPORTED)
38 set_target_properties(LibUSB::LibUSB PROPERTIES
39 IMPORTED_LOCATION "${LIBUSB_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${LIBUSB_INCLUDE_DIR}"
41 INTERFACE_COMPILE_DEFINITIONS USE_LIBUSB=1)
42 endif()
43endif()
44
45mark_as_advanced(USB_INCLUDE_DIR USB_LIBRARY)
diff --git a/project/cmake/modules/FindLibXml2.cmake b/project/cmake/modules/FindLibXml2.cmake
deleted file mode 100644
index caeb945..0000000
--- a/project/cmake/modules/FindLibXml2.cmake
+++ /dev/null
@@ -1,84 +0,0 @@
1#.rst:
2# FindLibXml2
3# -----------
4#
5# Try to find the LibXml2 xml processing library
6#
7# Once done this will define
8#
9# ::
10#
11# LIBXML2_FOUND - System has LibXml2
12# LIBXML2_INCLUDE_DIR - The LibXml2 include directory
13# LIBXML2_LIBRARIES - The libraries needed to use LibXml2
14# LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2
15# LIBXML2_XMLLINT_EXECUTABLE - The XML checking tool xmllint coming with LibXml2
16# LIBXML2_VERSION_STRING - the version of LibXml2 found (since CMake 2.8.8)
17
18#=============================================================================
19# Copyright 2006-2009 Kitware, Inc.
20# Copyright 2006 Alexander Neundorf <neundorf@kde.org>
21# Copyright 2016 Team Kodi
22#
23# Distributed under the OSI-approved BSD License (the "License");
24# see accompanying file Copyright.txt for details.
25#
26# This software is distributed WITHOUT ANY WARRANTY; without even the
27# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
28# See the License for more information.
29#=============================================================================
30# (To distribute this file outside of CMake, substitute the full
31# License text for the above reference.)
32
33# use pkg-config to get the directories and then use these values
34# in the find_path() and find_library() calls
35find_package(PkgConfig QUIET)
36PKG_CHECK_MODULES(PC_LIBXML QUIET libxml-2.0)
37set(LIBXML2_DEFINITIONS ${PC_LIBXML_CFLAGS_OTHER})
38
39find_path(LIBXML2_INCLUDE_DIR NAMES libxml/xpath.h
40 HINTS
41 ${PC_LIBXML_INCLUDEDIR}
42 ${PC_LIBXML_INCLUDE_DIRS}
43 PATH_SUFFIXES libxml2
44 )
45
46find_library(LIBXML2_LIBRARY NAMES xml2 libxml2
47 HINTS
48 ${PC_LIBXML_LIBDIR}
49 ${PC_LIBXML_LIBRARY_DIRS}
50 )
51
52find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint)
53# for backwards compat. with KDE 4.0.x:
54set(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}")
55
56# Make sure to use static flags if apropriate
57if(PC_LIBXML_FOUND)
58 if(${LIBXML2_LIBRARY} MATCHES ".+\.a$" AND PC_LIBXML_STATIC_LDFLAGS)
59 set(LIBXML2_LIBRARY ${LIBXML2_LIBRARY} ${PC_LIBXML_STATIC_LDFLAGS})
60 endif()
61endif()
62
63if(PC_LIBXML_VERSION)
64 set(LIBXML2_VERSION_STRING ${PC_LIBXML_VERSION})
65elseif(LIBXML2_INCLUDE_DIR AND EXISTS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h")
66 file(STRINGS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h" libxml2_version_str
67 REGEX "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\".*\"")
68 string(REGEX REPLACE "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
69 LIBXML2_VERSION_STRING "${libxml2_version_str}")
70 unset(libxml2_version_str)
71endif()
72
73
74include(FindPackageHandleStandardArgs)
75FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2
76 REQUIRED_VARS LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR
77 VERSION_VAR LIBXML2_VERSION_STRING)
78
79if(LibXml2_FOUND)
80 set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY})
81 set(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR})
82endif()
83
84mark_as_advanced(LIBXML2_INCLUDE_DIRS LIBXML2_LIBRARIES LIBXML2_XMLLINT_EXECUTABLE)
diff --git a/project/cmake/modules/FindLzo2.cmake b/project/cmake/modules/FindLzo2.cmake
deleted file mode 100644
index 4f7313f..0000000
--- a/project/cmake/modules/FindLzo2.cmake
+++ /dev/null
@@ -1,37 +0,0 @@
1#.rst:
2# FindLzo2
3# --------
4# Finds the Lzo2 library
5#
6# This will will define the following variables::
7#
8# LZO2_FOUND - system has Lzo2
9# LZO2_INCLUDE_DIRS - the Lzo2 include directory
10# LZO2_LIBRARIES - the Lzo2 libraries
11#
12# and the following imported targets::
13#
14# Lzo2::Lzo2 - The Lzo2 library
15
16find_path(LZO2_INCLUDE_DIR NAMES lzo1x.h
17 PATH_SUFFIXES lzo)
18
19find_library(LZO2_LIBRARY NAMES lzo2 liblzo2)
20
21include(FindPackageHandleStandardArgs)
22find_package_handle_standard_args(Lzo2
23 REQUIRED_VARS LZO2_LIBRARY LZO2_INCLUDE_DIR)
24
25if(LZO2_FOUND)
26 set(LZO2_LIBRARIES ${LZO2_LIBRARY})
27 set(LZO2_INCLUDE_DIRS ${LZO2_INCLUDE_DIR})
28
29 if(NOT TARGET Lzo2::Lzo2)
30 add_library(Lzo2::Lzo2 UNKNOWN IMPORTED)
31 set_target_properties(Lzo2::Lzo2 PROPERTIES
32 IMPORTED_LOCATION "${LZO2_LIBRARY}"
33 INTERFACE_INCLUDE_DIRECTORIES "${LZO2_INCLUDE_DIR}")
34 endif()
35endif()
36
37mark_as_advanced(LZO2_INCLUDE_DIR LZO2_LIBRARY)
diff --git a/project/cmake/modules/FindMMAL.cmake b/project/cmake/modules/FindMMAL.cmake
deleted file mode 100644
index 8843983..0000000
--- a/project/cmake/modules/FindMMAL.cmake
+++ /dev/null
@@ -1,36 +0,0 @@
1# - Try to find MMAL
2# Once done this will define
3#
4# MMAL_FOUND - system has MMAL
5# MMAL_INCLUDE_DIRS - the MMAL include directory
6# MMAL_LIBRARIES - The MMAL libraries
7
8if(PKG_CONFIG_FOUND)
9 pkg_check_modules(MMAL mmal QUIET)
10endif()
11
12if(NOT MMAL_FOUND)
13 find_path(MMAL_INCLUDE_DIRS interface/mmal/mmal.h)
14 find_library(MMAL_LIBRARY mmal)
15 find_library(MMALCORE_LIBRARY mmal_core)
16 find_library(MMALUTIL_LIBRARY mmal_util)
17 find_library(MMALCLIENT_LIBRARY mmal_vc_client)
18 find_library(MMALCOMPONENT_LIBRARY mmal_components)
19 find_library(BCM_LIBRARY bcm_host)
20 find_library(VCHIQ_LIBRARY vchiq_arm)
21 find_library(VCOS_LIBRARY vcos)
22 find_library(VCSM_LIBRARY vcsm)
23 find_library(CONTAINER_LIBRARY containers)
24
25 set(MMAL_LIBRARIES ${MMAL_LIBRARY} ${MMALCORE_LIBRARY} ${MMALUTIL_LIBRARY}
26 ${MMALCLIENT_LIBRARY} ${MMALCOMPONENT_LIBRARY}
27 ${BCM_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY} ${VCSM_LIBRARY} ${CONTAINER_LIBRARY}
28 CACHE STRING "mmal libraries" FORCE)
29endif()
30
31include(FindPackageHandleStandardArgs)
32find_package_handle_standard_args(MMAL DEFAULT_MSG MMAL_LIBRARIES MMAL_INCLUDE_DIRS)
33
34list(APPEND MMAL_DEFINITIONS -DHAVE_MMAL=1 -DHAS_MMAL=1)
35
36mark_as_advanced(MMAL_INCLUDE_DIRS MMAL_LIBRARIES MMAL_DEFINITIONS)
diff --git a/project/cmake/modules/FindMicroHttpd.cmake b/project/cmake/modules/FindMicroHttpd.cmake
deleted file mode 100644
index 7d011fa..0000000
--- a/project/cmake/modules/FindMicroHttpd.cmake
+++ /dev/null
@@ -1,49 +0,0 @@
1#.rst:
2# FindMicroHttpd
3# --------------
4# Finds the MicroHttpd library
5#
6# This will will define the following variables::
7#
8# MICROHTTPD_FOUND - system has MicroHttpd
9# MICROHTTPD_INCLUDE_DIRS - the MicroHttpd include directory
10# MICROHTTPD_LIBRARIES - the MicroHttpd libraries
11# MICROHTTPD_DEFINITIONS - the MicroHttpd definitions
12#
13# and the following imported targets::
14#
15# MicroHttpd::MicroHttpd - The MicroHttpd library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_MICROHTTPD libmicrohttpd>=0.4 QUIET)
19endif()
20
21find_path(MICROHTTPD_INCLUDE_DIR NAMES microhttpd.h
22 PATHS ${PC_MICROHTTPD_INCLUDEDIR})
23find_library(MICROHTTPD_LIBRARY NAMES microhttpd libmicrohttpd
24 PATHS ${PC_MICROHTTPD_LIBDIR})
25
26set(MICROHTTPD_VERSION ${PC_MICROHTTPD_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(MicroHttpd
30 REQUIRED_VARS MICROHTTPD_LIBRARY MICROHTTPD_INCLUDE_DIR
31 VERSION_VAR MICROHTTPD_VERSION)
32
33if(MICROHTTPD_FOUND)
34 set(MICROHTTPD_LIBRARIES ${MICROHTTPD_LIBRARY})
35 set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR})
36 set(MICROHTTPD_DEFINITIONS -DHAVE_LIBMICROHTTPD=1)
37
38 if(NOT WIN32)
39 find_library(GCRYPT_LIBRARY gcrypt)
40 find_library(GPGERROR_LIBRARY gpg-error)
41 list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY})
42 mark_as_advanced(GCRYPT_LIBRARY GPGERROR_LIBRARY)
43 if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android)
44 list(APPEND MICROHTTPD_LIBRARIES "-lrt")
45 endif()
46 endif()
47endif()
48
49mark_as_advanced(MICROHTTPD_LIBRARY MICROHTTPD_INCLUDE_DIR)
diff --git a/project/cmake/modules/FindMir.cmake b/project/cmake/modules/FindMir.cmake
deleted file mode 100644
index 8847a61..0000000
--- a/project/cmake/modules/FindMir.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
1# FindMir
2# -------
3# Finds the Mir library
4#
5# This will will define the following variables::
6#
7# MIR_FOUND - the system has Mir
8# MIR_INCLUDE_DIRS - the Mir include directory
9# MIR_LIBRARIES - the Mir libraries
10# MIR_DEFINITIONS - the Mir definitions
11
12
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules (PC_MIR mirclient QUIET)
15endif()
16
17find_path(MIR_INCLUDE_DIR NAMES mir_toolkit/mir_client_library.h
18 PATHS ${PC_MIR_INCLUDE_DIRS})
19
20find_library(MIR_LIBRARY NAMES mirclient
21 PATHS ${PC_MIR_LIBRARIES} ${PC_MIR_LIBRARY_DIRS})
22
23include (FindPackageHandleStandardArgs)
24find_package_handle_standard_args (MIR
25 REQUIRED_VARS MIR_LIBRARY MIR_INCLUDE_DIR)
26
27if (MIR_FOUND)
28 set(MIR_LIBRARIES ${MIR_LIBRARY})
29 set(MIR_INCLUDE_DIRS ${PC_MIR_INCLUDE_DIRS})
30 set(MIR_DEFINITIONS -DHAVE_MIR=1)
31endif()
32
33mark_as_advanced (MIR_LIBRARY MIR_INCLUDE_DIR)
diff --git a/project/cmake/modules/FindMySqlClient.cmake b/project/cmake/modules/FindMySqlClient.cmake
deleted file mode 100644
index ceccea3..0000000
--- a/project/cmake/modules/FindMySqlClient.cmake
+++ /dev/null
@@ -1,69 +0,0 @@
1#.rst:
2# FindMySqlClient
3# ---------------
4# Finds the MySqlClient library
5#
6# This will will define the following variables::
7#
8# MYSQLCLIENT_FOUND - system has MySqlClient
9# MYSQLCLIENT_INCLUDE_DIRS - the MySqlClient include directory
10# MYSQLCLIENT_LIBRARIES - the MySqlClient libraries
11# MYSQLCLIENT_DEFINITIONS - the MySqlClient compile definitions
12#
13# and the following imported targets::
14#
15# MySqlClient::MySqlClient - The MySqlClient library
16
17# Don't find system wide installed version on Windows
18if(WIN32)
19 set(EXTRA_FIND_ARGS NO_SYSTEM_ENVIRONMENT_PATH)
20else()
21 set(EXTRA_FIND_ARGS)
22endif()
23
24find_path(MYSQLCLIENT_INCLUDE_DIR mysql/mysql_time.h)
25find_library(MYSQLCLIENT_LIBRARY_RELEASE NAMES mysqlclient libmysql
26 PATH_SUFFIXES mysql
27 ${EXTRA_FIND_ARGS})
28find_library(MYSQLCLIENT_LIBRARY_DEBUG NAMES mysqlclient libmysql
29 PATH_SUFFIXES mysql
30 ${EXTRA_FIND_ARGS})
31
32if(MYSQLCLIENT_INCLUDE_DIR AND EXISTS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h")
33 file(STRINGS "${MYSQLCLIENT_INCLUDE_DIR}/mysql/mysql_version.h" mysql_version_str REGEX "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\".*\".*")
34 string(REGEX REPLACE "^#define[\t ]+LIBMYSQL_VERSION[\t ]+\"([^\"]+)\".*" "\\1" MYSQLCLIENT_VERSION_STRING "${mysql_version_str}")
35 unset(mysql_version_str)
36endif()
37
38include(SelectLibraryConfigurations)
39select_library_configurations(MYSQLCLIENT)
40
41include(FindPackageHandleStandardArgs)
42find_package_handle_standard_args(MySqlClient
43 REQUIRED_VARS MYSQLCLIENT_LIBRARY MYSQLCLIENT_INCLUDE_DIR
44 VERSION_VAR MYSQLCLIENT_VERSION_STRING)
45
46if(MYSQLCLIENT_FOUND)
47 set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY})
48 set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR})
49 set(MYSQLCLIENT_DEFINITIONS -DHAVE_MYSQL=1)
50
51 if(NOT TARGET MySqlClient::MySqlClient)
52 add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED)
53 if(MYSQLCLIENT_LIBRARY_RELEASE)
54 set_target_properties(MySqlClient::MySqlClient PROPERTIES
55 IMPORTED_CONFIGURATIONS RELEASE
56 IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_RELEASE}")
57 endif()
58 if(MYSQLCLIENT_LIBRARY_DEBUG)
59 set_target_properties(MySqlClient::MySqlClient PROPERTIES
60 IMPORTED_CONFIGURATIONS DEBUG
61 IMPORTED_LOCATION "${MYSQLCLIENT_LIBRARY_DEBUG}")
62 endif()
63 set_target_properties(MySqlClient::MySqlClient PROPERTIES
64 INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}"
65 INTERFACE_COMPILE_DEFINITIONS HAVE_MYSQL=1)
66 endif()
67endif()
68
69mark_as_advanced(MYSQLCLIENT_INCLUDE_DIR MYSQLCLIENT_LIBRARY)
diff --git a/project/cmake/modules/FindNFS.cmake b/project/cmake/modules/FindNFS.cmake
deleted file mode 100644
index 646ee33..0000000
--- a/project/cmake/modules/FindNFS.cmake
+++ /dev/null
@@ -1,58 +0,0 @@
1#.rst:
2# FindNFS
3# -------
4# Finds the libnfs library
5#
6# This will will define the following variables::
7#
8# NFS_FOUND - system has libnfs
9# NFS_INCLUDE_DIRS - the libnfs include directory
10# NFS_LIBRARIES - the libnfs libraries
11# NFS_DEFINITIONS - the libnfs compile definitions
12#
13# and the following imported targets::
14#
15# NFS::NFS - The libnfs library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_NFS libnfs QUIET)
19endif()
20
21find_path(NFS_INCLUDE_DIR nfsc/libnfs.h
22 PATHS ${PC_NFS_INCLUDEDIR})
23
24set(NFS_VERSION ${PC_NFS_VERSION})
25
26include(FindPackageHandleStandardArgs)
27if(NOT WIN32)
28 find_library(NFS_LIBRARY NAMES nfs
29 PATHS ${PC_NFS_LIBDIR})
30
31 find_package_handle_standard_args(NFS
32 REQUIRED_VARS NFS_LIBRARY NFS_INCLUDE_DIR
33 VERSION_VAR NFS_VERSION)
34else()
35 # Dynamically loaded DLL
36 find_package_handle_standard_args(NFS
37 REQUIRED_VARS NFS_INCLUDE_DIR
38 VERSION_VAR NFS_VERSION)
39endif()
40
41if(NFS_FOUND)
42 set(NFS_LIBRARIES ${NFS_LIBRARY})
43 set(NFS_INCLUDE_DIRS ${NFS_INCLUDE_DIR})
44 set(NFS_DEFINITIONS -DHAVE_LIBNFS=1)
45
46 if(NOT TARGET NFS::NFS)
47 add_library(NFS::NFS UNKNOWN IMPORTED)
48 if(NFS_LIBRARY)
49 set_target_properties(NFS::NFS PROPERTIES
50 IMPORTED_LOCATION "${NFS_LIBRARY_RELEASE}")
51 endif()
52 set_target_properties(NFS::NFS PROPERTIES
53 INTERFACE_INCLUDE_DIRECTORIES "${NFS_INCLUDE_DIR}"
54 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBNFS=1)
55 endif()
56endif()
57
58mark_as_advanced(NFS_INCLUDE_DIR NFS_LIBRARY)
diff --git a/project/cmake/modules/FindOpenGLES.cmake b/project/cmake/modules/FindOpenGLES.cmake
deleted file mode 100644
index ab06f96..0000000
--- a/project/cmake/modules/FindOpenGLES.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
1#.rst:
2# FindOpenGLES
3# ------------
4# Finds the OpenGLES2 library
5#
6# This will will define the following variables::
7#
8# OPENGLES_FOUND - system has OpenGLES
9# OPENGLES_INCLUDE_DIRS - the OpenGLES include directory
10# OPENGLES_LIBRARIES - the OpenGLES libraries
11# OPENGLES_DEFINITIONS - the OpenGLES definitions
12
13find_package(EMBEDDED)
14
15if(PKG_CONFIG_FOUND AND NOT PLATFORM STREQUAL "raspberry-pi")
16 pkg_check_modules(PC_OPENGLES glesv2 QUIET)
17 if(NOT OPENGLES_FOUND AND EMBEDDED_FOUND)
18 set(CMAKE_PREFIX_PATH ${EMBEDDED_FOUND} ${CMAKE_PREFIX_PATH})
19 endif()
20endif()
21
22if(NOT CORE_SYSTEM_NAME STREQUAL ios)
23 find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h
24 PATHS ${PC_OPENGLES_INCLUDEDIR})
25 find_library(OPENGLES_gl_LIBRARY NAMES GLESv2
26 PATHS ${PC_OPENGLES_LIBDIR})
27 find_library(OPENGLES_egl_LIBRARY NAMES EGL
28 PATHS ${PC_OPENGLES_LIBDIR})
29else()
30 find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES
31 PATHS ${CMAKE_OSX_SYSROOT}/System/Library
32 PATH_SUFFIXES Frameworks
33 NO_DEFAULT_PATH)
34 set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers)
35 set(OPENGLES_egl_LIBRARY ${OPENGLES_gl_LIBRARY})
36endif()
37
38include(FindPackageHandleStandardArgs)
39find_package_handle_standard_args(OpenGLES
40 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY OPENGLES_INCLUDE_DIR)
41
42if(OPENGLES_FOUND)
43 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
44 set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY} ${OPENGLES_egl_LIBRARY})
45 set(OPENGLES_DEFINITIONS -DHAVE_LIBGLESV2 -DHAVE_LIBEGL=1)
46endif()
47
48mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY)
diff --git a/project/cmake/modules/FindOpenGl.cmake b/project/cmake/modules/FindOpenGl.cmake
deleted file mode 100644
index b8cff79..0000000
--- a/project/cmake/modules/FindOpenGl.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
1#.rst:
2# FindOpenGl
3# ----------
4# Finds the FindOpenGl library
5#
6# This will will define the following variables::
7#
8# OPENGL_FOUND - system has OpenGl
9# OPENGL_INCLUDE_DIRS - the OpenGl include directory
10# OPENGL_LIBRARIES - the OpenGl libraries
11# OPENGL_DEFINITIONS - the OpenGl definitions
12
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules(PC_OPENGL gl glu QUIET)
15endif()
16
17if(NOT CORE_SYSTEM_NAME STREQUAL osx)
18 find_path(OPENGL_INCLUDE_DIR GL/gl.h
19 PATHS ${PC_OPENGL_gl_INCLUDEDIR})
20 find_library(OPENGL_gl_LIBRARY NAMES GL
21 PATHS ${PC_OPENGL_gl_LIBDIR})
22 find_library(OPENGL_glu_LIBRARY NAMES GLU
23 PATHS ${PC_OPENGL_glu_LIBDIR})
24else()
25 find_library(OPENGL_gl_LIBRARY NAMES OpenGL
26 PATHS ${CMAKE_OSX_SYSROOT}/System/Library
27 PATH_SUFFIXES Frameworks
28 NO_DEFAULT_PATH)
29 set(OPENGL_INCLUDE_DIR ${OPENGL_gl_LIBRARY}/Headers)
30 set(OPENGL_glu_LIBRARY ${OPENGL_gl_LIBRARY})
31endif()
32
33include(FindPackageHandleStandardArgs)
34find_package_handle_standard_args(OpenGl
35 REQUIRED_VARS OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY OPENGL_INCLUDE_DIR)
36
37if(OPENGL_FOUND)
38 set(OPENGL_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR})
39 set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
40 set(OPENGL_DEFINITIONS -DHAVE_LIBGL=1)
41endif()
42
43mark_as_advanced(OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY)
diff --git a/project/cmake/modules/FindPCRE.cmake b/project/cmake/modules/FindPCRE.cmake
deleted file mode 100644
index 8babed3..0000000
--- a/project/cmake/modules/FindPCRE.cmake
+++ /dev/null
@@ -1,87 +0,0 @@
1#.rst:
2# FindPCRE
3# --------
4# Finds the PCRECPP library
5#
6# This will will define the following variables::
7#
8# PCRE_FOUND - system has libpcrecpp
9# PCRE_INCLUDE_DIRS - the libpcrecpp include directory
10# PCRE_LIBRARIES - the libpcrecpp libraries
11# PCRE_DEFINITIONS - the libpcrecpp definitions
12#
13# and the following imported targets::
14#
15# PCRE::PCRECPP - The PCRECPP library
16# PCRE::PCRE - The PCRE library
17
18if(PKG_CONFIG_FOUND)
19 pkg_check_modules(PC_PCRE libpcrecpp QUIET)
20endif()
21
22find_path(PCRE_INCLUDE_DIR pcrecpp.h
23 PATHS ${PC_PCRE_INCLUDEDIR})
24find_library(PCRECPP_LIBRARY_RELEASE NAMES pcrecpp
25 PATHS ${PC_PCRE_LIBDIR})
26find_library(PCRE_LIBRARY_RELEASE NAMES pcre
27 PATHS ${PC_PCRE_LIBDIR})
28find_library(PCRECPP_LIBRARY_DEBUG NAMES pcrecppd
29 PATHS ${PC_PCRE_LIBDIR})
30find_library(PCRE_LIBRARY_DEBUG NAMES pcred
31 PATHS ${PC_PCRE_LIBDIR})
32set(PCRE_VERSION ${PC_PCRE_VERSION})
33
34include(SelectLibraryConfigurations)
35select_library_configurations(PCRECPP)
36select_library_configurations(PCRE)
37
38include(FindPackageHandleStandardArgs)
39find_package_handle_standard_args(PCRE
40 REQUIRED_VARS PCRECPP_LIBRARY PCRE_LIBRARY PCRE_INCLUDE_DIR
41 VERSION_VAR PCRE_VERSION)
42
43if(PCRE_FOUND)
44 set(PCRE_LIBRARIES ${PCRECPP_LIBRARY} ${PCRE_LIBRARY})
45 set(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR})
46 if(WIN32)
47 set(PCRE_DEFINITIONS -DPCRE_STATIC=1)
48 endif()
49
50 if(NOT TARGET PCRE::PCRE)
51 add_library(PCRE::PCRE UNKNOWN IMPORTED)
52 if(PCRE_LIBRARY_RELEASE)
53 set_target_properties(PCRE::PCRE PROPERTIES
54 IMPORTED_CONFIGURATIONS RELEASE
55 IMPORTED_LOCATION "${PCRE_LIBRARY_RELEASE}")
56 endif()
57 if(PCRE_LIBRARY_DEBUG)
58 set_target_properties(PCRE::PCRE PROPERTIES
59 IMPORTED_CONFIGURATIONS DEBUG
60 IMPORTED_LOCATION "${PCRE_LIBRARY_DEBUG}")
61 endif()
62 set_target_properties(PCRE::PCRE PROPERTIES
63 INTERFACE_INCLUDE_DIRECTORIES "${PCRE_INCLUDE_DIR}")
64 if(WIN32)
65 set_target_properties(PCRE::PCRE PROPERTIES
66 INTERFACE_COMPILE_DEFINITIONS PCRE_STATIC=1)
67 endif()
68
69 endif()
70 if(NOT TARGET PCRE::PCRECPP)
71 add_library(PCRE::PCRECPP UNKNOWN IMPORTED)
72 if(PCRE_LIBRARY_RELEASE)
73 set_target_properties(PCRE::PCRECPP PROPERTIES
74 IMPORTED_CONFIGURATIONS RELEASE
75 IMPORTED_LOCATION "${PCRECPP_LIBRARY_RELEASE}")
76 endif()
77 if(PCRE_LIBRARY_DEBUG)
78 set_target_properties(PCRE::PCRECPP PROPERTIES
79 IMPORTED_CONFIGURATIONS DEBUG
80 IMPORTED_LOCATION "${PCRECPP_LIBRARY_DEBUG}")
81 endif()
82 set_target_properties(PCRE::PCRECPP PROPERTIES
83 INTERFACE_LINK_LIBRARIES PCRE::PCRE)
84 endif()
85endif()
86
87mark_as_advanced(PCRE_INCLUDE_DIR PCRECPP_LIBRARY PCRE_LIBRARY)
diff --git a/project/cmake/modules/FindPlist.cmake b/project/cmake/modules/FindPlist.cmake
deleted file mode 100644
index d7a6c48..0000000
--- a/project/cmake/modules/FindPlist.cmake
+++ /dev/null
@@ -1,58 +0,0 @@
1#.rst:
2# FindPlist
3# ---------
4# Finds the Plist library
5#
6# This will will define the following variables::
7#
8# PLIST_FOUND - system has Plist library
9# PLIST_INCLUDE_DIRS - the Plist library include directory
10# PLIST_LIBRARIES - the Plist libraries
11# PLIST_DEFINITIONS - the Plist compile definitions
12#
13# and the following imported targets::
14#
15# Plist::Plist - The Plist library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_PLIST libplist QUIET)
19endif()
20
21find_path(PLIST_INCLUDE_DIR plist/plist.h
22 PATHS ${PC_PLIST_INCLUDEDIR})
23
24set(PLIST_VERSION ${PC_PLIST_VERSION})
25
26include(FindPackageHandleStandardArgs)
27if(NOT WIN32)
28 find_library(PLIST_LIBRARY NAMES plist
29 PATHS ${PC_PLIST_LIBDIR})
30
31 find_package_handle_standard_args(PLIST
32 REQUIRED_VARS PLIST_LIBRARY PLIST_INCLUDE_DIR
33 VERSION_VAR PLIST_VERSION)
34else()
35 # Dynamically loaded DLL
36 find_package_handle_standard_args(PLIST
37 REQUIRED_VARS PLIST_INCLUDE_DIR
38 VERSION_VAR PLIST_VERSION)
39endif()
40
41if(PLIST_FOUND)
42 set(PLIST_LIBRARIES ${PLIST_LIBRARY})
43 set(PLIST_INCLUDE_DIRS ${PLIST_INCLUDE_DIR})
44 set(PLIST_DEFINITIONS -DHAVE_LIBPLIST=1)
45
46 if(NOT TARGET Plist::Plist)
47 add_library(Plist::Plist UNKNOWN IMPORTED)
48 if(PLIST_LIBRARY)
49 set_target_properties(Plist::Plist PROPERTIES
50 IMPORTED_LOCATION "${PLIST_LIBRARY}")
51 endif()
52 set_target_properties(Plist::Plist PROPERTIES
53 INTERFACE_INCLUDE_DIRECTORIES "${PLIST_INCLUDE_DIR}"
54 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPLIST=1)
55 endif()
56endif()
57
58mark_as_advanced(PLIST_INCLUDE_DIR PLIST_LIBRARY)
diff --git a/project/cmake/modules/FindPulseAudio.cmake b/project/cmake/modules/FindPulseAudio.cmake
deleted file mode 100644
index 5761005..0000000
--- a/project/cmake/modules/FindPulseAudio.cmake
+++ /dev/null
@@ -1,68 +0,0 @@
1#.rst:
2# FindPulseAudio
3# --------------
4# Finds the PulseAudio library
5#
6# This will define the following variables::
7#
8# PULSEAUDIO_FOUND - system has the PulseAudio library
9# PULSEAUDIO_INCLUDE_DIRS - the PulseAudio include directory
10# PULSEAUDIO_LIBRARIES - the libraries needed to use PulseAudio
11# PULSEAUDIO_DEFINITIONS - the definitions needed to use PulseAudio
12#
13# and the following imported targets::
14#
15# PulseAudio::PulseAudio - The PulseAudio library
16
17if(NOT PulseAudio_FIND_VERSION)
18 set(PulseAudio_FIND_VERSION 2.0.0)
19endif()
20
21if(PKG_CONFIG_FOUND)
22 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET)
23 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET)
24endif()
25
26find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h
27 PATHS ${PC_PULSEAUDIO_INCLUDEDIR} ${PC_PULSEAUDIO_INCLUDE_DIRS})
28
29find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
30 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
31
32find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
33 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
34
35if(PC_PULSEAUDIO_VERSION)
36 set(PULSEAUDIO_VERSION_STRING ${PC_PULSEAUDIO_VERSION})
37elseif(PULSEAUDIO_INCLUDE_DIR AND EXISTS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h")
38 file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulseaudio_version_str REGEX "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\".*\"\\).*")
39 string(REGEX REPLACE "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\"([^\"]+)\"\\).*" "\\1" PULSEAUDIO_VERSION_STRING "${pulseaudio_version_str}")
40 unset(pulseaudio_version_str)
41endif()
42
43include(FindPackageHandleStandardArgs)
44find_package_handle_standard_args(PulseAudio
45 REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_INCLUDE_DIR
46 VERSION_VAR PULSEAUDIO_VERSION_STRING)
47
48if(PULSEAUDIO_FOUND)
49 set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR})
50 set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY})
51 set(PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1)
52
53 if(NOT TARGET PulseAudio::PulseAudioMainloop)
54 add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED)
55 set_target_properties(PulseAudio::PulseAudioMainloop PROPERTIES
56 IMPORTED_LOCATION "${PULSEAUDIO_MAINLOOP_LIBRARY}")
57 endif()
58 if(NOT TARGET PulseAudio::PulseAudio)
59 add_library(PulseAudio::PulseAudio UNKNOWN IMPORTED)
60 set_target_properties(PulseAudio::PulseAudio PROPERTIES
61 IMPORTED_LOCATION "${PULSEAUDIO_LIBRARY}"
62 INTERFACE_INCLUDE_DIRECTORIES "${PULSEAUDIO_INCLUDE_DIR}"
63 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPULSE=1
64 INTERFACE_LINK_LIBRARIES PulseAudio::PulseAudioMainloop)
65 endif()
66endif()
67
68mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY)
diff --git a/project/cmake/modules/FindPython.cmake b/project/cmake/modules/FindPython.cmake
deleted file mode 100644
index 68b7359..0000000
--- a/project/cmake/modules/FindPython.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
1# - Try to find python
2# Once done this will define
3#
4# PYTHON_FOUND - system has PYTHON
5# PYTHON_INCLUDE_DIRS - the python include directory
6# PYTHON_LIBRARIES - The python libraries
7
8if(PKG_CONFIG_FOUND)
9 pkg_check_modules(PC_PYTHON python >= 2.7 QUIET)
10endif()
11
12find_program(PYTHON_EXECUTABLE python ONLY_CMAKE_FIND_ROOT_PATH)
13find_library(PYTHON_LIBRARY NAMES python2.7 PATHS ${PC_PYTHON_LIBDIR})
14find_path(PYTHON_INCLUDE_DIR NAMES Python.h PATHS ${PC_PYTHON_INCLUDE_DIRS} ${DEPENDS_PATH}/include/python2.7)
15
16if(CMAKE_CROSSCOMPILING)
17 find_library(FFI_LIBRARY ffi REQUIRED)
18 find_library(EXPAT_LIBRARY expat REQUIRED)
19 find_library(INTL_LIBRARY intl REQUIRED)
20 find_library(GMP_LIBRARY gmp REQUIRED)
21
22 if(NOT CORE_SYSTEM_NAME STREQUAL android)
23 set(PYTHON_DEP_LIBRARIES -lpthread -ldl -lutil)
24 endif()
25
26 set(PYTHON_LIBRARIES ${PYTHON_LIBRARY} ${FFI_LIBRARY} ${EXPAT_LIBRARY} ${INTL_LIBRARY} ${GMP_LIBRARY} ${PYTHON_DEP_LIBRARIES})
27else()
28 find_package(PythonLibs 2.7 REQUIRED)
29endif()
30
31
32include(FindPackageHandleStandardArgs)
33find_package_handle_standard_args(PYTHON REQUIRED_VARS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES)
34if(PYTHON_FOUND)
35 set(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR})
36endif()
37
38mark_as_advanced(PYTHON_EXECUTABLE PYTHON_INCLUDE_DIRS PYTHON_INCLUDE_DIR PYTHON_LIBRARY PYTHON_LIBRARIES PYTHON_LDFLAGS FFI_LIBRARY EXPAT_LIBRARY INTL_LIBRARY GMP_LIBRARY)
diff --git a/project/cmake/modules/FindSSE.cmake b/project/cmake/modules/FindSSE.cmake
deleted file mode 100644
index 0554663..0000000
--- a/project/cmake/modules/FindSSE.cmake
+++ /dev/null
@@ -1,143 +0,0 @@
1# Check if SSE instructions are available on the machine where
2# the project is compiled.
3include(TestCXXAcceptsFlag)
4
5if(CMAKE_SYSTEM_NAME MATCHES "Linux")
6 if(CPU MATCHES "x86_64" OR CPU MATCHES "i.86")
7 exec_program(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO)
8
9 string(REGEX REPLACE "^.*(sse).*$" "\\1" _SSE_THERE ${CPUINFO})
10 string(COMPARE EQUAL "sse" "${_SSE_THERE}" _SSE_TRUE)
11 CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK)
12
13 string(REGEX REPLACE "^.*(sse2).*$" "\\1" _SSE_THERE ${CPUINFO})
14 string(COMPARE EQUAL "sse2" "${_SSE_THERE}" _SSE2_TRUE)
15 CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK)
16
17 # /proc/cpuinfo apparently omits sse3 :(
18 string(REGEX REPLACE "^.*[^s](sse3).*$" "\\1" _SSE_THERE ${CPUINFO})
19 string(COMPARE EQUAL "sse3" "${_SSE_THERE}" _SSE3_TRUE)
20 if(NOT _SSE3_TRUE)
21 string(REGEX REPLACE "^.*(T2300).*$" "\\1" _SSE_THERE ${CPUINFO})
22 string(COMPARE EQUAL "T2300" "${_SSE_THERE}" _SSE3_TRUE)
23 endif()
24 CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK)
25
26 string(REGEX REPLACE "^.*(ssse3).*$" "\\1" _SSE_THERE ${CPUINFO})
27 string(COMPARE EQUAL "ssse3" "${_SSE_THERE}" _SSSE3_TRUE)
28 CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK)
29
30 string(REGEX REPLACE "^.*(sse4_1).*$" "\\1" _SSE_THERE ${CPUINFO})
31 string(COMPARE EQUAL "sse4_1" "${_SSE_THERE}" _SSE41_TRUE)
32 CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK)
33
34 string(REGEX REPLACE "^.*(sse4_2).*$" "\\1" _SSE_THERE ${CPUINFO})
35 string(COMPARE EQUAL "sse4_2" "${_SSE_THERE}" _SSE42_TRUE)
36 CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK)
37
38 string(REGEX REPLACE "^.*(avx).*$" "\\1" _SSE_THERE ${CPUINFO})
39 string(COMPARE EQUAL "avx" "${_SSE_THERE}" _AVX_TRUE)
40 CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK)
41
42 string(REGEX REPLACE "^.*(avx2).*$" "\\1" _SSE_THERE ${CPUINFO})
43 string(COMPARE EQUAL "avx2" "${_SSE_THERE}" _AVX2_TRUE)
44 CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK)
45 endif()
46elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
47 if(NOT CPU MATCHES "arm")
48 exec_program("/usr/sbin/sysctl -n machdep.cpu.features machdep.cpu.leaf7_features" OUTPUT_VARIABLE CPUINFO)
49
50 string(REGEX REPLACE "^.*[^S](SSE).*$" "\\1" _SSE_THERE ${CPUINFO})
51 string(COMPARE EQUAL "SSE" "${_SSE_THERE}" _SSE_TRUE)
52 CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK)
53
54 string(REGEX REPLACE "^.*[^S](SSE2).*$" "\\1" _SSE_THERE ${CPUINFO})
55 string(COMPARE EQUAL "SSE2" "${_SSE_THERE}" _SSE2_TRUE)
56 CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK)
57
58 string(REGEX REPLACE "^.*[^S](SSE3).*$" "\\1" _SSE_THERE ${CPUINFO})
59 string(COMPARE EQUAL "SSE3" "${_SSE_THERE}" _SSE3_TRUE)
60 CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK)
61
62 string(REGEX REPLACE "^.*(SSSE3).*$" "\\1" _SSE_THERE ${CPUINFO})
63 string(COMPARE EQUAL "SSSE3" "${_SSE_THERE}" _SSSE3_TRUE)
64 CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK)
65
66 string(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" _SSE_THERE ${CPUINFO})
67 string(COMPARE EQUAL "SSE4.1" "${_SSE_THERE}" _SSE41_TRUE)
68 CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK)
69
70 string(REGEX REPLACE "^.*(SSE4.2).*$" "\\1" _SSE_THERE ${CPUINFO})
71 string(COMPARE EQUAL "SSE4.2" "${_SSE_THERE}" _SSE42_TRUE)
72 CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK)
73
74 string(REGEX REPLACE "^.*(AVX).*$" "\\1" _SSE_THERE ${CPUINFO})
75 string(COMPARE EQUAL "AVX" "${_SSE_THERE}" _AVX_TRUE)
76 CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK)
77
78 string(REGEX REPLACE "^.*(AVX2).*$" "\\1" _SSE_THERE ${CPUINFO})
79 string(COMPARE EQUAL "AVX2" "${_SSE_THERE}" _AVX2_TRUE)
80 CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK)
81 endif()
82elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
83 # TODO
84 set(_SSE_TRUE true)
85 set(_SSE_OK true)
86 set(_SSE2_TRUE true)
87 set(_SSE2_OK true)
88endif()
89
90include(FindPackageHandleStandardArgs)
91find_package_handle_standard_args(SSE
92 REQUIRED_VARS _SSE_TRUE _SSE_OK
93 FAIL_MESSAGE "Could not find hardware support for SSE")
94find_package_handle_standard_args(SSE2
95 REQUIRED_VARS _SSE2_TRUE _SSE2_OK
96 FAIL_MESSAGE "Could not find hardware support for SSE2")
97find_package_handle_standard_args(SSE3
98 REQUIRED_VARS _SSE3_TRUE _SSE3_OK
99 FAIL_MESSAGE "Could not find hardware support for SSE3")
100find_package_handle_standard_args(SSSE3
101 REQUIRED_VARS _SSSE3_TRUE _SSSE3_OK
102 FAIL_MESSAGE "Could not find hardware support for SSSE3")
103find_package_handle_standard_args(SSE4_1
104 REQUIRED_VARS _SSE41_TRUE _SSE41_OK
105 FAIL_MESSAGE "Could not find hardware support for SSE4.1")
106find_package_handle_standard_args(SSE4_2
107 REQUIRED_VARS _SSE42_TRUE _SSE42_OK
108 FAIL_MESSAGE "Could not find hardware support for SSE4.2")
109find_package_handle_standard_args(AVX
110 REQUIRED_VARS _AVX_TRUE _AVX_OK
111 FAIL_MESSAGE "Could not find hardware support for AVX")
112find_package_handle_standard_args(AVX2
113 REQUIRED_VARS _AVX2_TRUE _AVX2_OK
114 FAIL_MESSAGE "Could not find hardware support for AVX2")
115
116mark_as_advanced(SSE2_FOUND SSE3_FOUND SSSE3_FOUND SSE4_1_FOUND SSE4_2_FOUND AVX_FOUND AVX2_FOUND)
117
118unset(_SSE_THERE)
119unset(_SSE_TRUE)
120unset(_SSE_OK)
121unset(_SSE_OK CACHE)
122unset(_SSE2_TRUE)
123unset(_SSE2_OK)
124unset(_SSE2_OK CACHE)
125unset(_SSE3_TRUE)
126unset(_SSE3_OK)
127unset(_SSE3_OK CACHE)
128unset(_SSSE3_TRUE)
129unset(_SSSE3_OK)
130unset(_SSSE3_OK CACHE)
131unset(_SSE4_1_TRUE)
132unset(_SSE41_OK)
133unset(_SSE41_OK CACHE)
134unset(_SSE4_2_TRUE)
135unset(_SSE42_OK)
136unset(_SSE42_OK CACHE)
137unset(_AVX_TRUE)
138unset(_AVX_OK)
139unset(_AVX_OK CACHE)
140unset(_AVX2_TRUE)
141unset(_AVX2_OK)
142unset(_AVX2_OK CACHE)
143
diff --git a/project/cmake/modules/FindSSH.cmake b/project/cmake/modules/FindSSH.cmake
deleted file mode 100644
index 538c699..0000000
--- a/project/cmake/modules/FindSSH.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
1#.rst:
2# FindSSH
3# -------
4# Finds the SSH library
5#
6# This will will define the following variables::
7#
8# SSH_FOUND - system has SSH
9# SSH_INCLUDE_DIRS - the SSH include directory
10# SSH_LIBRARIES - the SSH libraries
11# SSH_DEFINITIONS - the SSH definitions
12#
13# and the following imported targets::
14#
15# SSH::SSH - The SSH library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_SSH libssh QUIET)
19endif()
20
21find_path(SSH_INCLUDE_DIR NAMES libssh/libssh.h
22 PATHS ${PC_SSH_INCLUDEDIR})
23find_library(SSH_LIBRARY NAMES ssh
24 PATHS ${PC_SSH_LIBDIR})
25
26set(SSH_VERSION ${PC_SSH_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(SSH
30 REQUIRED_VARS SSH_LIBRARY SSH_INCLUDE_DIR
31 VERSION_VAR SSH_VERSION)
32
33if(SSH_FOUND)
34 set(SSH_LIBRARIES ${SSH_LIBRARY})
35 set(SSH_INCLUDE_DIRS ${SSH_INCLUDE_DIR})
36 set(SSH_DEFINITIONS -DHAVE_LIBSSH=1)
37
38 if(NOT TARGET SSH::SSH)
39 add_library(SSH::SSH UNKNOWN IMPORTED)
40 set_target_properties(SSH::SSH PROPERTIES
41 IMPORTED_LOCATION "${SSH_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${SSH_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSSH=1)
44 endif()
45endif()
46
47mark_as_advanced(SSH_INCLUDE_DIR SSH_LIBRARY)
diff --git a/project/cmake/modules/FindSWIG.cmake b/project/cmake/modules/FindSWIG.cmake
deleted file mode 100644
index 523b49b..0000000
--- a/project/cmake/modules/FindSWIG.cmake
+++ /dev/null
@@ -1,29 +0,0 @@
1#.rst:
2# FindSWIG
3# --------
4# Finds the SWIG executable
5#
6# This will will define the following variables::
7#
8# SWIG_FOUND - system has SWIG
9# SWIG_EXECUTABLE - the SWIG executable
10
11find_program(SWIG_EXECUTABLE NAMES swig3.0 swig2.0 swig
12 PATH_SUFFIXES swig)
13if(SWIG_EXECUTABLE)
14 execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
15 OUTPUT_VARIABLE SWIG_DIR
16 ERROR_VARIABLE SWIG_swiglib_error
17 RESULT_VARIABLE SWIG_swiglib_result)
18 execute_process(COMMAND ${SWIG_EXECUTABLE} -version
19 OUTPUT_VARIABLE SWIG_version_output
20 ERROR_VARIABLE SWIG_version_output
21 RESULT_VARIABLE SWIG_version_result)
22 string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
23 SWIG_VERSION "${SWIG_version_output}")
24endif()
25
26include(FindPackageHandleStandardArgs)
27find_package_handle_standard_args(SWIG
28 REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
29 VERSION_VAR SWIG_VERSION)
diff --git a/project/cmake/modules/FindSdl.cmake b/project/cmake/modules/FindSdl.cmake
deleted file mode 100644
index 91bcac5..0000000
--- a/project/cmake/modules/FindSdl.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
1#.rst:
2# FindSDL
3# -------
4# Finds the SDL library
5#
6# This will will define the following variables::
7#
8# SDL_FOUND - system has SDL
9# SDL_INCLUDE_DIRS - the SDL include directory
10# SDL_LIBRARIES - the SDL libraries
11# SDL_DEFINITIONS - the SDL compile definitions
12
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules(PC_SDL2 sdl2 QUIET)
15 if(PC_SDL2_FOUND)
16 set(SDL_VERSION ${PC_SDL2_VERSION})
17 else()
18 pkg_check_modules(PC_SDL1 sdl QUIET)
19 if(PC_SDL1_FOUND)
20 set(SDL_VERSION ${PC_SDL1_VERSION})
21 endif()
22 endif()
23endif()
24
25find_path(SDL_INCLUDE_DIR SDL/SDL.h
26 PATHS ${PC_SDL2_INCLUDE_DIR} ${PC_SDL1_INCLUDE_DIR})
27find_library(SDL_LIBRARY NAMES SDL2 SDL
28 PATHS ${PC_SDL2_LIBDIR} ${PC_SDL1_LIBDIR})
29
30include(FindPackageHandleStandardArgs)
31find_package_handle_standard_args(Sdl REQUIRED_VARS SDL_LIBRARY SDL_INCLUDE_DIR
32 VERSION_VAR SDL_VERSION)
33
34if(SDL_FOUND)
35 set(SDL_LIBRARIES ${SDL_LIBRARY})
36 set(SDL_INCLUDE_DIRS ${SDL_INCLUDE_DIR})
37 set(SDL_DEFINITIONS -DHAVE_SDL=1)
38
39 if(SDL_VERSION VERSION_GREATER 2)
40 list(APPEND SDL_DEFINITIONS -DHAVE_SDL_VERSION=2)
41 elseif(SDL_VERSION VERSION_GREATER 1)
42 list(APPEND SDL_DEFINITIONS -DHAVE_SDL_VERSION=1)
43 endif()
44endif()
45
46mark_as_advanced(SDL_LIBRARY SDL_INCLUDE_DIR)
diff --git a/project/cmake/modules/FindShairplay.cmake b/project/cmake/modules/FindShairplay.cmake
deleted file mode 100644
index 87d3107..0000000
--- a/project/cmake/modules/FindShairplay.cmake
+++ /dev/null
@@ -1,63 +0,0 @@
1#.rst:
2# FindShairplay
3# -------------
4# Finds the Shairplay library
5#
6# This will will define the following variables::
7#
8# SHAIRPLAY_FOUND - system has Shairplay
9# SHAIRPLAY_INCLUDE_DIRS - the Shairplay include directory
10# SHAIRPLAY_LIBRARIES - the Shairplay libraries
11# SHAIRPLAY_DEFINITIONS - the Shairplay compile definitions
12#
13# and the following imported targets::
14#
15# Shairplay::Shairplay - The Shairplay library
16
17find_path(SHAIRPLAY_INCLUDE_DIR shairplay/raop.h)
18
19include(FindPackageHandleStandardArgs)
20if(NOT WIN32)
21 find_library(SHAIRPLAY_LIBRARY NAMES shairplay)
22
23 if(SHAIRPLAY_INCLUDE_DIR AND SHAIRPLAY_LIBRARY)
24 include(CheckCSourceCompiles)
25 set(CMAKE_REQUIRED_INCLUDES ${SHAIRPLAY_INCLUDE_DIRS})
26 set(CMAKE_REQUIRED_LIBRARIES ${SHAIRPLAY_LIBRARIES})
27 check_c_source_compiles("#include <shairplay/raop.h>
28
29 int main()
30 {
31 struct raop_callbacks_s foo;
32 foo.cls;
33 return 0;
34 }
35 " HAVE_SHAIRPLAY_CALLBACK_CLS)
36 endif()
37
38 find_package_handle_standard_args(Shairplay
39 REQUIRED_VARS SHAIRPLAY_LIBRARY SHAIRPLAY_INCLUDE_DIR HAVE_SHAIRPLAY_CALLBACK_CLS)
40else()
41 # Dynamically loaded DLL
42 find_package_handle_standard_args(Shairplay
43 REQUIRED_VARS SHAIRPLAY_INCLUDE_DIR)
44endif()
45
46if(SHAIRPLAY_FOUND)
47 set(SHAIRPLAY_LIBRARIES ${SHAIRPLAY_LIBRARY})
48 set(SHAIRPLAY_INCLUDE_DIRS ${SHAIRPLAY_INCLUDE_DIR})
49 set(SHAIRPLAY_DEFINITIONS -DHAVE_LIBSHAIRPLAY=1)
50
51 if(NOT TARGET Shairplay::Shairplay)
52 add_library(Shairplay::Shairplay UNKNOWN IMPORTED)
53 if(SHAIRPLAY_LIBRARY)
54 set_target_properties(Shairplay::Shairplay PROPERTIES
55 IMPORTED_LOCATION "${SHAIRPLAY_LIBRARY}")
56 endif()
57 set_target_properties(Shairplay::Shairplay PROPERTIES
58 INTERFACE_INCLUDE_DIRECTORIES "${SHAIRPLAY_INCLUDE_DIR}"
59 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSHAIRPLAY=1)
60 endif()
61endif()
62
63mark_as_advanced(SHAIRPLAY_INCLUDE_DIR SHAIRPLAY_LIBRARY)
diff --git a/project/cmake/modules/FindSmbClient.cmake b/project/cmake/modules/FindSmbClient.cmake
deleted file mode 100644
index 6455cce..0000000
--- a/project/cmake/modules/FindSmbClient.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
1#.rst:
2# FindSmbClient
3# -------------
4# Finds the SMB Client library
5#
6# This will will define the following variables::
7#
8# SMBCLIENT_FOUND - system has SmbClient
9# SMBCLIENT_INCLUDE_DIRS - the SmbClient include directory
10# SMBCLIENT_LIBRARIES - the SmbClient libraries
11# SMBCLIENT_DEFINITIONS - the SmbClient definitions
12#
13# and the following imported targets::
14#
15# SmbClient::SmbClient - The SmbClient library
16
17if(PKGCONFIG_FOUND)
18 pkg_check_modules(PC_SMBCLIENT smbclient QUIET)
19endif()
20
21find_path(SMBCLIENT_INCLUDE_DIR NAMES libsmbclient.h
22 PATHS ${PC_SMBCLIENT_INCLUDEDIR})
23find_library(SMBCLIENT_LIBRARY NAMES smbclient
24 PATHS ${PC_SMBCLIENT_LIBDIR})
25
26set(SMBCLIENT_VERSION ${PC_SMBCLIENT_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(SmbClient
30 REQUIRED_VARS SMBCLIENT_LIBRARY SMBCLIENT_INCLUDE_DIR
31 VERSION_VAR SMBCLIENT_VERSION)
32
33if(SMBCLIENT_FOUND)
34 set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY})
35 set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR})
36 set(SMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1)
37
38 if(NOT TARGET SmbClient::SmbClient)
39 add_library(SmbClient::SmbClient UNKNOWN IMPORTED)
40 set_target_properties(SmbClient::SmbClient PROPERTIES
41 IMPORTED_LOCATION "${SMBCLIENT_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${SMBCLIENT_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSMBCLIENT=1)
44 endif()
45endif()
46
47mark_as_advanced(LIBSMBCLIENT_INCLUDE_DIR LIBSMBCLIENT_LIBRARY)
diff --git a/project/cmake/modules/FindSqlite3.cmake b/project/cmake/modules/FindSqlite3.cmake
deleted file mode 100644
index abde0cf..0000000
--- a/project/cmake/modules/FindSqlite3.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
1#.rst:
2# FindSqlite3
3# -----------
4# Finds the SQLite3 library
5#
6# This will will define the following variables::
7#
8# SQLITE3_FOUND - system has SQLite3
9# SQLITE3_INCLUDE_DIRS - the SQLite3 include directory
10# SQLITE3_LIBRARIES - the SQLite3 libraries
11#
12# and the following imported targets::
13#
14# SQLite3::SQLite3 - The SQLite3 library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_SQLITE3 sqlite3 QUIET)
18endif()
19
20find_path(SQLITE3_INCLUDE_DIR NAMES sqlite3.h
21 PATHS ${PC_SQLITE3_INCLUDEDIR})
22find_library(SQLITE3_LIBRARY NAMES sqlite3
23 PATHS ${PC_SQLITE3_LIBDIR})
24
25set(SQLITE3_VERSION ${PC_SQLITE3_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(Sqlite3
29 REQUIRED_VARS SQLITE3_LIBRARY SQLITE3_INCLUDE_DIR
30 VERSION_VAR SQLITE3_VERSION)
31
32if(SQLITE3_FOUND)
33 set(SQLITE3_INCLUDE_DIRS ${SQLITE3_INCLUDE_DIR})
34 set(SQLITE3_LIBRARIES ${SQLITE3_LIBRARY})
35
36 if(NOT TARGET SQLite3::SQLite3)
37 add_library(SQLite3::SQLite3 UNKNOWN IMPORTED)
38 set_target_properties(SQLite3::SQLite3 PROPERTIES
39 IMPORTED_LOCATION "${SQLITE3_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${SQLITE3_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY)
diff --git a/project/cmake/modules/FindTagLib.cmake b/project/cmake/modules/FindTagLib.cmake
deleted file mode 100644
index 8c8c2f3..0000000
--- a/project/cmake/modules/FindTagLib.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
1#.rst:
2# FindTagLib
3# ----------
4# Finds the TagLib library
5#
6# This will will define the following variables::
7#
8# TAGLIB_FOUND - system has TagLib
9# TAGLIB_INCLUDE_DIRS - the TagLib include directory
10# TAGLIB_LIBRARIES - the TagLib libraries
11#
12# and the following imported targets::
13#
14# TagLib::TagLib - The TagLib library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_TAGLIB taglib>=1.9.0 QUIET)
18endif()
19
20find_path(TAGLIB_INCLUDE_DIR taglib/tag.h
21 PATHS ${PC_TAGLIB_INCLUDEDIR})
22find_library(TAGLIB_LIBRARY_RELEASE NAMES tag
23 PATHS ${PC_TAGLIB_LIBDIR})
24find_library(TAGLIB_LIBRARY_DEBUG NAMES tagd
25 PATHS ${PC_TAGLIB_LIBDIR})
26set(TAGLIB_VERSION ${PC_TAGLIB_VERSION})
27
28include(SelectLibraryConfigurations)
29select_library_configurations(TAGLIB)
30
31include(FindPackageHandleStandardArgs)
32find_package_handle_standard_args(TagLib
33 REQUIRED_VARS TAGLIB_LIBRARY TAGLIB_INCLUDE_DIR
34 VERSION_VAR TAGLIB_VERSION)
35
36if(TAGLIB_FOUND)
37 set(TAGLIB_LIBRARIES ${TAGLIB_LIBRARY})
38
39 # Workaround broken .pc file
40 list(APPEND TAGLIB_LIBRARIES ${PC_TAGLIB_ZLIB_LIBRARIES})
41
42 set(TAGLIB_INCLUDE_DIRS ${TAGLIB_INCLUDE_DIR})
43 if(NOT TARGET TagLib::TagLib)
44 add_library(TagLib::TagLib UNKNOWN IMPORTED)
45 if(TAGLIB_LIBRARY_RELEASE)
46 set_target_properties(TagLib::TagLib PROPERTIES
47 IMPORTED_CONFIGURATIONS RELEASE
48 IMPORTED_LOCATION "${TAGLIB_LIBRARY_RELEASE}")
49 endif()
50 if(TAGLIB_LIBRARY_DEBUG)
51 set_target_properties(TagLib::TagLib PROPERTIES
52 IMPORTED_CONFIGURATIONS DEBUG
53 IMPORTED_LOCATION "${TAGLIB_LIBRARY_DEBUG}")
54 endif()
55 set_target_properties(TagLib::TagLib PROPERTIES
56 INTERFACE_INCLUDE_DIRECTORIES "${TAGLIB_INCLUDE_DIR}")
57 endif()
58endif()
59
60mark_as_advanced(TAGLIB_INCLUDE_DIR TAGLIB_LIBRARY)
diff --git a/project/cmake/modules/FindTexturePacker.cmake b/project/cmake/modules/FindTexturePacker.cmake
deleted file mode 100644
index f9e4c75..0000000
--- a/project/cmake/modules/FindTexturePacker.cmake
+++ /dev/null
@@ -1,41 +0,0 @@
1#.rst:
2# FindTexturePacker
3# -----------------
4# Finds the TexturePacker
5#
6# If WITH_TEXTUREPACKER is defined and points to a directory,
7# this path will be used to search for the Texturepacker binary
8#
9#
10# This will define the following (imported) targets::
11#
12# TexturePacker::TexturePacker - The TexturePacker executable
13
14if(NOT TARGET TexturePacker::TexturePacker)
15 if(CMAKE_CROSSCOMPILING)
16 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL)
17 set_target_properties(TexturePacker::TexturePacker PROPERTIES
18 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/TexturePacker")
19 elseif(WIN32)
20 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL)
21 set_target_properties(TexturePacker::TexturePacker PROPERTIES
22 IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe")
23 else()
24 if(WITH_TEXTUREPACKER)
25 get_filename_component(_tppath ${WITH_TEXTUREPACKER} ABSOLUTE)
26 find_program(TEXTUREPACKER_EXECUTABLE TexturePacker PATHS ${_tppath})
27
28 include(FindPackageHandleStandardArgs)
29 find_package_handle_standard_args(TexturePacker DEFAULT_MSG TEXTUREPACKER_EXECUTABLE)
30 if(TEXTUREPACKER_FOUND)
31 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL)
32 set_target_properties(TexturePacker::TexturePacker PROPERTIES
33 IMPORTED_LOCATION "${TEXTUREPACKER_EXECUTABLE}")
34 endif()
35 mark_as_advanced(TEXTUREPACKER)
36 else()
37 add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker)
38 add_executable(TexturePacker::TexturePacker ALIAS TexturePacker)
39 endif()
40 endif()
41endif()
diff --git a/project/cmake/modules/FindTinyXML.cmake b/project/cmake/modules/FindTinyXML.cmake
deleted file mode 100644
index 1220a94..0000000
--- a/project/cmake/modules/FindTinyXML.cmake
+++ /dev/null
@@ -1,68 +0,0 @@
1#.rst:
2# FindTinyXML
3# -----------
4# Finds the TinyXML library
5#
6# This will will define the following variables::
7#
8# TINYXML_FOUND - system has TinyXML
9# TINYXML_INCLUDE_DIRS - the TinyXML include directory
10# TINYXML_LIBRARIES - the TinyXML libraries
11# TINYXML_DEFINITIONS - the TinyXML definitions
12#
13# and the following imported targets::
14#
15# TinyXML::TinyXML - The TinyXML library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_TINYXML tinyxml QUIET)
19endif()
20
21find_path(TINYXML_INCLUDE_DIR tinyxml.h
22 PATH_SUFFIXES tinyxml
23 PATHS ${PC_TINYXML_INCLUDEDIR})
24find_library(TINYXML_LIBRARY_RELEASE NAMES tinyxml tinyxmlSTL
25 PATH_SUFFIXES tinyxml
26 PATHS ${PC_TINYXML_LIBDIR})
27find_library(TINYXML_LIBRARY_DEBUG NAMES tinyxmld tinyxmlSTLd
28 PATH_SUFFIXES tinyxml
29 PATHS ${PC_TINYXML_LIBDIR})
30set(TINYXML_VERSION ${PC_TINYXML_VERSION})
31
32include(SelectLibraryConfigurations)
33select_library_configurations(TINYXML)
34
35include(FindPackageHandleStandardArgs)
36find_package_handle_standard_args(TinyXML
37 REQUIRED_VARS TINYXML_LIBRARY TINYXML_INCLUDE_DIR
38 VERSION_VAR TINYXML_VERSION)
39
40if(TINYXML_FOUND)
41 set(TINYXML_LIBRARIES ${TINYXML_LIBRARY})
42 set(TINYXML_INCLUDE_DIRS ${TINYXML_INCLUDE_DIR})
43 if(WIN32)
44 set(TINYXML_DEFINITIONS -DTIXML_USE_STL=1)
45 endif()
46
47 if(NOT TARGET TinyXML::TinyXML)
48 add_library(TinyXML::TinyXML UNKNOWN IMPORTED)
49 if(TINYXML_LIBRARY_RELEASE)
50 set_target_properties(TinyXML::TinyXML PROPERTIES
51 IMPORTED_CONFIGURATIONS RELEASE
52 IMPORTED_LOCATION "${TINYXML_LIBRARY_RELEASE}")
53 endif()
54 if(TINYXML_LIBRARY_DEBUG)
55 set_target_properties(TinyXML::TinyXML PROPERTIES
56 IMPORTED_CONFIGURATIONS DEBUG
57 IMPORTED_LOCATION "${TINYXML_LIBRARY_DEBUG}")
58 endif()
59 set_target_properties(TinyXML::TinyXML PROPERTIES
60 INTERFACE_INCLUDE_DIRECTORIES "${TINYXML_INCLUDE_DIR}")
61 if(WIN32)
62 set_target_properties(TinyXML::TinyXML PROPERTIES
63 INTERFACE_COMPILE_DEFINITIONS TIXML_USE_STL=1)
64 endif()
65 endif()
66endif()
67
68mark_as_advanced(TINYXML_INCLUDE_DIR TINYXML_LIBRARY)
diff --git a/project/cmake/modules/FindUDEV.cmake b/project/cmake/modules/FindUDEV.cmake
deleted file mode 100644
index 422c437..0000000
--- a/project/cmake/modules/FindUDEV.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
1#.rst:
2# FindUDEV
3# -------
4# Finds the UDEV library
5#
6# This will will define the following variables::
7#
8# UDEV_FOUND - system has UDEV
9# UDEV_INCLUDE_DIRS - the UDEV include directory
10# UDEV_LIBRARIES - the UDEV libraries
11# UDEV_DEFINITIONS - the UDEV definitions
12#
13# and the following imported targets::
14#
15# UDEV::UDEV - The UDEV library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_UDEV libudev QUIET)
19endif()
20
21find_path(UDEV_INCLUDE_DIR NAMES libudev.h
22 PATHS ${PC_UDEV_INCLUDEDIR})
23find_library(UDEV_LIBRARY NAMES udev
24 PATHS ${PC_UDEV_LIBDIR})
25
26set(UDEV_VERSION ${PC_UDEV_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(UDEV
30 REQUIRED_VARS UDEV_LIBRARY UDEV_INCLUDE_DIR
31 VERSION_VAR UDEV_VERSION)
32
33if(UDEV_FOUND)
34 set(UDEV_LIBRARIES ${UDEV_LIBRARY})
35 set(UDEV_INCLUDE_DIRS ${UDEV_INCLUDE_DIR})
36 set(UDEV_DEFINITIONS -DHAVE_LIBUDEV=1)
37
38 if(NOT TARGET UDEV::UDEV)
39 add_library(UDEV::UDEV UNKNOWN IMPORTED)
40 set_target_properties(UDEV::UDEV PROPERTIES
41 IMPORTED_LOCATION "${UDEV_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${UDEV_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBUDEV=1)
44 endif()
45endif()
46
47mark_as_advanced(UDEV_INCLUDE_DIR UDEV_LIBRARY)
diff --git a/project/cmake/modules/FindUUID.cmake b/project/cmake/modules/FindUUID.cmake
deleted file mode 100644
index 173fac2..0000000
--- a/project/cmake/modules/FindUUID.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
1#.rst:
2# FindUUID
3# --------
4# Finds the libuuid library
5#
6# This will will define the following variables::
7#
8# UUID_FOUND - system has libuuid
9# UUID_INCLUDE_DIRS - the libuuid include directory
10# UUID_LIBRARIES - the libuuid libraries
11#
12# and the following imported targets::
13#
14# UUID::UUID - The libuuid library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_UUID uuid QUIET)
18endif()
19
20find_path(UUID_INCLUDE_DIR uuid/uuid.h
21 PATHS ${PC_UUID_INCLUDEDIR})
22find_library(UUID_LIBRARY uuid
23 PATHS ${PC_UUID_LIBRARY})
24set(UUID_VERSION ${PC_UUID_VERSION})
25
26include(FindPackageHandleStandardArgs)
27find_package_handle_standard_args(UUID
28 REQUIRED_VARS UUID_LIBRARY UUID_INCLUDE_DIR
29 VERSION_VAR UUID_VERSION)
30
31if(UUID_FOUND)
32 set(UUID_LIBRARIES ${UUID_LIBRARY})
33 set(UUID_INCLUDE_DIRS ${UUID_INCLUDE_DIR})
34
35 if(NOT TARGET UUID::UUID)
36 add_library(UUID::UUID UNKNOWN IMPORTED)
37 set_target_properties(UUID::UUID PROPERTIES
38 IMPORTED_LOCATION "${UUID_LIBRARY}"
39 INTERFACE_INCLUDE_DIRECTORIES "${UUID_INCLUDE_DIR}")
40 endif()
41endif()
42
43mark_as_advanced(UUID_INCLUDE_DIR UUID_LIBRARY)
diff --git a/project/cmake/modules/FindVAAPI.cmake b/project/cmake/modules/FindVAAPI.cmake
deleted file mode 100644
index ea9a3c9..0000000
--- a/project/cmake/modules/FindVAAPI.cmake
+++ /dev/null
@@ -1,72 +0,0 @@
1#.rst:
2# FindVAAPI
3# ---------
4# Finds the VAAPI library
5#
6# This will will define the following variables::
7#
8# VAAPI_FOUND - system has VAAPI
9# VAAPI_INCLUDE_DIRS - the VAAPI include directory
10# VAAPI_LIBRARIES - the VAAPI libraries
11# VAAPI_DEFINITIONS - the VAAPI definitions
12#
13# and the following imported targets::
14#
15# VAAPI::VAAPI - The VAAPI library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_VAAPI libva libva-x11 QUIET)
19endif()
20
21find_path(VAAPI_INCLUDE_DIR va/va.h
22 PATHS ${PC_VAAPI_libva_INCLUDEDIR})
23find_library(VAAPI_libva_LIBRARY NAMES va
24 PATHS ${PC_VAAPI_libva_LIBDIR})
25find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11
26 PATHS ${PC_VAAPI_libva_LIBDIR})
27find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm
28 PATHS ${PC_VAAPI_libva_LIBDIR})
29
30if(PC_VAAPI_libva_VERSION)
31 set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION})
32elseif(VAAPI_INCLUDE_DIR AND EXISTS "${VAAPI_INCLUDE_DIR}/va/va_version.h")
33 file(STRINGS "${VAAPI_INCLUDE_DIR}/va/va_version.h" vaapi_version_str REGEX "^#define[\t ]+VA_VERSION_S[\t ]+\".*\".*")
34 string(REGEX REPLACE "^#define[\t ]+VA_VERSION_S[\t ]+\"([^\"]+)\".*" "\\1" VAAPI_VERSION_STRING "${vaapi_version_str}")
35 unset(vaapi_version_str)
36endif()
37
38if(NOT VAAPI_FIND_VERSION)
39 set(VAAPI_FIND_VERSION 0.38.0)
40endif()
41
42include(FindPackageHandleStandardArgs)
43find_package_handle_standard_args(VAAPI
44 REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_INCLUDE_DIR
45 VERSION_VAR VAAPI_VERSION_STRING)
46
47if(VAAPI_FOUND)
48 set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR})
49 set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY} ${VAAPI_libva-drm_LIBRARY})
50 set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1)
51
52 if(NOT TARGET VAAPI::VAAPI_X11)
53 add_library(VAAPI::VAAPI_X11 UNKNOWN IMPORTED)
54 set_target_properties(VAAPI::VAAPI_X11 PROPERTIES
55 IMPORTED_LOCATION "${VAAPI_libva-x11_LIBRARY}")
56 endif()
57 if (NOT TARGET VAAPI::VAAPI_DRM)
58 add_library(VAAPI::VAAPI_DRM UNKNOWN IMPORTED)
59 set_target_properties(VAAPI::VAAPI_DRM PROPERTIES
60 IMPORTED_LOCATION "${VAAPI_libva-drm_LIBRARY}")
61 endif()
62 if(NOT TARGET VAAPI::VAAPI)
63 add_library(VAAPI::VAAPI UNKNOWN IMPORTED)
64 set_target_properties(VAAPI::VAAPI PROPERTIES
65 IMPORTED_LOCATION "${VAAPI_libva_LIBRARY}"
66 INTERFACE_INCLUDE_DIRECTORIES "${VAAPI_INCLUDE_DIR}"
67 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVA=1
68 INTERFACE_LINK_LIBRARIES "VAAPI::VAAPI_X11 VAAPI::VAAPI_DRM")
69 endif()
70endif()
71
72mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY)
diff --git a/project/cmake/modules/FindVDPAU.cmake b/project/cmake/modules/FindVDPAU.cmake
deleted file mode 100644
index b99e03f..0000000
--- a/project/cmake/modules/FindVDPAU.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
1#.rst:
2# FindVDPAU
3# ---------
4# Finds the VDPAU library
5#
6# This will will define the following variables::
7#
8# VDPAU_FOUND - system has VDPAU
9# VDPAU_INCLUDE_DIRS - the VDPAU include directory
10# VDPAU_LIBRARIES - the VDPAU libraries
11# VDPAU_DEFINITIONS - the VDPAU definitions
12#
13# and the following imported targets::
14#
15# VDPAU::VDPAU - The VDPAU library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_VDPAU vdpau QUIET)
19endif()
20
21find_path(VDPAU_INCLUDE_DIR NAMES vdpau/vdpau.h vdpau/vdpau_x11.h
22 PATHS ${PC_VDPAU_INCLUDEDIR})
23find_library(VDPAU_LIBRARY NAMES vdpau
24 PATHS ${PC_VDPAU_LIBDIR})
25
26set(VDPAU_VERSION ${PC_VDPAU_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(VDPAU
30 REQUIRED_VARS VDPAU_LIBRARY VDPAU_INCLUDE_DIR
31 VERSION_VAR VDPAU_VERSION)
32
33if(VDPAU_FOUND)
34 set(VDPAU_INCLUDE_DIRS ${VDPAU_INCLUDE_DIR})
35 set(VDPAU_LIBRARIES ${VDPAU_LIBRARY})
36 set(VDPAU_DEFINITIONS -DHAVE_LIBVDPAU=1)
37
38 if(NOT TARGET VDPAU::VDPAU)
39 add_library(VDPAU::VDPAU UNKNOWN IMPORTED)
40 set_target_properties(VDPAU::VDPAU PROPERTIES
41 IMPORTED_LOCATION "${VDPAU_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${VDPAU_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVDPAU=1)
44 endif()
45endif()
46
47mark_as_advanced(VDPAU_INCLUDE_DIR VDPAU_LIBRARY)
diff --git a/project/cmake/modules/FindX.cmake b/project/cmake/modules/FindX.cmake
deleted file mode 100644
index 19bb770..0000000
--- a/project/cmake/modules/FindX.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
1#.rst:
2# FindX
3# -----
4# Finds the X11 library
5#
6# This will will define the following variables::
7#
8# X_FOUND - system has X11
9# X_INCLUDE_DIRS - the X11 include directory
10# X_LIBRARIES - the X11 libraries
11# X_DEFINITIONS - the X11 definitions
12#
13# and the following imported targets::
14#
15# X::X - The X11 library
16# X::Xext - The X11 extension library
17
18if(PKG_CONFIG_FOUND)
19 pkg_check_modules(PC_X x11 xext QUIET)
20endif()
21
22find_path(X_INCLUDE_DIR NAMES X11/Xlib.h
23 PATHS ${PC_X_x11_INCLUDEDIR})
24find_library(X_LIBRARY NAMES X11
25 PATHS ${PC_X_x11_LIBDIR})
26find_library(X_EXT_LIBRARY NAMES Xext
27 PATHS ${PC_X_xext_LIBDIR})
28
29set(X_VERSION ${PC_X_x11_VERSION})
30
31include(FindPackageHandleStandardArgs)
32find_package_handle_standard_args(X
33 REQUIRED_VARS X_LIBRARY X_EXT_LIBRARY X_INCLUDE_DIR
34 VERSION_VAR X_VERSION)
35
36if(X_FOUND)
37 set(X_LIBRARIES ${X_LIBRARY} ${X_EXT_LIBRARY})
38 set(X_INCLUDE_DIRS ${X_INCLUDE_DIR})
39 set(X_DEFINITIONS -DHAVE_X11=1)
40
41 if(NOT TARGET X::X)
42 add_library(X::X UNKNOWN IMPORTED)
43 set_target_properties(X::X PROPERTIES
44 IMPORTED_LOCATION "${X_LIBRARY}"
45 INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}"
46 INTERFACE_COMPILE_DEFINITIONS HAVE_X11=1)
47 endif()
48 if(NOT TARGET X::Xext)
49 add_library(X::Xext UNKNOWN IMPORTED)
50 set_target_properties(X::Xext PROPERTIES
51 IMPORTED_LOCATION "${X_EXT_LIBRARY}"
52 INTERFACE_INCLUDE_DIRECTORIES "${X_INCLUDE_DIR}"
53 INTERFACE_LINK_LIBRARIES X::X)
54 endif()
55endif()
56
57mark_as_advanced(X_INCLUDE_DIR X_LIBRARY X_EXT_LIBRARY)
diff --git a/project/cmake/modules/FindXRandR.cmake b/project/cmake/modules/FindXRandR.cmake
deleted file mode 100644
index 9feaedc..0000000
--- a/project/cmake/modules/FindXRandR.cmake
+++ /dev/null
@@ -1,47 +0,0 @@
1#.rst:
2# FindXRandR
3# ----------
4# Finds the XRandR library
5#
6# This will will define the following variables::
7#
8# XRANDR_FOUND - system has XRANDR
9# XRANDR_INCLUDE_DIRS - the XRANDR include directory
10# XRANDR_LIBRARIES - the XRANDR libraries
11# XRANDR_DEFINITIONS - the XRANDR definitions
12#
13# and the following imported targets::
14#
15# XRandR::XRandR - The XRANDR library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_XRANDR xrandr QUIET)
19endif()
20
21find_path(XRANDR_INCLUDE_DIR NAMES X11/extensions/Xrandr.h
22 PATHS ${PC_XRANDR_INCLUDEDIR})
23find_library(XRANDR_LIBRARY NAMES Xrandr
24 PATHS ${PC_XRANDR_LIBDIR})
25
26set(XRANDR_VERSION ${PC_XRANDR_VERSION})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(XRandR
30 REQUIRED_VARS XRANDR_LIBRARY XRANDR_INCLUDE_DIR
31 VERSION_VAR XRANDR_VERSION)
32
33if(XRANDR_FOUND)
34 set(XRANDR_LIBRARIES ${XRANDR_LIBRARY})
35 set(XRANDR_INCLUDE_DIRS ${XRANDR_INCLUDE_DIR})
36 set(XRANDR_DEFINITIONS -DHAVE_LIBXRANDR=1)
37
38 if(NOT TARGET XRandR::XRandR)
39 add_library(XRandR::XRandR UNKNOWN IMPORTED)
40 set_target_properties(XRandR::XRandR PROPERTIES
41 IMPORTED_LOCATION "${XRANDR_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${XRANDR_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXRANDR=1)
44 endif()
45endif()
46
47mark_as_advanced(XRANDR_INCLUDE_DIR XRANDR_LIBRARY)
diff --git a/project/cmake/modules/FindXSLT.cmake b/project/cmake/modules/FindXSLT.cmake
deleted file mode 100644
index f7fea9e..0000000
--- a/project/cmake/modules/FindXSLT.cmake
+++ /dev/null
@@ -1,50 +0,0 @@
1#.rst:
2# FindXSLT
3# --------
4# Finds the XSLT library
5#
6# This will will define the following variables::
7#
8# XSLT_FOUND - system has XSLT
9# XSLT_INCLUDE_DIRS - the XSLT include directory
10# XSLT_LIBRARIES - the XSLT libraries
11# XSLT_DEFINITIONS - the XSLT definitions
12#
13# and the following imported targets::
14#
15# XSLT::XSLT - The XSLT library
16
17find_package(LibXml2 REQUIRED)
18
19if(PKG_CONFIG_FOUND)
20 pkg_check_modules(PC_XSLT libxslt QUIET)
21endif()
22
23find_path(XSLT_INCLUDE_DIR NAMES libxslt/xslt.h
24 PATHS ${PC_XSLT_INCLUDEDIR})
25find_library(XSLT_LIBRARY NAMES xslt libxslt
26 PATHS ${PC_XSLT_LIBDIR})
27
28set(XSLT_VERSION ${PC_XSLT_VERSION})
29
30include(FindPackageHandleStandardArgs)
31find_package_handle_standard_args(XSLT
32 REQUIRED_VARS XSLT_LIBRARY XSLT_INCLUDE_DIR
33 VERSION_VAR XSLT_VERSION)
34
35if(XSLT_FOUND)
36 set(XSLT_LIBRARIES ${XSLT_LIBRARY} ${LIBXML2_LIBRARIES})
37 set(XSLT_INCLUDE_DIRS ${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR})
38 set(XSLT_DEFINITIONS -DHAVE_LIBXSLT=1)
39
40 if(NOT TARGET XSLT::XSLT)
41 add_library(XSLT::XSLT UNKNOWN IMPORTED)
42 set_target_properties(XSLT::XSLT PROPERTIES
43 IMPORTED_LOCATION "${XSLT_LIBRARY}"
44 INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}"
45 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1
46 INTERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}")
47 endif()
48endif()
49
50mark_as_advanced(XSLT_INCLUDE_DIR XSLT_LIBRARY)
diff --git a/project/cmake/modules/FindYajl.cmake b/project/cmake/modules/FindYajl.cmake
deleted file mode 100644
index c73a67b..0000000
--- a/project/cmake/modules/FindYajl.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
1#.rst:
2# FindYajl
3# --------
4# Finds the Yajl library
5#
6# This will will define the following variables::
7#
8# YAJL_FOUND - system has Yajl
9# YAJL_INCLUDE_DIRS - Yajl include directory
10# YAJL_LIBRARIES - the Yajl libraries
11#
12# and the following imported targets::
13#
14# Yajl::Yajl - The Yajl library
15
16if(NOT Yajl_FIND_VERSION)
17 set(Yajl_FIND_VERSION 2.0.0)
18endif()
19
20if(PKG_CONFIG_FOUND)
21 pkg_check_modules(PC_YAJL yajl>=${Yajl_FIND_VERSION} QUIET)
22endif()
23
24find_path(YAJL_INCLUDE_DIR NAMES yajl/yajl_common.h
25 PATHS ${PC_YAJL_INCLUDEDIR})
26find_library(YAJL_LIBRARY NAMES yajl
27 PATHS ${PC_YAJL_LIBDIR})
28
29if(PC_YAJL_VERSION)
30 set(YAJL_VERSION_STRING ${PC_YAJL_VERSION})
31elseif(YAJL_INCLUDE_DIR AND EXISTS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h")
32 file(STRINGS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h" yajl_version_str REGEX "^[ \t]*#define[ \t]+YAJL_(MAJOR|MINOR|MICRO)")
33 string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}")
34
35 string(REGEX REPLACE ".*YAJL_MAJOR ([0-9]+).*" "\\1" yajl_major "${yajl_version_str}")
36 string(REGEX REPLACE ".*YAJL_MINOR ([0-9]+).*" "\\1" yajl_minor "${yajl_version_str}")
37 string(REGEX REPLACE ".*YAJL_MICRO ([0-9]+).*" "\\1" yajl_micro "${yajl_version_str}")
38 set(YAJL_VERSION_STRING "${yajl_major}.${yajl_minor}.${yajl_micro}")
39 unset(yajl_version_str)
40 unset(yajl_major)
41 unset(yajl_minor)
42 unset(yajl_micro)
43endif()
44
45include(FindPackageHandleStandardArgs)
46find_package_handle_standard_args(Yajl
47 REQUIRED_VARS YAJL_LIBRARY YAJL_INCLUDE_DIR
48 VERSION_VAR YAJL_VERSION_STRING)
49
50if(YAJL_FOUND)
51 set(YAJL_INCLUDE_DIRS ${YAJL_INCLUDE_DIR})
52 set(YAJL_LIBRARIES ${YAJL_LIBRARY})
53
54 if(NOT TARGET Yajl::Yajl)
55 add_library(Yajl::Yajl UNKNOWN IMPORTED)
56 set_target_properties(Yajl::Yajl PROPERTIES
57 IMPORTED_LOCATION "${YAJL_LIBRARY}"
58 INTERFACE_INCLUDE_DIRECTORIES "${YAJL_INCLUDE_DIR}")
59 endif()
60endif()
61
62mark_as_advanced(YAJL_INCLUDE_DIR YAJL_LIBRARY)
diff --git a/project/cmake/modules/FindZip.cmake b/project/cmake/modules/FindZip.cmake
deleted file mode 100644
index e0a38c1..0000000
--- a/project/cmake/modules/FindZip.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
1#.rst:
2# FindZip
3# -----------
4# Finds the Zip library
5#
6# This will will define the following variables::
7#
8# ZIP_FOUND - system has Zip
9# ZIP_INCLUDE_DIRS - the Zip include directory
10# ZIP_LIBRARIES - the Zip libraries
11# ZIP_DEFINITIONS - the Zip libraries
12#
13# and the following imported targets::
14#
15# ZIP::ZIP - The Zip library
16
17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_ZIP libzip QUIET)
19endif()
20
21find_path(ZIP_INCLUDE_DIR zip.h
22 PATHS ${PC_ZIP_INCLUDEDIR})
23find_library(ZIP_LIBRARY NAMES zip
24 PATHS ${PC_ZIP_LIBDIR})
25set(ZIP_VERSION ${PC_ZIP_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(ZIP
29 REQUIRED_VARS ZIP_LIBRARY ZIP_INCLUDE_DIR
30 VERSION_VAR ZIP_VERSION)
31
32if(ZIP_FOUND)
33 set(ZIP_LIBRARIES ${ZIP_LIBRARY})
34 set(ZIP_INCLUDE_DIRS ${ZIP_INCLUDE_DIR})
35 set(ZIP_DEFINITIONS "${PC_ZIP_CFLAGS}")
36
37 if(NOT TARGET ZIP::ZIP)
38 add_library(ZIP::ZIP UNKNOWN IMPORTED)
39 set_target_properties(ZIP::ZIP PROPERTIES
40 IMPORTED_LOCATION "${ZIP_LIBRARY}"
41 INTERFACE_INCLUDE_DIRECTORIES "${ZIP_INCLUDE_DIR}"
42 INTERFACE_COMPILE_DEFINITIONS "${PC_ZIP_CFLAGS}")
43 endif()
44endif()
45
46mark_as_advanced(ZIP_INCLUDE_DIR ZIP_LIBRARY)
diff --git a/project/cmake/modules/LDGOLD.cmake b/project/cmake/modules/LDGOLD.cmake
deleted file mode 100644
index ad19c6b..0000000
--- a/project/cmake/modules/LDGOLD.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1option(ENABLE_LDGOLD "Use GNU gold linker" ON)
2
3set(LDGOLD_FOUND FALSE)
4if(ENABLE_LDGOLD)
5 execute_process(COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
6 if(LD_VERSION MATCHES "GNU gold")
7 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
8 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
9 set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
10 set(LDGOLD_FOUND TRUE)
11 message(STATUS "Linker: GNU gold")
12 else()
13 message(WARNING "GNU gold linker is not available, falling back to default system linker")
14 endif()
15else()
16 message(STATUS "Linker: Default system linker")
17endif()
18
19set(DEFAULT_ENABLE_DEBUGFISSION FALSE)
20if(CMAKE_BUILD_TYPE STREQUAL Debug OR
21 CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo AND
22 LDGOLD_FOUND)
23 set(DEFAULT_ENABLE_DEBUGFISSION TRUE)
24endif()
25
26include(CMakeDependentOption)
27cmake_dependent_option(ENABLE_DEBUGFISSION "Enable Debug Fission support" ON
28 "DEFAULT_ENABLE_DEBUGFISSION" OFF)
29
30set(DEBUGFISSION_FOUND FALSE)
31if(ENABLE_DEBUGFISSION)
32 include(TestCXXAcceptsFlag)
33 check_cxx_accepts_flag(-gsplit-dwarf CXX_ACCEPTS_GSPLIT_DWARF)
34 if(CXX_ACCEPTS_GSPLIT_DWARF)
35 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gsplit-dwarf")
36 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gsplit-dwarf")
37 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
38 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
39 set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--gdb-index")
40 set(DEBUGFISSION_FOUND TRUE)
41 message(STATUS "Debug Fission enabled")
42 else()
43 message(WARNING "Debug Fission is not available")
44 endif()
45endif()
diff --git a/project/cmake/modules/extra/ECMEnableSanitizers.cmake b/project/cmake/modules/extra/ECMEnableSanitizers.cmake
deleted file mode 100644
index aa7092d..0000000
--- a/project/cmake/modules/extra/ECMEnableSanitizers.cmake
+++ /dev/null
@@ -1,149 +0,0 @@
1#.rst:
2# ECMEnableSanitizers
3# -------------------
4#
5# Enable compiler sanitizer flags.
6#
7# The following sanitizers are supported:
8#
9# - Address Sanitizer
10# - Memory Sanitizer
11# - Thread Sanitizer
12# - Leak Sanitizer
13# - Undefined Behaviour Sanitizer
14#
15# All of them are implemented in Clang, depending on your version, and
16# there is an work in progress in GCC, where some of them are currently
17# implemented.
18#
19# This module will check your current compiler version to see if it
20# supports the sanitizers that you want to enable
21#
22# Usage
23# =====
24#
25# Simply add::
26#
27# include(ECMEnableSanitizers)
28#
29# to your ``CMakeLists.txt``. Note that this module is included in
30# KDECompilerSettings, so projects using that module do not need to also
31# include this one.
32#
33# The sanitizers are not enabled by default. Instead, you must set
34# ``ECM_ENABLE_SANITIZERS`` (either in your ``CMakeLists.txt`` or on the
35# command line) to a semicolon-separated list of sanitizers you wish to enable.
36# The options are:
37#
38# - address
39# - memory
40# - thread
41# - leak
42# - undefined
43#
44# The sanitizers "address", "memory" and "thread" are mutually exclusive. You
45# cannot enable two of them in the same build.
46#
47# "leak" requires the "address" sanitizer.
48#
49# .. note::
50#
51# To reduce the overhead induced by the instrumentation of the sanitizers, it
52# is advised to enable compiler optimizations (``-O1`` or higher).
53#
54# Example
55# =======
56#
57# This is an example of usage::
58#
59# mkdir build
60# cd build
61# cmake -DECM_ENABLE_SANITIZERS='address;leak;undefined' ..
62#
63# .. note::
64#
65# Most of the sanitizers will require Clang. To enable it, use::
66#
67# -DCMAKE_CXX_COMPILER=clang++
68#
69# Since 1.3.0.
70
71#=============================================================================
72# Copyright 2014 Mathieu Tarral <mathieu.tarral@gmail.com>
73#
74# Distributed under the OSI-approved BSD License (the "License");
75# see accompanying file COPYING-CMAKE-SCRIPTS for details.
76#
77# This software is distributed WITHOUT ANY WARRANTY; without even the
78# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
79# See the License for more information.
80#=============================================================================
81# (To distribute this file outside of extra-cmake-modules, substitute the full
82# License text for the above reference.)
83
84# MACRO check_compiler_version
85#-----------------------------
86macro (check_compiler_version gcc_required_version clang_required_version)
87 if (
88 (
89 CMAKE_CXX_COMPILER_ID MATCHES "GNU"
90 AND
91 CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_required_version}
92 )
93 OR
94 (
95 CMAKE_CXX_COMPILER_ID MATCHES "Clang"
96 AND
97 CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${clang_required_version}
98 )
99 )
100 # error !
101 message(FATAL_ERROR "You ask to enable the sanitizer ${CUR_SANITIZER},
102 but your compiler ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION}
103 does not support it !
104 You should use at least GCC ${gcc_required_version} or Clang ${clang_required_version}
105 (99.99 means not implemented yet)")
106 endif ()
107endmacro ()
108
109# MACRO check_compiler_support
110#------------------------------
111macro (enable_sanitizer_flags sanitize_option)
112 if (${sanitize_option} MATCHES "address")
113 check_compiler_version("4.8" "3.1")
114 set(XSAN_COMPILE_FLAGS "-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls")
115 set(XSAN_LINKER_FLAGS "asan")
116 elseif (${sanitize_option} MATCHES "thread")
117 check_compiler_version("4.8" "3.1")
118 set(XSAN_COMPILE_FLAGS "-fsanitize=thread")
119 set(XSAN_LINKER_FLAGS "tsan")
120 elseif (${sanitize_option} MATCHES "memory")
121 check_compiler_version("99.99" "3.1")
122 set(XSAN_COMPILE_FLAGS "-fsanitize=memory")
123 elseif (${sanitize_option} MATCHES "leak")
124 check_compiler_version("4.9" "3.4")
125 set(XSAN_COMPILE_FLAGS "-fsanitize=leak")
126 set(XSAN_LINKER_FLAGS "lsan")
127 elseif (${sanitize_option} MATCHES "undefined")
128 check_compiler_version("4.9" "3.1")
129 set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls")
130 else ()
131 message(FATAL_ERROR "Compiler sanitizer option \"${sanitize_option}\" not supported.")
132 endif ()
133endmacro ()
134
135# for each element of the ECM_ENABLE_SANITIZERS list
136foreach ( CUR_SANITIZER ${ECM_ENABLE_SANITIZERS} )
137 # lowercase filter
138 string(TOLOWER ${CUR_SANITIZER} CUR_SANITIZER)
139 # check option and enable appropriate flags
140 enable_sanitizer_flags ( ${CUR_SANITIZER} )
141 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${XSAN_COMPILE_FLAGS}" )
142 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
143 link_libraries(${XSAN_LINKER_FLAGS})
144 endif()
145 if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
146 string(REPLACE "-Wl,--no-undefined" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
147 string(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}")
148 endif ()
149endforeach ()
diff --git a/project/cmake/platform/android/defines.txt b/project/cmake/platform/android/defines.txt
deleted file mode 100644
index fa103d0..0000000
--- a/project/cmake/platform/android/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID
diff --git a/project/cmake/platform/freebsd/defines.txt b/project/cmake/platform/freebsd/defines.txt
deleted file mode 100644
index 9483597..0000000
--- a/project/cmake/platform/freebsd/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX
diff --git a/project/cmake/platform/ios/defines.txt b/project/cmake/platform/ios/defines.txt
deleted file mode 100644
index d0989ea..0000000
--- a/project/cmake/platform/ios/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX
diff --git a/project/cmake/platform/linux/defines.txt b/project/cmake/platform/linux/defines.txt
deleted file mode 100644
index 3fe9c5c..0000000
--- a/project/cmake/platform/linux/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -fPIC
diff --git a/project/cmake/platform/osx/defines.txt b/project/cmake/platform/osx/defines.txt
deleted file mode 100644
index 33b009e..0000000
--- a/project/cmake/platform/osx/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX
diff --git a/project/cmake/platform/rbpi/defines.txt b/project/cmake/platform/rbpi/defines.txt
deleted file mode 100644
index 08fe4cb..0000000
--- a/project/cmake/platform/rbpi/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI
diff --git a/project/cmake/platform/windows/defines.txt b/project/cmake/platform/windows/defines.txt
deleted file mode 100644
index 5ccd98a..0000000
--- a/project/cmake/platform/windows/defines.txt
+++ /dev/null
@@ -1 +0,0 @@
1-DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_USE_32BIT_TIME_T -D_WINSOCKAPI_ \ No newline at end of file
diff --git a/project/cmake/scripts/android/ArchSetup.cmake b/project/cmake/scripts/android/ArchSetup.cmake
deleted file mode 100644
index 281f94f..0000000
--- a/project/cmake/scripts/android/ArchSetup.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
1if(NOT CMAKE_TOOLCHAIN_FILE)
2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for android. See ${PROJECT_SOURCE_DIR}/README.md")
3elseif(NOT SDK_PLATFORM)
4 message(FATAL_ERROR "Toolchain did not define SDK_PLATFORM. Possibly outdated depends.")
5endif()
6
7set(ARCH_DEFINES -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID)
8set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
9 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
10set(PLATFORM_DIR linux)
11if(WITH_ARCH)
12 set(ARCH ${WITH_ARCH})
13else()
14 if(CPU STREQUAL armeabi-v7a)
15 set(ARCH arm)
16 set(NEON True)
17 elseif(CPU STREQUAL arm64-v8a)
18 set(ARCH aarch64)
19 elseif(CPU STREQUAL i686)
20 set(ARCH i486-linux)
21 set(NEON False)
22 else()
23 message(SEND_ERROR "Unknown CPU: ${CPU}")
24 endif()
25endif()
26
27set(FFMPEG_OPTS --enable-cross-compile --cpu=cortex-a9 --arch=arm --target-os=linux --enable-neon
28 --disable-vdpau --cc=${CMAKE_C_COMPILER} --host-cc=${CMAKE_C_COMPILER}
29 --strip=${CMAKE_STRIP})
30set(ENABLE_SDL OFF CACHE BOOL "" FORCE)
31set(ENABLE_X11 OFF CACHE BOOL "" FORCE)
32set(ENABLE_AML OFF CACHE BOOL "" FORCE)
33set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
34
35list(APPEND DEPLIBS android log jnigraphics)
diff --git a/project/cmake/scripts/android/Install.cmake b/project/cmake/scripts/android/Install.cmake
deleted file mode 100644
index 025f194..0000000
--- a/project/cmake/scripts/android/Install.cmake
+++ /dev/null
@@ -1,122 +0,0 @@
1# Android packaging
2
3find_program(AAPT_EXECUTABLE aapt PATHS ${SDK_BUILDTOOLS_PATH})
4if(NOT AAPT_EXECUTABLE)
5 message(FATAL_ERROR "Could NOT find aapt executable")
6endif()
7find_program(DX_EXECUTABLE dx PATHS ${SDK_BUILDTOOLS_PATH})
8if(NOT DX_EXECUTABLE)
9 message(FATAL_ERROR "Could NOT find dx executable")
10endif()
11find_program(ZIPALIGN_EXECUTABLE zipalign PATHS ${SDK_BUILDTOOLS_PATH})
12if(NOT ZIPALIGN_EXECUTABLE)
13 message(FATAL_ERROR "Could NOT find zipalign executable")
14endif()
15
16# Configure files into packaging environment.
17configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/Makefile.in
18 ${CMAKE_BINARY_DIR}/tools/android/packaging/Makefile @ONLY)
19configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/apksign
20 ${CMAKE_BINARY_DIR}/tools/android/packaging/apksign COPYONLY)
21configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/make_symbols.sh
22 ${CMAKE_BINARY_DIR}/tools/android/packaging/make_symbols.sh COPYONLY)
23file(WRITE ${CMAKE_BINARY_DIR}/tools/depends/Makefile.include
24 "$(PREFIX)/lib/${APP_NAME_LC}/lib${APP_NAME_LC}.so: ;\n")
25
26set(package_files strings.xml
27 activity_main.xml
28 AndroidManifest.xml
29 src/org/xbmc/kodi/XBMCOnAudioFocusChangeListener.java
30 src/org/xbmc/kodi/XBMCInputDeviceListener.java
31 src/org/xbmc/kodi/Main.java
32 src/org/xbmc/kodi/XBMCSettingsContentObserver.java
33 src/org/xbmc/kodi/XBMCOnFrameAvailableListener.java
34 src/org/xbmc/kodi/XBMCVideoView.java
35 src/org/xbmc/kodi/Splash.java
36 src/org/xbmc/kodi/XBMCBroadcastReceiver.java)
37foreach(file IN LISTS package_files)
38 configure_file(${CORE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in
39 ${CMAKE_BINARY_DIR}/tools/android/packaging/xbmc/${file} @ONLY)
40endforeach()
41
42# Copy files to the location expected by the Android packaging scripts.
43add_custom_target(bundle
44 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/android/packaging/media
45 ${CMAKE_BINARY_DIR}/tools/android/packaging/media
46 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/android/packaging/xbmc/res
47 ${CMAKE_BINARY_DIR}/tools/android/packaging/xbmc/res
48 COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPENDS_PATH}/lib/python2.7 ${libdir}/python2.7
49 COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPENDS_PATH}/share/${APP_NAME_LC} ${datadir}/${APP_NAME_LC}
50 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}>
51 ${libdir}/${APP_NAME_LC}/$<TARGET_FILE_NAME:${APP_NAME_LC}>)
52add_dependencies(bundle ${APP_NAME_LC})
53
54# This function is used to prepare a prefix expected by the Android packaging
55# scripts. It creates a bundle_files command that is added to the bundle target.
56function(add_bundle_file file destination relative)
57 if(NOT TARGET bundle_files)
58 file(REMOVE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake)
59 add_custom_target(bundle_files COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake)
60 add_dependencies(bundle bundle_files)
61 endif()
62
63 string(REPLACE "${relative}/" "" outfile ${file})
64 get_filename_component(file ${file} REALPATH)
65 get_filename_component(outdir ${outfile} DIRECTORY)
66 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake
67 "file(COPY \"${file}\" DESTINATION \"${destination}/${outdir}\")\n")
68 if(file MATCHES "\\.so\\..+$")
69 get_filename_component(srcfile "${file}" NAME)
70 string(REGEX REPLACE "\\.so\\..+$" "\.so" destfile ${srcfile})
71 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/BundleFiles.cmake
72 "file(RENAME \"${destination}/${outdir}/${srcfile}\" \"${destination}/${outdir}/${destfile}\")\n")
73 endif()
74endfunction()
75
76# Copy files into prefix
77foreach(file IN LISTS XBT_FILES install_data)
78 string(REPLACE "${CMAKE_BINARY_DIR}/" "" file ${file})
79 add_bundle_file(${CMAKE_BINARY_DIR}/${file} ${datarootdir}/${APP_NAME_LC} ${CMAKE_BINARY_DIR})
80endforeach()
81
82foreach(library IN LISTS LIBRARY_FILES)
83 add_bundle_file(${library} ${libdir}/${APP_NAME_LC} ${CMAKE_BINARY_DIR})
84endforeach()
85
86foreach(lib IN LISTS required_dyload dyload_optional ITEMS Shairplay)
87 string(TOUPPER ${lib} lib_up)
88 set(lib_so ${${lib_up}_SONAME})
89 if(lib_so AND EXISTS ${DEPENDS_PATH}/lib/${lib_so})
90 add_bundle_file(${DEPENDS_PATH}/lib/${lib_so} ${libdir} "")
91 endif()
92endforeach()
93add_bundle_file(${SMBCLIENT_LIBRARY} ${libdir} "")
94
95# Main targets from Makefile.in
96if(CPU MATCHES i686)
97 set(CPU x86)
98 set(ARCH x86)
99endif()
100foreach(target apk obb apk-unsigned apk-obb apk-obb-unsigned apk-noobb apk-clean apk-sign)
101 add_custom_target(${target}
102 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} ${CMAKE_MAKE_PROGRAM}
103 -C ${CMAKE_BINARY_DIR}/tools/android/packaging
104 CORE_SOURCE_DIR=${CORE_SOURCE_DIR}
105 CC=${CMAKE_C_COMPILER}
106 CPU=${CPU}
107 ARCH=${ARCH}
108 PREFIX=${prefix}
109 NDKROOT=${NDKROOT}
110 SDKROOT=${SDKROOT}
111 SDK_PLATFORM=${SDK_PLATFORM}
112 STRIP=${CMAKE_STRIP}
113 AAPT=${AAPT_EXECUTABLE}
114 DX=${DX_EXECUTABLE}
115 ZIPALIGN=${ZIPALIGN_EXECUTABLE}
116 ${target}
117 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/android/packaging
118 )
119 if(NOT target STREQUAL apk-clean)
120 add_dependencies(${target} bundle)
121 endif()
122endforeach()
diff --git a/project/cmake/scripts/android/Macros.cmake b/project/cmake/scripts/android/Macros.cmake
deleted file mode 120000
index 2fdbb25..0000000
--- a/project/cmake/scripts/android/Macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/android/PathSetup.cmake b/project/cmake/scripts/android/PathSetup.cmake
deleted file mode 100644
index 69de883..0000000
--- a/project/cmake/scripts/android/PathSetup.cmake
+++ /dev/null
@@ -1,33 +0,0 @@
1if(NOT prefix)
2 set(prefix ${CMAKE_BINARY_DIR}/install)
3endif()
4set(CMAKE_INSTALL_PREFIX ${prefix})
5if(NOT exec_prefix)
6 set(exec_prefix ${prefix})
7endif()
8if(NOT libdir)
9 set(libdir ${prefix}/lib)
10endif()
11if(NOT bindir)
12 set(bindir ${prefix}/bin)
13endif()
14if(NOT includedir)
15 set(includedir ${prefix}/include)
16endif()
17if(NOT datarootdir)
18 set(datarootdir ${prefix}/share)
19endif()
20if(NOT datadir)
21 set(datadir ${datarootdir})
22endif()
23
24list(APPEND final_message "-- PATH config --")
25list(APPEND final_message "Prefix: ${prefix}")
26list(APPEND final_message "Libdir: ${libdir}")
27list(APPEND final_message "Bindir: ${bindir}")
28list(APPEND final_message "Includedir: ${includedir}")
29list(APPEND final_message "Datarootdir: ${datarootdir}")
30list(APPEND final_message "Datadir: ${datadir}")
31
32set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
33 -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/common/AddOptions.cmake b/project/cmake/scripts/common/AddOptions.cmake
deleted file mode 100644
index 96837c1..0000000
--- a/project/cmake/scripts/common/AddOptions.cmake
+++ /dev/null
@@ -1,78 +0,0 @@
1# - Add options without repeating them on the command line
2#
3# Synopsis:
4#
5# add_options (lang build opts)
6#
7# where:
8#
9# lang Name of the language whose compiler should receive the
10# options, e.g. CXX. If a comma-separated list is received
11# then the option is added for all those languages. Use the
12# special value ALL_LANGUAGES for these languages: CXX, C
13# and Fortran
14#
15# build Kind of build to which this options should apply,
16# such as DEBUG and RELEASE. This can also be a comma-
17# separated list. Use the special value ALL_BUILDS to apply
18# to all builds.
19#
20# opts List of options to add. Each should be quoted.
21#
22# Example:
23#
24# add_options (CXX RELEASE "-O3" "-DNDEBUG" "-Wall")
25
26function(add_options langs builds)
27 # special handling of empty language specification
28 if("${langs}" STREQUAL "ALL_LANGUAGES")
29 set(langs CXX C Fortran)
30 endif()
31 foreach(lang IN LISTS langs)
32 # prepend underscore if necessary
33 foreach(build IN LISTS builds)
34 if(NOT ("${build}" STREQUAL "ALL_BUILDS"))
35 set(_bld "_${build}")
36 string(TOUPPER "${_bld}" _bld)
37 else()
38 set(_bld "")
39 endif()
40 foreach(_opt IN LISTS ARGN)
41 set(_var "CMAKE_${lang}_FLAGS${_bld}")
42 #message(STATUS "Adding \"${_opt}\" to \${${_var}}")
43 # remove it first
44 string(REPLACE "${_opt}" "" _without "${${_var}}")
45 string(STRIP "${_without}" _without)
46 # we need to strip this one as well, so they are comparable
47 string(STRIP "${${_var}}" _stripped)
48 # if it wasn't there, then add it at the end
49 if("${_without}" STREQUAL "${_stripped}")
50 # don't add any extra spaces if no options yet are set
51 if(NOT ${_stripped} STREQUAL "")
52 set(${_var} "${_stripped} ${_opt}")
53 else()
54 set(${_var} "${_opt}")
55 endif()
56 set(${_var} "${${_var}}" PARENT_SCOPE)
57 endif()
58 endforeach()
59 endforeach()
60 endforeach()
61endfunction()
62
63# set varname to flag unless user has specified something that matches regex
64function(set_default_option varname flag regex)
65 if(NOT "$ENV{CXXFLAGS}" MATCHES "${regex}"
66 AND NOT "${CMAKE_CXX_FLAGS}" MATCHES "${regex}"
67 AND NOT "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}" MATCHES "${regex}")
68 set(${varname} ${flag} PARENT_SCOPE)
69 else()
70 set(${varname} PARENT_SCOPE)
71 endif()
72endfunction()
73
74# note: this must be called before project()
75macro(no_default_options)
76 # prevent the platform probe to set options
77 set(CMAKE_NOT_USING_CONFIG_FLAGS TRUE)
78endmacro()
diff --git a/project/cmake/scripts/common/AddonHelpers.cmake b/project/cmake/scripts/common/AddonHelpers.cmake
deleted file mode 100644
index 6680ed1..0000000
--- a/project/cmake/scripts/common/AddonHelpers.cmake
+++ /dev/null
@@ -1,268 +0,0 @@
1# Workaround for the fact that cpack's filenames are not customizable.
2# Each add-on is added as a separate component to facilitate zip/tgz packaging.
3# The filenames are always of the form basename-component, which is
4# incompatible with the addonid-version scheme we want. This hack renames
5# the files from the file names generated by the 'package' target.
6# Sadly we cannot extend the 'package' target, as it is a builtin target, see
7# http://public.kitware.com/Bug/view.php?id=8438
8# Thus, we have to add an 'addon-package' target.
9add_custom_target(addon-package
10 COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target package)
11
12macro(add_cpack_workaround target version ext)
13 if(NOT PACKAGE_DIR)
14 set(PACKAGE_DIR "${CMAKE_INSTALL_PREFIX}/zips")
15 endif()
16
17 add_custom_command(TARGET addon-package PRE_BUILD
18 COMMAND ${CMAKE_COMMAND} -E make_directory ${PACKAGE_DIR}
19 COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_PACKAGE_DIRECTORY}/addon-${target}-${version}.${ext} ${PACKAGE_DIR}/${target}-${version}.${ext})
20endmacro()
21
22# Grab the version from a given add-on's addon.xml
23macro (addon_version dir prefix)
24 if(EXISTS ${PROJECT_SOURCE_DIR}/${dir}/addon.xml.in)
25 file(READ ${PROJECT_SOURCE_DIR}/${dir}/addon.xml.in ADDONXML)
26 else()
27 file(READ ${dir}/addon.xml ADDONXML)
28 endif()
29
30 string(REGEX MATCH "<addon[^>]*version.?=.?.[0-9\\.]+" VERSION_STRING ${ADDONXML})
31 string(REGEX REPLACE ".*version=.([0-9\\.]+).*" "\\1" ${prefix}_VERSION ${VERSION_STRING})
32 message(STATUS ${prefix}_VERSION=${${prefix}_VERSION})
33endmacro()
34
35# Build, link and optionally package an add-on
36macro (build_addon target prefix libs)
37 addon_version(${target} ${prefix})
38 if(${prefix}_SOURCES)
39 add_library(${target} ${${prefix}_SOURCES})
40 target_link_libraries(${target} ${${libs}})
41 set_target_properties(${target} PROPERTIES VERSION ${${prefix}_VERSION}
42 SOVERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}
43 PREFIX "")
44 if(OS STREQUAL "android")
45 set_target_properties(${target} PROPERTIES PREFIX "lib")
46 endif()
47 elseif(${prefix}_CUSTOM_BINARY)
48 add_custom_target(${target} ALL)
49 endif()
50
51 # get the library's location
52 if(${prefix}_CUSTOM_BINARY)
53 list(GET ${prefix}_CUSTOM_BINARY 0 LIBRARY_LOCATION)
54 list(GET ${prefix}_CUSTOM_BINARY 1 LIBRARY_FILENAME)
55 else()
56 set(LIBRARY_LOCATION $<TARGET_FILE:${target}>)
57 # get the library's filename
58 if("${CORE_SYSTEM_NAME}" STREQUAL "android")
59 # for android we need the filename without any version numbers
60 set(LIBRARY_FILENAME $<TARGET_LINKER_FILE_NAME:${target}>)
61 else()
62 set(LIBRARY_FILENAME $<TARGET_FILE_NAME:${target}>)
63 endif()
64 endif()
65
66 # if there's an addon.xml.in we need to generate the addon.xml
67 if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in)
68 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in)
69 set(PLATFORM ${CORE_SYSTEM_NAME})
70
71 file(READ ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in addon_file)
72 string(CONFIGURE "${addon_file}" addon_file_conf @ONLY)
73 file(GENERATE OUTPUT ${PROJECT_SOURCE_DIR}/${target}/addon.xml CONTENT "${addon_file_conf}")
74 if(${APP_NAME_UC}_BUILD_DIR)
75 file(GENERATE OUTPUT ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/addon.xml CONTENT "${addon_file_conf}")
76 endif()
77 endif()
78
79 # if there's an settings.xml.in we need to generate the settings.xml
80 if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in)
81 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in)
82 set(PLATFORM ${CORE_SYSTEM_NAME})
83
84 file(READ ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in settings_file)
85 string(CONFIGURE "${settings_file}" settings_file_conf @ONLY)
86 file(GENERATE OUTPUT ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml CONTENT "${settings_file_conf}")
87 if(${APP_NAME_UC}_BUILD_DIR)
88 file(GENERATE OUTPUT ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/resources/settings.xml CONTENT "${settings_file_conf}")
89 endif()
90 endif()
91
92 # set zip as default if addon-package is called without PACKAGE_XXX
93 set(CPACK_GENERATOR "ZIP")
94 set(ext "zip")
95 if(PACKAGE_ZIP OR PACKAGE_TGZ)
96 if(PACKAGE_TGZ)
97 set(CPACK_GENERATOR "TGZ")
98 set(ext "tar.gz")
99 endif()
100 set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
101 set(CPACK_PACKAGE_FILE_NAME addon)
102 if(CMAKE_BUILD_TYPE STREQUAL "Release")
103 set(CPACK_STRIP_FILES TRUE)
104 endif()
105 set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
106 set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
107 list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION})
108 # Pack files together to create an archive
109 install(DIRECTORY ${target} DESTINATION ./ COMPONENT ${target}-${${prefix}_VERSION} PATTERN "xml.in" EXCLUDE)
110 if(WIN32)
111 if(NOT CPACK_PACKAGE_DIRECTORY)
112 # determine the temporary path
113 file(TO_CMAKE_PATH "$ENV{TEMP}" WIN32_TEMP_PATH)
114 string(LENGTH "${WIN32_TEMP_PATH}" WIN32_TEMP_PATH_LENGTH)
115 string(LENGTH "${PROJECT_BINARY_DIR}" PROJECT_BINARY_DIR_LENGTH)
116
117 # check if the temporary path is shorter than the default packaging directory path
118 if(WIN32_TEMP_PATH_LENGTH GREATER 0 AND WIN32_TEMP_PATH_LENGTH LESS PROJECT_BINARY_DIR_LENGTH)
119 # set the directory used by CPack for packaging to the temp directory
120 set(CPACK_PACKAGE_DIRECTORY ${WIN32_TEMP_PATH})
121 endif()
122 endif()
123
124 # in case of a VC++ project the installation location contains a $(Configuration) VS variable
125 # we replace it with ${CMAKE_BUILD_TYPE} (which doesn't cover the case when the build configuration
126 # is changed within Visual Studio)
127 string(REPLACE "$(Configuration)" "${CMAKE_BUILD_TYPE}" LIBRARY_LOCATION "${LIBRARY_LOCATION}")
128
129 if(${prefix}_SOURCES)
130 # install the generated DLL file
131 install(PROGRAMS ${LIBRARY_LOCATION} DESTINATION ${target}
132 COMPONENT ${target}-${${prefix}_VERSION})
133
134 if(CMAKE_BUILD_TYPE MATCHES Debug)
135 # for debug builds also install the PDB file
136 get_filename_component(LIBRARY_DIR ${LIBRARY_LOCATION} DIRECTORY)
137 install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${target}
138 COMPONENT ${target}-${${prefix}_VERSION})
139 endif()
140 endif()
141 if (${prefix}_CUSTOM_BINARY)
142 list(GET ${prefix}_CUSTOM_BINARY 0 FROM_BINARY)
143 list(GET ${prefix}_CUSTOM_BINARY 1 TO_BINARY)
144 install(FILES ${FROM_BINARY} DESTINATION ${target} RENAME ${TO_BINARY})
145 endif()
146 if(${prefix}_CUSTOM_DATA)
147 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources)
148 endif()
149 else()
150 if(NOT CPACK_PACKAGE_DIRECTORY)
151 set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR})
152 endif()
153 if(${prefix}_SOURCES)
154 install(TARGETS ${target} DESTINATION ${target}
155 COMPONENT ${target}-${${prefix}_VERSION})
156 endif()
157 if (${prefix}_CUSTOM_BINARY)
158 list(GET ${prefix}_CUSTOM_BINARY 0 FROM_BINARY)
159 list(GET ${prefix}_CUSTOM_BINARY 1 TO_BINARY)
160 if(OS STREQUAL "android")
161 set(TO_BINARY "lib${TO_BINARY}")
162 endif()
163 install(FILES ${FROM_BINARY} DESTINATION ${target} RENAME ${TO_BINARY}
164 COMPONENT ${target}-${${prefix}_VERSION})
165 endif()
166 if(${prefix}_CUSTOM_DATA)
167 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources)
168 endif()
169 endif()
170 add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext})
171 else()
172 if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi OR CORE_SYSTEM_NAME STREQUAL freebsd)
173 if(NOT OVERRIDE_PATHS)
174 if(CMAKE_INSTALL_PREFIX AND NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT CMAKE_INSTALL_PREFIX STREQUAL "${${APP_NAME_UC}_PREFIX}")
175 message(WARNING "CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} differs from ${APP_NAME} prefix, changing to ${${APP_NAME_UC}_PREFIX}. Please pass -DOVERRIDE_PATHS=1 to skip this check")
176 endif()
177 if(CMAKE_INSTALL_LIBDIR AND NOT CMAKE_INSTALL_LIBDIR STREQUAL "${${APP_NAME_UC}_LIB_DIR}")
178 message(WARNING "CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} differs from ${APP_NAME} libdir, changing to ${${APP_NAME_UC}_LIB_DIR}. Please pass -DOVERRIDE_PATHS=1 to skip this check")
179 endif()
180 if(CMAKE_INSTALL_DATADIR AND NOT CMAKE_INSTALL_DATADIR STREQUAL "${${APP_NAME_UC}_DATA_DIR}")
181 message(WARNING "CMAKE_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR} differs from ${APP_NAME} datadir, changing to ${${APP_NAME_UC}_DATA_DIR}. Please pass -DOVERRIDE_PATHS=1 to skip this check")
182 endif()
183 set(CMAKE_INSTALL_PREFIX "${${APP_NAME_UC}_PREFIX}" CACHE PATH "${APP_NAME} install prefix" FORCE)
184 set(CMAKE_INSTALL_LIBDIR "${${APP_NAME_UC}_LIB_DIR}" CACHE PATH "${APP_NAME} install libdir" FORCE)
185 set(CMAKE_INSTALL_DATADIR "${${APP_NAME_UC}_DATA_DIR}" CACHE PATH "${APP_NAME} install datadir" FORCE)
186 else()
187 if(NOT CMAKE_INSTALL_LIBDIR)
188 set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib/${APP_NAME_LC}")
189 endif()
190 if(NOT CMAKE_INSTALL_DATADIR)
191 set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_PREFIX}/share/${APP_NAME_LC}")
192 endif()
193 endif()
194 else()
195 set(CMAKE_INSTALL_LIBDIR "lib/${APP_NAME_LC}")
196 set(CMAKE_INSTALL_DATADIR "share/${APP_NAME_LC}")
197 endif()
198 if(${prefix}_SOURCES)
199 install(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target})
200 endif()
201 if (${prefix}_CUSTOM_BINARY)
202 list(GET ${prefix}_CUSTOM_BINARY 0 FROM_BINARY)
203 list(GET ${prefix}_CUSTOM_BINARY 1 TO_BINARY)
204 if(OS STREQUAL "android")
205 set(TO_BINARY "lib${TO_BINARY}")
206 endif()
207 install(FILES ${FROM_BINARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target} RENAME ${TO_BINARY})
208 endif()
209 install(DIRECTORY ${target} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons PATTERN "xml.in" EXCLUDE)
210 if(${prefix}_CUSTOM_DATA)
211 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons/${target}/resources)
212 endif()
213 endif()
214 if(${APP_NAME_UC}_BUILD_DIR)
215 file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*)
216 if(${prefix}_CUSTOM_DATA)
217 add_custom_command(TARGET ${target} POST_BUILD
218 COMMAND ${CMAKE_COMMAND} -E copy_directory
219 ${${prefix}_CUSTOM_DATA}
220 ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/resources)
221 endif()
222 foreach(file ${files})
223 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/${target}/" "" name "${file}")
224 # A good way to deal with () in filenames
225 if(NOT ${file} MATCHES xml.in)
226 configure_file(${file} ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/${name} COPYONLY)
227 endif()
228 endforeach()
229 add_custom_command(TARGET ${target} POST_BUILD
230 COMMAND ${CMAKE_COMMAND} -E copy
231 ${LIBRARY_LOCATION}
232 ${${APP_NAME_UC}_BUILD_DIR}/addons/${target}/${LIBRARY_FILENAME})
233 endif()
234endmacro()
235
236# finds a path to a given file (recursive)
237function (kodi_find_path var_name filename search_path strip_file)
238 file(GLOB_RECURSE PATH_TO_FILE ${search_path} ${filename})
239 if(strip_file)
240 string(REPLACE ${filename} "" PATH_TO_FILE ${PATH_TO_FILE})
241 endif()
242 set (${var_name} ${PATH_TO_FILE} PARENT_SCOPE)
243endfunction()
244
245# Cmake build options
246include(AddOptions)
247include(TestCXXAcceptsFlag)
248option(PACKAGE_ZIP "Package Zip file?" OFF)
249option(PACKAGE_TGZ "Package TGZ file?" OFF)
250option(BUILD_SHARED_LIBS "Build shared libs?" ON)
251
252# LTO support?
253CHECK_CXX_ACCEPTS_FLAG("-flto" HAVE_LTO)
254if(HAVE_LTO)
255 option(USE_LTO "use link time optimization" OFF)
256 if(USE_LTO)
257 add_options(ALL_LANGUAGES ALL_BUILDS "-flto")
258 endif()
259endif()
260
261# set this to try linking dependencies as static as possible
262if(ADDONS_PREFER_STATIC_LIBS)
263 set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
264endif()
265
266if(${APP_NAME_UC}_BUILD_DIR)
267 list(APPEND CMAKE_PREFIX_PATH ${${APP_NAME_UC}_BUILD_DIR}/build)
268endif()
diff --git a/project/cmake/scripts/common/ArchSetup.cmake b/project/cmake/scripts/common/ArchSetup.cmake
deleted file mode 100644
index 538fcaf..0000000
--- a/project/cmake/scripts/common/ArchSetup.cmake
+++ /dev/null
@@ -1,155 +0,0 @@
1# This script configures the build for a given architecture.
2# Flags and stringified arch is set up.
3# General compiler tests belongs here.
4#
5# On return, the following variables are set:
6# CMAKE_SYSTEM_NAME - a lowercased system name
7# CPU - the CPU on the target
8# ARCH - the system architecture
9# ARCH_DEFINES - list of compiler definitions for this architecture
10# SYSTEM_DEFINES - list of compiler definitions for this system
11# DEP_DEFINES - compiler definitions for system dependencies (e.g. LIRC)
12# + the results of compiler tests etc.
13
14include(CheckCXXSourceCompiles)
15include(CheckSymbolExists)
16include(CheckFunctionExists)
17include(CheckIncludeFile)
18
19# Macro to check if a given type exists in a given header
20# Arguments:
21# header the header to check
22# type the type to check for existence
23# var the compiler definition to set if type exists
24# On return:
25# If type was found, the definition is added to SYSTEM_DEFINES
26macro(check_type header type var)
27 check_cxx_source_compiles("#include <${header}>
28 int main()
29 {
30 ${type} s;
31 }" ${var})
32 if(${var})
33 list(APPEND SYSTEM_DEFINES -D${var}=1)
34 endif()
35endmacro()
36
37# Macro to check if a given builtin function exists
38# Arguments:
39# func the function to check
40# var the compiler definition to set if type exists
41# On return:
42# If type was found, the definition is added to SYSTEM_DEFINES
43macro(check_builtin func var)
44 check_cxx_source_compiles("
45 int main()
46 {
47 ${func};
48 }" ${var})
49 if(${var})
50 list(APPEND SYSTEM_DEFINES -D${var}=1)
51 endif()
52endmacro()
53
54
55# -------- Main script ---------
56message(STATUS "System type: ${CMAKE_SYSTEM_NAME}")
57if(NOT CORE_SYSTEM_NAME)
58 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
59endif()
60
61if(WITH_CPU)
62 set(CPU ${WITH_CPU})
63elseif(NOT CMAKE_TOOLCHAIN_FILE)
64 set(CPU ${CMAKE_SYSTEM_PROCESSOR})
65endif()
66
67if(CMAKE_TOOLCHAIN_FILE)
68 if(NOT EXISTS "${CMAKE_TOOLCHAIN_FILE}")
69 message(FATAL_ERROR "Toolchain file ${CMAKE_TOOLCHAIN_FILE} does not exist.")
70 elseif(NOT DEPENDS_PATH OR NOT NATIVEPREFIX)
71 message(FATAL_ERROR "Toolchain did not define DEPENDS_PATH or NATIVEPREFIX. Possibly outdated depends.")
72 endif()
73endif()
74
75# While CMAKE_CROSSCOMPILING is set unconditionally if there's a toolchain file,
76# this variable is set if we can execute build artefacts on the host system (for example unit tests).
77if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR AND
78 CMAKE_HOST_SYSTEM_NAME STREQUAL CMAKE_SYSTEM_NAME)
79 set(CORE_HOST_IS_TARGET TRUE)
80else()
81 set(CORE_HOST_IS_TARGET FALSE)
82endif()
83
84# Main cpp
85set(CORE_MAIN_SOURCE ${CORE_SOURCE_DIR}/xbmc/platform/posix/main.cpp)
86
87# system specific arch setup
88if(NOT EXISTS ${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/ArchSetup.cmake)
89 message(FATAL_ERROR "Couldn't find configuration for '${CORE_SYSTEM_NAME}' "
90 "Either the platform is not (yet) supported "
91 "or a toolchain file has to be specified. "
92 "Consult ${CMAKE_SOURCE_DIR}/README.md for instructions. "
93 "Note: Specifying a toolchain requires a clean build directory!")
94endif()
95include(${PROJECT_SOURCE_DIR}/scripts/${CORE_SYSTEM_NAME}/ArchSetup.cmake)
96
97message(STATUS "Core system type: ${CORE_SYSTEM_NAME}")
98message(STATUS "Platform: ${PLATFORM}")
99message(STATUS "CPU: ${CPU}, ARCH: ${ARCH}")
100message(STATUS "Cross-Compiling: ${CMAKE_CROSSCOMPILING}")
101message(STATUS "Execute build artefacts on host: ${CORE_HOST_IS_TARGET}")
102
103check_type(string std::u16string HAVE_STD__U16_STRING)
104check_type(string std::u32string HAVE_STD__U32_STRING)
105check_type(string char16_t HAVE_CHAR16_T)
106check_type(string char32_t HAVE_CHAR32_T)
107check_type(stdint.h uint_least16_t HAVE_STDINT_H)
108check_symbol_exists(posix_fadvise fcntl.h HAVE_POSIX_FADVISE)
109check_symbol_exists(PRIdMAX inttypes.h HAVE_INTTYPES_H)
110check_builtin("long* temp=0; long ret=__sync_add_and_fetch(temp, 1)" HAS_BUILTIN_SYNC_ADD_AND_FETCH)
111check_builtin("long* temp=0; long ret=__sync_sub_and_fetch(temp, 1)" HAS_BUILTIN_SYNC_SUB_AND_FETCH)
112check_builtin("long* temp=0; long ret=__sync_val_compare_and_swap(temp, 1, 1)" HAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP)
113check_include_file(sys/inotify.h HAVE_INOTIFY)
114if(HAVE_INOTIFY)
115 list(APPEND SYSTEM_DEFINES -DHAVE_INOTIFY=1)
116endif()
117if(HAVE_POSIX_FADVISE)
118 list(APPEND SYSTEM_DEFINES -DHAVE_POSIX_FADVISE=1)
119endif()
120check_function_exists(localtime_r HAVE_LOCALTIME_R)
121if(HAVE_LOCALTIME_R)
122 list(APPEND SYSTEM_DEFINES -DHAVE_LOCALTIME_R=1)
123endif()
124if(HAVE_INTTYPES_H)
125 list(APPEND SYSTEM_DEFINES -DHAVE_INTTYPES_H=1)
126endif()
127
128find_package(SSE)
129foreach(_sse SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2)
130 if(${${_sse}_FOUND})
131 # enable SSE versions up to 4.1 by default, if available
132 if(NOT ${_sse} MATCHES "AVX" AND NOT ${_sse} STREQUAL "SSE4_2")
133 option(ENABLE_${_sse} "Enable ${_sse}" ON)
134 else()
135 option(ENABLE_${_sse} "Enable ${_sse}" OFF)
136 endif()
137 endif()
138 if(ENABLE_${_sse})
139 set(HAVE_${_sse} TRUE CACHE STRING "${_sse} enabled")
140 list(APPEND ARCH_DEFINES -DHAVE_${_sse}=1)
141 endif()
142endforeach()
143
144if(NOT DEFINED NEON OR NEON)
145 option(ENABLE_NEON "Enable NEON optimization" ${NEON})
146 if(ENABLE_NEON)
147 message(STATUS "NEON optimization enabled")
148 add_options(CXX ALL_BUILDS "-mfpu=neon -mvectorize-with-neon-quad")
149 endif()
150endif()
151
152if(CMAKE_BUILD_TYPE STREQUAL "Debug")
153 add_options (ALL_LANGUAGES DEBUG "-g" "-D_DEBUG" "-Wall")
154endif()
155
diff --git a/project/cmake/scripts/common/CMakeHelpers.cmake b/project/cmake/scripts/common/CMakeHelpers.cmake
deleted file mode 100644
index 995c38a..0000000
--- a/project/cmake/scripts/common/CMakeHelpers.cmake
+++ /dev/null
@@ -1,54 +0,0 @@
1# This file contains functions that support the debugging of the CMake files.
2
3# This file shouldn't be included per default in any CMake file. It should be
4# included and used only on demand. All functions are prefixed with "debug_".
5#
6# Usage:
7# include(scripts/common/CMakeHelpers.cmake)
8# debug_print_variables()
9
10# Print all CMake variables.
11macro(debug_print_variables)
12 get_cmake_property(_variableNames VARIABLES)
13 foreach(_variableName ${_variableNames})
14 message(STATUS "${_variableName} = ${${_variableName}}")
15 endforeach()
16endmacro()
17
18# Get all properties that CMake supports and convert them to a list.
19function(debug_get_properties VAR)
20 execute_process(COMMAND cmake --help-property-list
21 OUTPUT_VARIABLE _properties)
22 string(REGEX REPLACE ";" "\\\\;" _properties "${_properties}")
23 string(REGEX REPLACE "\n" ";" _properties "${_properties}")
24 list(REMOVE_DUPLICATES _properties)
25 list(REMOVE_ITEM _properties LOCATION)
26 set(${VAR} ${_properties} PARENT_SCOPE)
27endfunction()
28
29# List all properties.
30function(debug_list_properties)
31 debug_get_properties(_properties)
32 message("CMake properties = ${_properties}")
33endfunction()
34
35# Print all set properties of a specified target.
36function(debug_print_target_properties target)
37 if(NOT TARGET ${target})
38 message(FATAL_ERROR "There is no target named '${target}'")
39 endif()
40
41 debug_get_properties(_properties)
42
43 # Reading LOCATION property is deprecated and triggers a fatal error.
44 string(REGEX REPLACE ";LOCATION;|LOCATION" "" _properties "${_properties}")
45 string(REGEX REPLACE "<CONFIG>" "${CMAKE_BUILD_TYPE}" _properties
46 "${_properties}")
47 foreach(_property ${_properties})
48 get_property(_value TARGET ${target} PROPERTY ${_property} SET)
49 if(_value)
50 get_target_property(_value ${target} ${_property})
51 message("${target} ${_property} = ${_value}")
52 endif()
53 endforeach()
54endfunction()
diff --git a/project/cmake/scripts/common/CheckCommits.cmake b/project/cmake/scripts/common/CheckCommits.cmake
deleted file mode 100644
index 304e623..0000000
--- a/project/cmake/scripts/common/CheckCommits.cmake
+++ /dev/null
@@ -1,75 +0,0 @@
1find_package(Git REQUIRED)
2
3macro(sanity_check message)
4 if(status_code)
5 message(FATAL_ERROR "${message}")
6 endif()
7endmacro()
8
9# Check that there are no changes in working-tree
10execute_process(COMMAND ${GIT_EXECUTABLE} diff --quiet
11 RESULT_VARIABLE status_code)
12sanity_check("Cannot run with working tree changes. Commit, stash or drop them.")
13
14# Setup base of tests
15set(check_base $ENV{CHECK_BASE})
16if(NOT check_base)
17 set(check_base origin/master)
18endif()
19
20# Setup end of tests
21set(check_head $ENV{CHECK_HEAD})
22if(NOT check_head)
23 set(check_head HEAD)
24endif()
25
26# Setup target to build
27set(check_target $ENV{CHECK_TARGET})
28if(NOT check_target)
29 set(check_target check)
30endif()
31
32# Build threads
33set(build_threads $ENV{CHECK_THREADS})
34if(NOT build_threads)
35 if(UNIX)
36 execute_process(COMMAND nproc
37 OUTPUT_VARIABLE build_threads)
38 string(REGEX REPLACE "(\r?\n)+$" "" build_threads "${build_threads}")
39 endif()
40endif()
41
42# Record current HEAD
43execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
44 OUTPUT_VARIABLE current_branch)
45
46string(REGEX REPLACE "(\r?\n)+$" "" current_branch "${current_branch}")
47
48# Grab revision list
49execute_process(COMMAND ${GIT_EXECUTABLE} rev-list ${check_base}..${check_head} --reverse
50 OUTPUT_VARIABLE rev_list)
51
52string(REPLACE "\n" ";" rev_list ${rev_list})
53foreach(rev ${rev_list})
54 # Checkout
55 message("Testing revision ${rev}")
56 execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${rev}
57 RESULT_VARIABLE status_code)
58 sanity_check("Failed to checkout ${rev}")
59
60 # Build
61 if(build_threads GREATER 2)
62 execute_process(COMMAND ${CMAKE_COMMAND} "--build" "${CMAKE_BINARY_DIR}" "--target" "${check_target}" "--use-stderr" "--" "-j${build_threads}"
63 RESULT_VARIABLE status_code)
64 else()
65 execute_process(COMMAND ${CMAKE_COMMAND} "--build" "${CMAKE_BINARY_DIR}" "--target" "${check_target}" "--use-stderr"
66 RESULT_VARIABLE status_code)
67 endif()
68 if(status_code)
69 execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_branch})
70 endif()
71 sanity_check("Failed to build target for revision ${rev}")
72endforeach()
73
74message("Everything checks out fine")
75execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${current_branch})
diff --git a/project/cmake/scripts/common/CheckTargetPlatform.cmake b/project/cmake/scripts/common/CheckTargetPlatform.cmake
deleted file mode 100644
index 82ee668..0000000
--- a/project/cmake/scripts/common/CheckTargetPlatform.cmake
+++ /dev/null
@@ -1,67 +0,0 @@
1# handle target platforms
2function(check_target_platform dir target_platform build)
3 # param[in] dir path/directory of the addon/dependency
4 # param[in] target_platform target platform of the build
5 # param[out] build Result whether the addon/dependency should be built for the specified target platform
6
7 set(${build} FALSE)
8 # check if the given directory exists and contains a platforms.txt
9 if(EXISTS ${dir} AND EXISTS ${dir}/platforms.txt)
10 # get all the specified platforms
11 file(STRINGS ${dir}/platforms.txt platforms)
12
13 list( LENGTH platforms listlen )
14 if(${listlen} EQUAL 1)
15 string(REPLACE " " ";" platforms ${platforms})
16 endif()
17
18 # check if the addon/dependency should be built for the current platform
19 foreach(platform ${platforms})
20 if(${platform} STREQUAL "all" OR ${platform} STREQUAL ${target_platform})
21 set(${build} TRUE)
22 else()
23 # check if the platform is defined as "!<platform>"
24 string(SUBSTRING ${platform} 0 1 platform_first)
25 if(${platform_first} STREQUAL "!")
26 # extract the platform
27 string(LENGTH ${platform} platform_length)
28 math(EXPR platform_length "${platform_length} - 1")
29 string(SUBSTRING ${platform} 1 ${platform_length} platform)
30
31 # check if the current platform does not match the extracted platform
32 if(NOT ${platform} STREQUAL ${target_platform})
33 set(${build} TRUE)
34 endif()
35 endif()
36 endif()
37 endforeach()
38 else()
39 set(${build} TRUE)
40 endif()
41
42 # make the ${build} variable available to the calling script
43 set(${build} "${${build}}" PARENT_SCOPE)
44endfunction()
45
46function(check_install_permissions install_dir have_perms)
47 # param[in] install_dir directory to check for write permissions
48 # param[out] have_perms wether we have permissions to install to install_dir
49
50 set(testfile_lib ${install_dir}/lib/kodi/.cmake-inst-test)
51 set(testfile_share ${install_dir}/share/kodi/.cmake-inst-test)
52 get_filename_component(testdir_lib ${testfile_lib} DIRECTORY)
53 get_filename_component(testdir_share ${testfile_share} DIRECTORY)
54
55 execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${testdir_lib})
56 execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${testdir_share})
57 execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${testfile_lib})
58 execute_process(COMMAND ${CMAKE_COMMAND} -E touch ${testfile_share})
59
60 if(EXISTS ${testfile_lib} AND EXISTS ${testfile_share})
61 set(${have_perms} True PARENT_SCOPE)
62 else()
63 message(STATUS "check_install_permissions ${install_dir}: failed to create files")
64 set(${have_perms} False PARENT_SCOPE)
65 endif()
66 file(REMOVE ${testfile_lib} ${testfile_share})
67endfunction()
diff --git a/project/cmake/scripts/common/GenerateVersionedFiles.cmake b/project/cmake/scripts/common/GenerateVersionedFiles.cmake
deleted file mode 100644
index e105b27..0000000
--- a/project/cmake/scripts/common/GenerateVersionedFiles.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
1include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/Macros.cmake)
2
3core_find_versions()
4file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/addons/xbmc.addon)
5file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/addons/kodi.guilib)
6
7# configure_file without dependency tracking
8# configure_file would register additional file dependencies that interfere
9# with the ones from add_custom_command (and the generation would happen twice)
10function(generate_versioned_file _SRC _DEST)
11 file(READ ${CORE_SOURCE_DIR}/${_SRC} file_content)
12 string(CONFIGURE "${file_content}" file_content @ONLY)
13 file(WRITE ${CMAKE_BINARY_DIR}/${_DEST} "${file_content}")
14endfunction()
15
16generate_versioned_file(addons/xbmc.addon/addon.xml.in addons/xbmc.addon/addon.xml)
17generate_versioned_file(addons/kodi.guilib/addon.xml.in addons/kodi.guilib/addon.xml)
18generate_versioned_file(xbmc/CompileInfo.cpp.in ${CORE_BUILD_DIR}/xbmc/CompileInfo.cpp)
diff --git a/project/cmake/scripts/common/GeneratorSetup.cmake b/project/cmake/scripts/common/GeneratorSetup.cmake
deleted file mode 100644
index 304b504..0000000
--- a/project/cmake/scripts/common/GeneratorSetup.cmake
+++ /dev/null
@@ -1,49 +0,0 @@
1# Configure single-/multiconfiguration generators and variables
2#
3# CORE_BUILD_CONFIG that is set to
4# - CMAKE_BUILD_TYPE for single configuration generators such as make, nmake
5# - a variable that expands on build time to the current configuration for
6# multi configuration generators such as VS or Xcode
7if(CMAKE_CONFIGURATION_TYPES)
8 if(CMAKE_BUILD_TYPE)
9 message(FATAL_ERROR "CMAKE_BUILD_TYPE must not be defined for multi-configuration generators")
10 endif()
11 set(CORE_BUILD_CONFIG ${CMAKE_CFG_INTDIR})
12 message(STATUS "Generator: Multi-configuration (${CMAKE_GENERATOR})")
13else()
14 if(CMAKE_BUILD_TYPE)
15 set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}
16 CACHE STRING "Choose build type (${CMAKE_BUILD_TYPES})" FORCE)
17 else()
18 # Set default
19 set(CMAKE_BUILD_TYPE Release
20 CACHE STRING "Choose build type (${CMAKE_BUILD_TYPES})" FORCE)
21 endif()
22 set(CORE_BUILD_CONFIG ${CMAKE_BUILD_TYPE})
23 message(STATUS "Generator: Single-configuration: ${CMAKE_BUILD_TYPE} (${CMAKE_GENERATOR})")
24endif()
25
26# Print CMake version
27message(STATUS "CMake Version: ${CMAKE_VERSION}")
28
29# Deal with CMake special cases
30if(CMAKE_VERSION VERSION_EQUAL 3.5.1)
31 message(WARNING "CMake 3.5.1 introduced a crash during configuration. "
32 "Please consider upgrading to 3.5.2 (cmake.org/Bug/view.php?id=16044)")
33endif()
34
35# Darwin needs CMake 3.4
36if(APPLE AND CMAKE_VERSION VERSION_LESS 3.4)
37 message(WARNING "Build on Darwin requires CMake 3.4 or later (tdb library support) "
38 "or the usage of the patched version in depends.")
39endif()
40
41# Windows needs CMake 3.6 (VS_STARTUP_PROJECT)
42if(WIN32 AND CMAKE_VERSION VERSION_LESS 3.6)
43 message(FATAL_ERROR "Build on Windows needs CMake 3.6 or later")
44endif()
45
46# Ninja needs CMake 3.2 due to ExternalProject BUILD_BYPRODUCTS usage
47if(CMAKE_GENERATOR STREQUAL Ninja AND CMAKE_VERSION VERSION_LESS 3.2)
48 message(FATAL_ERROR "Generator: Ninja requires CMake 3.2 or later")
49endif()
diff --git a/project/cmake/scripts/common/HandleDepends.cmake b/project/cmake/scripts/common/HandleDepends.cmake
deleted file mode 100644
index adc105b..0000000
--- a/project/cmake/scripts/common/HandleDepends.cmake
+++ /dev/null
@@ -1,252 +0,0 @@
1include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckTargetPlatform.cmake)
2
3# handle addon depends
4function(add_addon_depends addon searchpath)
5 # input: string addon string searchpath
6
7 set(OUTPUT_DIR ${ADDON_DEPENDS_PATH})
8 # look for platform-specific dependencies
9 file(GLOB_RECURSE cmake_input_files ${searchpath}/${CORE_SYSTEM_NAME}/*.txt)
10 file(GLOB_RECURSE cmake_input_files2 ${searchpath}/common/*.txt)
11 list(APPEND cmake_input_files ${cmake_input_files2})
12
13 foreach(file ${cmake_input_files})
14 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${file})
15 if(NOT (file MATCHES CMakeLists.txt OR
16 file MATCHES install.txt OR
17 file MATCHES noinstall.txt OR
18 file MATCHES flags.txt OR
19 file MATCHES deps.txt OR
20 file MATCHES "[a-z]+-deps[.]txt" OR
21 file MATCHES platforms.txt))
22 message(STATUS "Processing ${file}")
23 file(STRINGS ${file} def)
24 string(REPLACE " " ";" def ${def})
25 list(LENGTH def deflength)
26 get_filename_component(dir ${file} DIRECTORY)
27
28 # get the id of the dependency
29 if(NOT "${def}" STREQUAL "")
30 # read the id from the file
31 list(GET def 0 id)
32 else()
33 # read the id from the filename
34 get_filename_component(id ${file} NAME_WE)
35 endif()
36
37 # check if the dependency has a platforms.txt
38 set(platform_found FALSE)
39 check_target_platform(${dir} ${CORE_SYSTEM_NAME} platform_found)
40
41 if(${platform_found} AND NOT TARGET ${id})
42 # determine the download URL of the dependency
43 set(url "")
44 if(deflength GREATER 1)
45 list(GET def 1 url)
46 message(STATUS "${id} url: ${url}")
47 endif()
48
49 # check if there are any library specific flags that need to be passed on
50 if(EXISTS ${dir}/flags.txt)
51 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${dir}/flags.txt)
52 file(STRINGS ${dir}/flags.txt extraflags)
53
54 # replace some custom placeholders
55 string(REPLACE "@MINGW_TOOLCHAIN_FILE@" "${OUTPUT_DIR}/Toolchain_mingw32.cmake" extraflags "${extraflags}")
56 string(REPLACE " " ";" extraflags ${extraflags})
57
58 message(STATUS "${id} extraflags: ${extraflags}")
59 endif()
60
61 set(BUILD_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}
62 -DOUTPUT_DIR=${OUTPUT_DIR}
63 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
64 -DCMAKE_USER_MAKE_RULES_OVERRIDE=${CMAKE_USER_MAKE_RULES_OVERRIDE}
65 -DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_USER_MAKE_RULES_OVERRIDE_CXX}
66 -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR}
67 -DCORE_SYSTEM_NAME=${CORE_SYSTEM_NAME}
68 -DENABLE_STATIC=1
69 -DBUILD_SHARED_LIBS=0)
70 # if there are no make rules override files available take care of manually passing on ARCH_DEFINES
71 if(NOT CMAKE_USER_MAKE_RULES_OVERRIDE AND NOT CMAKE_USER_MAKE_RULES_OVERRIDE_CXX)
72 # make sure we create strings, not lists
73 set(TMP_C_FLAGS "${CMAKE_C_FLAGS} ${ARCH_DEFINES}")
74 set(TMP_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ARCH_DEFINES}")
75 list(APPEND BUILD_ARGS -DCMAKE_C_FLAGS=${TMP_C_FLAGS}
76 -DCMAKE_CXX_FLAGS=${TMP_CXX_FLAGS})
77 endif()
78
79 if(CMAKE_TOOLCHAIN_FILE)
80 list(APPEND BUILD_ARGS -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
81 message("toolchain specified")
82 message(${BUILD_ARGS})
83 endif()
84
85 # prepare patchfile. ensure we have a clean file after reconfiguring
86 set(PATCH_FILE ${BUILD_DIR}/${id}/tmp/patch.cmake)
87 file(REMOVE ${PATCH_FILE})
88
89 # if there's a CMakeLists.txt use it to prepare the build
90 if(EXISTS ${dir}/CMakeLists.txt)
91 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${dir}/CMakeLists.txt)
92 file(APPEND ${PATCH_FILE}
93 "file(COPY ${dir}/CMakeLists.txt
94 DESTINATION ${BUILD_DIR}/${id}/src/${id})\n")
95 endif()
96
97 # check if we have patches to apply
98 file(GLOB patches ${dir}/*.patch)
99 list(SORT patches)
100 foreach(patch ${patches})
101 if(NOT PATCH_PROGRAM OR "${PATCH_PROGRAM}" STREQUAL "")
102 if(NOT PATCH_EXECUTABLE)
103 # find the path to the patch executable
104 find_program(PATCH_EXECUTABLE NAMES patch)
105
106 if(NOT PATCH_EXECUTABLE)
107 message(FATAL_ERROR "Missing patch command (we looked in ${CMAKE_PREFIX_PATH})")
108 endif()
109 endif()
110
111 set(PATCH_PROGRAM ${PATCH_EXECUTABLE})
112
113 # On Windows "patch.exe" can only handle CR-LF line-endings.
114 # Our patches have LF-only line endings - except when they
115 # have been checked out as part of a dependency hosted on Git
116 # and core.autocrlf=true.
117 if(WIN32)
118 file(READ ${patch} patch_content_hex HEX)
119 # Force handle LF-only line endings
120 if(NOT patch_content_hex MATCHES "0d0a")
121 set(PATCH_PROGRAM "\"${PATCH_PROGRAM}\" --binary")
122 endif()
123 endif()
124 endif()
125
126 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${patch})
127 file(APPEND ${PATCH_FILE}
128 "execute_process(COMMAND ${PATCH_PROGRAM} -p1 -i \"${patch}\")\n")
129 endforeach()
130
131
132 # if there's an install.txt use it to properly install the built files
133 set(INSTALL_COMMAND "")
134 if(EXISTS ${dir}/install.txt)
135 set(INSTALL_COMMAND INSTALL_COMMAND ${CMAKE_COMMAND}
136 -DINPUTDIR=${BUILD_DIR}/${id}/src/${id}-build/
137 -DINPUTFILE=${dir}/install.txt
138 -DDESTDIR=${OUTPUT_DIR}
139 -DENABLE_STATIC=1
140 "${extraflags}"
141 -P ${PROJECT_SOURCE_DIR}/install.cmake)
142 elseif(EXISTS ${dir}/noinstall.txt)
143 set(INSTALL_COMMAND INSTALL_COMMAND "")
144 endif()
145
146 # check if there's a platform-specific or generic deps.txt containing dependencies on other libraries
147 if(EXISTS ${dir}/${CORE_SYSTEM_NAME}-deps.txt)
148 file(STRINGS ${dir}/${CORE_SYSTEM_NAME}-deps.txt deps)
149 message(STATUS "${id} depends: ${deps}")
150 elseif(EXISTS ${dir}/deps.txt)
151 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${dir}/deps.txt)
152 file(STRINGS ${dir}/deps.txt deps)
153 message(STATUS "${id} depends: ${deps}")
154 else()
155 set(deps)
156 endif()
157
158 if(CROSS_AUTOCONF AND AUTOCONF_FILES)
159 foreach(afile ${AUTOCONF_FILES})
160 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${afile})
161 file(APPEND ${PATCH_FILE}
162 "message(STATUS \"AUTOCONF: copying ${afile} to ${BUILD_DIR}/${id}/src/${id}\")\n
163 file(COPY ${afile} DESTINATION ${BUILD_DIR}/${id}/src/${id})\n")
164 endforeach()
165 endif()
166
167 # if the patch file exists we need to set the PATCH_COMMAND
168 set(PATCH_COMMAND "")
169 if(EXISTS ${PATCH_FILE})
170 set(PATCH_COMMAND ${CMAKE_COMMAND} -P ${PATCH_FILE})
171 endif()
172
173 # prepare the setup of the call to externalproject_add()
174 set(EXTERNALPROJECT_SETUP PREFIX ${BUILD_DIR}/${id}
175 CMAKE_ARGS ${extraflags} ${BUILD_ARGS}
176 PATCH_COMMAND ${PATCH_COMMAND}
177 "${INSTALL_COMMAND}")
178
179 if(CMAKE_VERSION VERSION_GREATER 3.5.9)
180 list(APPEND EXTERNALPROJECT_SETUP GIT_SHALLOW 1)
181 endif()
182
183 # if there's an url defined we need to pass that to externalproject_add()
184 if(DEFINED url AND NOT "${url}" STREQUAL "")
185 # check if there's a third parameter in the file
186 if(deflength GREATER 2)
187 # the third parameter is considered as a revision of a git repository
188 list(GET def 2 revision)
189
190 externalproject_add(${id}
191 GIT_REPOSITORY ${url}
192 GIT_TAG ${revision}
193 "${EXTERNALPROJECT_SETUP}")
194
195 # For patchfiles to work, disable (users globally set) autocrlf=true
196 if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_GREATER 3.7)
197 message(AUTHOR_WARNING "Make use of GIT_CONFIG")
198 endif()
199 if(WIN32 AND patches)
200 externalproject_add_step(${id} gitconfig
201 COMMAND git config core.autocrlf false
202 COMMAND git rm -rf --cached .
203 COMMAND git reset --hard HEAD
204 COMMENT "Performing gitconfig step: Disabling autocrlf to enable patching for '${id}'"
205 DEPENDERS patch
206 WORKING_DIRECTORY <SOURCE_DIR>)
207 endif()
208 else()
209 set(CONFIGURE_COMMAND "")
210 if(NOT WIN32)
211 # manually specify the configure command to be able to pass in the custom PKG_CONFIG_PATH
212 set(CONFIGURE_COMMAND PKG_CONFIG_PATH=${OUTPUT_DIR}/lib/pkgconfig
213 ${CMAKE_COMMAND} -DCMAKE_LIBRARY_PATH=${OUTPUT_DIR}/lib ${extraflags} ${BUILD_ARGS}
214 ${BUILD_DIR}/${id}/src/${id}
215 -DPACKAGE_CONFIG_PATH=${OUTPUT_DIR}/lib/pkgconfig
216 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
217 -DOUTPUT_DIR=${OUTPUT_DIR}
218 -DCMAKE_PREFIX_PATH=${OUTPUT_DIR}
219 -DCMAKE_INSTALL_PREFIX=${OUTPUT_DIR}
220 -DCMAKE_EXE_LINKER_FLAGS=-L${OUTPUT_DIR}/lib
221 -DCMAKE_INCLUDE_PATH=${OUTPUT_DIR}/include)
222 endif()
223
224 externalproject_add(${id}
225 URL ${url}
226 DOWNLOAD_DIR ${BUILD_DIR}/download
227 CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
228 "${EXTERNALPROJECT_SETUP}")
229 endif()
230 else()
231 externalproject_add(${id}
232 SOURCE_DIR ${dir}
233 "${EXTERNALPROJECT_SETUP}")
234 endif()
235
236 if(deps)
237 add_dependencies(${id} ${deps})
238 endif()
239 endif()
240
241 # if the dependency is available for the target platform add it to the list of the addon's dependencies
242 # (even if the target already exists as it still has to be built before the addon)
243 if(${platform_found})
244 list(APPEND ${addon}_DEPS ${id})
245 endif()
246 endif()
247 endforeach()
248
249 # make the ${addon}_DEPS variable available to the calling script
250 set(${addon}_DEPS "${${addon}_DEPS}" PARENT_SCOPE)
251endfunction()
252
diff --git a/project/cmake/scripts/common/Macros.cmake b/project/cmake/scripts/common/Macros.cmake
deleted file mode 100644
index cce3245..0000000
--- a/project/cmake/scripts/common/Macros.cmake
+++ /dev/null
@@ -1,622 +0,0 @@
1# This script holds the main functions used to construct the build system
2
3# include system specific macros
4include(${CORE_SOURCE_DIR}/project/cmake/scripts/${CORE_SYSTEM_NAME}/Macros.cmake)
5
6# IDEs: Group source files in target in folders (file system hierarchy)
7# Source: http://blog.audio-tk.com/2015/09/01/sorting-source-files-and-projects-in-folders-with-cmake-and-visual-studioxcode/
8# Arguments:
9# target The target that shall be grouped by folders.
10# Optional Arguments:
11# RELATIVE allows to specify a different reference folder.
12function(source_group_by_folder target)
13 if(NOT TARGET ${target})
14 message(FATAL_ERROR "There is no target named '${target}'")
15 endif()
16
17 set(SOURCE_GROUP_DELIMITER "/")
18
19 cmake_parse_arguments(arg "" "RELATIVE" "" ${ARGN})
20 if(arg_RELATIVE)
21 set(relative_dir ${arg_RELATIVE})
22 else()
23 set(relative_dir ${CMAKE_CURRENT_SOURCE_DIR})
24 endif()
25
26 get_property(files TARGET ${target} PROPERTY SOURCES)
27 if(files)
28 list(SORT files)
29
30 if(CMAKE_GENERATOR STREQUAL Xcode)
31 set_target_properties(${target} PROPERTIES SOURCES "${files}")
32 endif()
33 endif()
34 foreach(file ${files})
35 if(NOT IS_ABSOLUTE ${file})
36 set(file ${CMAKE_CURRENT_SOURCE_DIR}/${file})
37 endif()
38 file(RELATIVE_PATH relative_file ${relative_dir} ${file})
39 get_filename_component(dir "${relative_file}" DIRECTORY)
40 if(NOT dir STREQUAL "${last_dir}")
41 if(files)
42 source_group("${last_dir}" FILES ${files})
43 endif()
44 set(files "")
45 endif()
46 set(files ${files} ${file})
47 set(last_dir "${dir}")
48 endforeach(file)
49 if(files)
50 source_group("${last_dir}" FILES ${files})
51 endif()
52endfunction()
53
54# Add sources to main application
55# Arguments:
56# name name of the library to add
57# Implicit arguments:
58# ENABLE_STATIC_LIBS Build static libraries per directory
59# SOURCES the sources of the library
60# HEADERS the headers of the library (only for IDE support)
61# OTHERS other library related files (only for IDE support)
62# On return:
63# Library will be built, optionally added to ${core_DEPENDS}
64# Sets CORE_LIBRARY for calls for setting target specific options
65function(core_add_library name)
66 if(ENABLE_STATIC_LIBS)
67 add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS})
68 set_target_properties(${name} PROPERTIES PREFIX "")
69 set(core_DEPENDS ${name} ${core_DEPENDS} CACHE STRING "" FORCE)
70 add_dependencies(${name} libcpluff ffmpeg dvdnav crossguid)
71 set(CORE_LIBRARY ${name} PARENT_SCOPE)
72
73 # Add precompiled headers to Kodi main libraries
74 if(CORE_SYSTEM_NAME STREQUAL windows)
75 add_precompiled_header(${name} pch.h ${CORE_SOURCE_DIR}/xbmc/platform/win32/pch.cpp PCH_TARGET kodi)
76 set_language_cxx(${name})
77 target_link_libraries(${name} PUBLIC effects11)
78 endif()
79 else()
80 foreach(src IN LISTS SOURCES HEADERS OTHERS)
81 get_filename_component(src_path "${src}" ABSOLUTE)
82 list(APPEND FILES ${src_path})
83 endforeach()
84 target_sources(lib${APP_NAME_LC} PRIVATE ${FILES})
85 set(CORE_LIBRARY lib${APP_NAME_LC} PARENT_SCOPE)
86 endif()
87endfunction()
88
89# Add a test library, and add sources to list for gtest integration macros
90function(core_add_test_library name)
91 if(ENABLE_STATIC_LIBS)
92 add_library(${name} STATIC ${SOURCES} ${SUPPORTED_SOURCES} ${HEADERS} ${OTHERS})
93 set_target_properties(${name} PROPERTIES PREFIX ""
94 EXCLUDE_FROM_ALL 1
95 FOLDER "Build Utilities/tests")
96 add_dependencies(${name} libcpluff ffmpeg dvdnav crossguid)
97 set(test_archives ${test_archives} ${name} CACHE STRING "" FORCE)
98 endif()
99 foreach(src IN LISTS SOURCES)
100 get_filename_component(src_path "${src}" ABSOLUTE)
101 set(test_sources "${src_path}" ${test_sources} CACHE STRING "" FORCE)
102 endforeach()
103endfunction()
104
105# Add an addon callback library
106# Arguments:
107# name name of the library to add
108# Implicit arguments:
109# SOURCES the sources of the library
110# HEADERS the headers of the library (only for IDE support)
111# OTHERS other library related files (only for IDE support)
112# On return:
113# Library target is defined and added to LIBRARY_FILES
114function(core_add_addon_library name)
115 get_filename_component(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} NAME)
116 list(APPEND SOURCES lib${name}.cpp)
117 core_add_shared_library(${name} OUTPUT_DIRECTORY addons/${DIRECTORY})
118 set_target_properties(${name} PROPERTIES FOLDER addons)
119 target_include_directories(${name} PRIVATE
120 ${CMAKE_CURRENT_SOURCE_DIR}
121 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi
122 ${CORE_SOURCE_DIR}/xbmc)
123endfunction()
124
125# Add an dl-loaded shared library
126# Arguments:
127# name name of the library to add
128# Optional arguments:
129# WRAPPED wrap this library on POSIX platforms to add VFS support for
130# libraries that would otherwise not support it.
131# OUTPUT_DIRECTORY where to create the library in the build dir
132# (default: system)
133# Implicit arguments:
134# SOURCES the sources of the library
135# HEADERS the headers of the library (only for IDE support)
136# OTHERS other library related files (only for IDE support)
137# On return:
138# Library target is defined and added to LIBRARY_FILES
139function(core_add_shared_library name)
140 cmake_parse_arguments(arg "WRAPPED" "OUTPUT_DIRECTORY" "" ${ARGN})
141 if(arg_OUTPUT_DIRECTORY)
142 set(OUTPUT_DIRECTORY ${arg_OUTPUT_DIRECTORY})
143 else()
144 if(NOT CORE_SYSTEM_NAME STREQUAL windows)
145 set(OUTPUT_DIRECTORY system)
146 endif()
147 endif()
148 if(CORE_SYSTEM_NAME STREQUAL windows)
149 set(OUTPUT_NAME lib${name})
150 else()
151 set(OUTPUT_NAME lib${name}-${ARCH})
152 endif()
153
154 if(NOT arg_WRAPPED OR CORE_SYSTEM_NAME STREQUAL windows)
155 add_library(${name} SHARED ${SOURCES} ${HEADERS} ${OTHERS})
156 set_target_properties(${name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${OUTPUT_DIRECTORY}
157 RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${OUTPUT_DIRECTORY}
158 OUTPUT_NAME ${OUTPUT_NAME} PREFIX "")
159 foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
160 string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
161 set_target_properties(${name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUT_DIRECTORY}
162 RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/${OUTPUT_DIRECTORY})
163 endforeach()
164
165 set(LIBRARY_FILES ${LIBRARY_FILES} ${CMAKE_BINARY_DIR}/${OUTPUT_DIRECTORY}/${OUTPUT_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} CACHE STRING "" FORCE)
166 add_dependencies(${APP_NAME_LC}-libraries ${name})
167 else()
168 add_library(${name} STATIC ${SOURCES} ${HEADERS} ${OTHERS})
169 set_target_properties(${name} PROPERTIES POSITION_INDEPENDENT_CODE 1)
170 core_link_library(${name} ${OUTPUT_DIRECTORY}/lib${name})
171 endif()
172endfunction()
173
174# Sets the compile language for all C source files in a target to CXX.
175# Needs to be called from the CMakeLists.txt that defines the target.
176# Arguments:
177# target target
178function(set_language_cxx target)
179 get_property(sources TARGET ${target} PROPERTY SOURCES)
180 foreach(file IN LISTS sources)
181 if(file MATCHES "\.c$")
182 set_source_files_properties(${file} PROPERTIES LANGUAGE CXX)
183 endif()
184 endforeach()
185endfunction()
186
187# Add a data file to installation list with a mirror in build tree
188# Mirroring files in the buildtree allows to execute the app from there.
189# Arguments:
190# file full path to file to mirror
191# Optional Arguments:
192# NO_INSTALL: exclude file from installation target (only mirror)
193# DIRECTORY: directory where the file should be mirrored to
194# (default: preserve tree structure relative to CORE_SOURCE_DIR)
195# On return:
196# Files is mirrored to the build tree and added to ${install_data}
197# (if NO_INSTALL is not given).
198function(copy_file_to_buildtree file)
199 cmake_parse_arguments(arg "NO_INSTALL" "DIRECTORY" "" ${ARGN})
200 if(arg_DIRECTORY)
201 set(outdir ${arg_DIRECTORY})
202 get_filename_component(outfile ${file} NAME)
203 set(outfile ${outdir}/${outfile})
204 else()
205 string(REPLACE "${CORE_SOURCE_DIR}/" "" outfile ${file})
206 get_filename_component(outdir ${outfile} DIRECTORY)
207 endif()
208
209 if(NOT TARGET export-files)
210 file(REMOVE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake)
211 add_custom_target(export-files ALL COMMENT "Copying files into build tree"
212 COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake)
213 set_target_properties(export-files PROPERTIES FOLDER "Build Utilities")
214 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake "# Export files to build tree\n")
215 endif()
216
217 # Exclude autotools build artefacts and other blacklisted files in source tree.
218 if(file MATCHES "(Makefile|\.in|\.xbt|\.so|\.dylib|\.gitignore)$")
219 if(VERBOSE)
220 message(STATUS "copy_file_to_buildtree - ignoring file: ${file}")
221 endif()
222 return()
223 endif()
224
225 if(NOT file STREQUAL ${CMAKE_BINARY_DIR}/${outfile})
226 if(VERBOSE)
227 message(STATUS "copy_file_to_buildtree - copying file: ${file} -> ${CMAKE_BINARY_DIR}/${outfile}")
228 endif()
229 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake
230 "file(COPY \"${file}\" DESTINATION \"${CMAKE_BINARY_DIR}/${outdir}\")\n")
231 endif()
232
233 if(NOT arg_NO_INSTALL)
234 list(APPEND install_data ${outfile})
235 set(install_data ${install_data} PARENT_SCOPE)
236 endif()
237endfunction()
238
239# Add data files to installation list with a mirror in build tree.
240# reads list of files to install from a given list of text files.
241# Arguments:
242# pattern globbing pattern for text files to read
243# Optional Arguments:
244# NO_INSTALL: exclude files from installation target
245# Implicit arguments:
246# CORE_SOURCE_DIR - root of source tree
247# On return:
248# Files are mirrored to the build tree and added to ${install_data}
249# (if NO_INSTALL is not given).
250function(copy_files_from_filelist_to_buildtree pattern)
251 # copies files listed in text files to the buildtree
252 # Input: [glob pattern: filepattern]
253 cmake_parse_arguments(arg "NO_INSTALL" "" "" ${ARGN})
254 list(APPEND pattern ${ARGN})
255 list(SORT pattern)
256 if(VERBOSE)
257 message(STATUS "copy_files_from_filelist_to_buildtree - got pattern: ${pattern}")
258 endif()
259 foreach(pat ${pattern})
260 file(GLOB filenames ${pat})
261 foreach(filename ${filenames})
262 string(STRIP ${filename} filename)
263 core_file_read_filtered(fstrings ${filename})
264 foreach(dir ${fstrings})
265 string(REPLACE " " ";" dir ${dir})
266 list(GET dir 0 src)
267 list(LENGTH dir len)
268 if(len EQUAL 1)
269 set(dest)
270 else()
271 list(GET dir -1 dest)
272 endif()
273
274 # If the full path to an existing file is specified then add that single file.
275 # Don't recursively add all files with the given name.
276 if(EXISTS ${CORE_SOURCE_DIR}/${src} AND NOT IS_DIRECTORY ${CORE_SOURCE_DIR}/${src})
277 set(files ${src})
278 else()
279 file(GLOB_RECURSE files RELATIVE ${CORE_SOURCE_DIR} ${CORE_SOURCE_DIR}/${src})
280 endif()
281
282 foreach(file ${files})
283 if(arg_NO_INSTALL)
284 copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} DIRECTORY ${dest} NO_INSTALL)
285 else()
286 copy_file_to_buildtree(${CORE_SOURCE_DIR}/${file} DIRECTORY ${dest})
287 endif()
288 endforeach()
289 endforeach()
290 endforeach()
291 endforeach()
292 set(install_data ${install_data} PARENT_SCOPE)
293endfunction()
294
295# helper macro to set modified variables in parent scope
296macro(export_dep)
297 set(SYSTEM_INCLUDES ${SYSTEM_INCLUDES} PARENT_SCOPE)
298 set(DEPLIBS ${DEPLIBS} PARENT_SCOPE)
299 set(DEP_DEFINES ${DEP_DEFINES} PARENT_SCOPE)
300 set(${depup}_FOUND ${${depup}_FOUND} PARENT_SCOPE)
301 mark_as_advanced(${depup}_LIBRARIES)
302endmacro()
303
304# add a required dependency of main application
305# Arguments:
306# dep name of find rule for dependency, used uppercased for variable prefix
307# On return:
308# dependency added to ${SYSTEM_INCLUDES}, ${DEPLIBS} and ${DEP_DEFINES}
309function(core_require_dep dep)
310 find_package(${dep} REQUIRED)
311 string(TOUPPER ${dep} depup)
312 list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS})
313 list(APPEND DEPLIBS ${${depup}_LIBRARIES})
314 list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS})
315 export_dep()
316endfunction()
317
318# add a required dyloaded dependency of main application
319# Arguments:
320# dep name of find rule for dependency, used uppercased for variable prefix
321# On return:
322# dependency added to ${SYSTEM_INCLUDES}, ${dep}_SONAME is set up
323function(core_require_dyload_dep dep)
324 find_package(${dep} REQUIRED)
325 string(TOUPPER ${dep} depup)
326 list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS})
327 list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS})
328 find_soname(${depup} REQUIRED)
329 export_dep()
330 set(${depup}_SONAME ${${depup}_SONAME} PARENT_SCOPE)
331endfunction()
332
333# helper macro for optional deps
334macro(setup_enable_switch)
335 string(TOUPPER ${dep} depup)
336 if(ARGV1)
337 set(enable_switch ${ARGV1})
338 else()
339 set(enable_switch ENABLE_${depup})
340 endif()
341 # normal options are boolean, so we override set our ENABLE_FOO var to allow "auto" handling
342 set(${enable_switch} "AUTO" CACHE STRING "Enable ${depup} support?")
343endmacro()
344
345# add an optional dependency of main application
346# Arguments:
347# dep name of find rule for dependency, used uppercased for variable prefix
348# On return:
349# dependency optionally added to ${SYSTEM_INCLUDES}, ${DEPLIBS} and ${DEP_DEFINES}
350function(core_optional_dep dep)
351 setup_enable_switch()
352 if(${enable_switch} STREQUAL AUTO)
353 find_package(${dep})
354 elseif(${${enable_switch}})
355 find_package(${dep} REQUIRED)
356 endif()
357
358 if(${depup}_FOUND)
359 list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS})
360 list(APPEND DEPLIBS ${${depup}_LIBRARIES})
361 list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS})
362 set(final_message ${final_message} "${depup} enabled: Yes" PARENT_SCOPE)
363 export_dep()
364 else()
365 set(final_message ${final_message} "${depup} enabled: No" PARENT_SCOPE)
366 endif()
367endfunction()
368
369# add an optional dyloaded dependency of main application
370# Arguments:
371# dep name of find rule for dependency, used uppercased for variable prefix
372# On return:
373# dependency optionally added to ${SYSTEM_INCLUDES}, ${DEP_DEFINES}, ${dep}_SONAME is set up
374function(core_optional_dyload_dep dep)
375 setup_enable_switch()
376 if(${enable_switch})
377 find_package(${dep})
378 if(${depup}_FOUND)
379 list(APPEND SYSTEM_INCLUDES ${${depup}_INCLUDE_DIRS})
380 find_soname(${depup} REQUIRED)
381 list(APPEND DEP_DEFINES ${${depup}_DEFINITIONS})
382 set(final_message ${final_message} "${depup} enabled: Yes" PARENT_SCOPE)
383 export_dep()
384 set(${depup}_SONAME ${${depup}_SONAME} PARENT_SCOPE)
385 endif()
386 endif()
387endfunction()
388
389function(core_file_read_filtered result filepattern)
390 # Reads STRINGS from text files
391 # with comments filtered out
392 # Result: [list: result]
393 # Input: [glob pattern: filepattern]
394 file(GLOB filenames ${filepattern})
395 list(SORT filenames)
396 foreach(filename ${filenames})
397 if(VERBOSE)
398 message(STATUS "core_file_read_filtered - filename: ${filename}")
399 endif()
400 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${filename})
401 file(STRINGS ${filename} fstrings REGEX "^[^#//]")
402 foreach(fstring ${fstrings})
403 string(REGEX REPLACE "^(.*)#(.*)" "\\1" fstring ${fstring})
404 string(REGEX REPLACE "[ \n\r\t]//.*" "" fstring ${fstring})
405 string(STRIP ${fstring} fstring)
406 list(APPEND filename_strings ${fstring})
407 endforeach()
408 endforeach()
409 set(${result} ${filename_strings} PARENT_SCOPE)
410endfunction()
411
412function(core_add_subdirs_from_filelist files)
413 # Adds subdirectories from a sorted list of files
414 # Input: [list: filenames] [bool: sort]
415 foreach(arg ${ARGN})
416 list(APPEND files ${arg})
417 endforeach()
418 list(SORT files)
419 if(VERBOSE)
420 message(STATUS "core_add_subdirs_from_filelist - got pattern: ${files}")
421 endif()
422 foreach(filename ${files})
423 string(STRIP ${filename} filename)
424 core_file_read_filtered(fstrings ${filename})
425 foreach(subdir ${fstrings})
426 string(REPLACE " " ";" subdir ${subdir})
427 list(GET subdir 0 subdir_src)
428 list(GET subdir -1 subdir_dest)
429 if(VERBOSE)
430 message(STATUS " core_add_subdirs_from_filelist - adding subdir: ${CORE_SOURCE_DIR}/${subdir_src} -> ${CORE_BUILD_DIR}/${subdir_dest}")
431 endif()
432 add_subdirectory(${CORE_SOURCE_DIR}/${subdir_src} ${CORE_BUILD_DIR}/${subdir_dest})
433 endforeach()
434 endforeach()
435endfunction()
436
437macro(core_add_optional_subdirs_from_filelist pattern)
438 # Adds subdirectories from text files
439 # if the option(s) in the 3rd field are enabled
440 # Input: [glob pattern: filepattern]
441 foreach(arg ${ARGN})
442 list(APPEND pattern ${arg})
443 endforeach()
444 foreach(elem ${pattern})
445 string(STRIP ${elem} elem)
446 list(APPEND filepattern ${elem})
447 endforeach()
448
449 file(GLOB filenames ${filepattern})
450 list(SORT filenames)
451 if(VERBOSE)
452 message(STATUS "core_add_optional_subdirs_from_filelist - got pattern: ${filenames}")
453 endif()
454
455 foreach(filename ${filenames})
456 if(VERBOSE)
457 message(STATUS "core_add_optional_subdirs_from_filelist - reading file: ${filename}")
458 endif()
459 set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${filename})
460 file(STRINGS ${filename} fstrings REGEX "^[^#//]")
461 foreach(line ${fstrings})
462 string(REPLACE " " ";" line "${line}")
463 list(GET line 0 subdir_src)
464 list(GET line 1 subdir_dest)
465 list(GET line 3 opts)
466 foreach(opt ${opts})
467 if(ENABLE_${opt})
468 if(VERBOSE)
469 message(STATUS " core_add_optional_subdirs_from_filelist - adding subdir: ${CORE_SOURCE_DIR}/${subdir_src} -> ${CORE_BUILD_DIR}/${subdir_dest}")
470 endif()
471 add_subdirectory(${CORE_SOURCE_DIR}/${subdir_src} ${CORE_BUILD_DIR}/${subdir_dest})
472 else()
473 if(VERBOSE)
474 message(STATUS " core_add_optional_subdirs_from_filelist: OPTION ${opt} not enabled for ${subdir_src}, skipping subdir")
475 endif()
476 endif()
477 endforeach()
478 endforeach()
479 endforeach()
480endmacro()
481
482# Generates an RFC2822 timestamp
483#
484# The following variable is set:
485# RFC2822_TIMESTAMP
486function(rfc2822stamp)
487 execute_process(COMMAND date -R
488 OUTPUT_VARIABLE RESULT)
489 set(RFC2822_TIMESTAMP ${RESULT} PARENT_SCOPE)
490endfunction()
491
492# Generates an user stamp from git config info
493#
494# The following variable is set:
495# PACKAGE_MAINTAINER - user stamp in the form of "username <username@example.com>"
496# if no git tree is found, value is set to "nobody <nobody@example.com>"
497function(userstamp)
498 find_package(Git)
499 if(GIT_FOUND AND EXISTS ${CORE_SOURCE_DIR}/.git)
500 execute_process(COMMAND ${GIT_EXECUTABLE} config user.name
501 OUTPUT_VARIABLE username
502 WORKING_DIRECTORY ${CORE_SOURCE_DIR}
503 OUTPUT_STRIP_TRAILING_WHITESPACE)
504 execute_process(COMMAND ${GIT_EXECUTABLE} config user.email
505 OUTPUT_VARIABLE useremail
506 WORKING_DIRECTORY ${CORE_SOURCE_DIR}
507 OUTPUT_STRIP_TRAILING_WHITESPACE)
508 set(PACKAGE_MAINTAINER "${username} <${useremail}>" PARENT_SCOPE)
509 else()
510 set(PACKAGE_MAINTAINER "nobody <nobody@example.com>" PARENT_SCOPE)
511 endif()
512endfunction()
513
514# Parses git info and sets variables used to identify the build
515# Arguments:
516# stamp variable name to return
517# Optional Arguments:
518# FULL: generate git HEAD commit in the form of 'YYYYMMDD-hash'
519# if git tree is dirty, value is set in the form of 'YYYYMMDD-hash-dirty'
520# if no git tree is found, value is set in the form of 'YYYYMMDD-nogitfound'
521# if FULL is not given, stamp is generated following the same process as above
522# but without 'YYYYMMDD'
523# On return:
524# Variable is set with generated stamp to PARENT_SCOPE
525function(core_find_git_rev stamp)
526 # allow manual setting GIT_VERSION
527 if(GIT_VERSION)
528 set(${stamp} ${GIT_VERSION} PARENT_SCOPE)
529 else()
530 find_package(Git)
531 if(GIT_FOUND AND EXISTS ${CORE_SOURCE_DIR}/.git)
532 execute_process(COMMAND ${GIT_EXECUTABLE} diff-files --ignore-submodules --quiet --
533 RESULT_VARIABLE status_code
534 WORKING_DIRECTORY ${CORE_SOURCE_DIR})
535 if(NOT status_code)
536 execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --ignore-submodules --quiet HEAD --
537 RESULT_VARIABLE status_code
538 WORKING_DIRECTORY ${CORE_SOURCE_DIR})
539 endif()
540 if(status_code)
541 execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h-dirty" HEAD
542 OUTPUT_VARIABLE HASH
543 WORKING_DIRECTORY ${CORE_SOURCE_DIR})
544 string(SUBSTRING ${HASH} 1 13 HASH)
545 else()
546 execute_process(COMMAND ${GIT_EXECUTABLE} log -n 1 --pretty=format:"%h" HEAD
547 OUTPUT_VARIABLE HASH
548 WORKING_DIRECTORY ${CORE_SOURCE_DIR})
549 string(SUBSTRING ${HASH} 1 7 HASH)
550 endif()
551 execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --pretty=format:"%cd" --date=short HEAD
552 OUTPUT_VARIABLE DATE
553 WORKING_DIRECTORY ${CORE_SOURCE_DIR})
554 string(SUBSTRING ${DATE} 1 10 DATE)
555 string(REPLACE "-" "" DATE ${DATE})
556 else()
557 string(TIMESTAMP DATE "%Y%m%d" UTC)
558 set(HASH "nogitfound")
559 endif()
560 cmake_parse_arguments(arg "FULL" "" "" ${ARGN})
561 if(arg_FULL)
562 set(${stamp} ${DATE}-${HASH} PARENT_SCOPE)
563 else()
564 set(${stamp} ${HASH} PARENT_SCOPE)
565 endif()
566 endif()
567endfunction()
568
569# Parses version.txt and libKODI_guilib.h and sets variables
570# used to construct dirs structure, file naming, API version, etc.
571#
572# The following variables are set from version.txt:
573# APP_NAME - app name
574# APP_NAME_LC - lowercased app name
575# APP_NAME_UC - uppercased app name
576# COMPANY_NAME - company name
577# APP_VERSION_MAJOR - the app version major
578# APP_VERSION_MINOR - the app version minor
579# APP_VERSION_TAG - the app version tag
580# APP_VERSION_TAG_LC - lowercased app version tag
581# APP_VERSION - the app version (${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG})
582# APP_ADDON_API - the addon API version in the form of 16.9.702
583# FILE_VERSION - file version in the form of 16,9,702,0 - Windows only
584#
585# The following variables are set from libKODI_guilib.h:
586# guilib_version - current ADDONGUI API version
587# guilib_version_min - minimal ADDONGUI API version
588macro(core_find_versions)
589 include(CMakeParseArguments)
590 core_file_read_filtered(version_list ${CORE_SOURCE_DIR}/version.txt)
591 string(REPLACE " " ";" version_list "${version_list}")
592 cmake_parse_arguments(APP "" "APP_NAME;COMPANY_NAME;WEBSITE;VERSION_MAJOR;VERSION_MINOR;VERSION_TAG;VERSION_CODE;ADDON_API" "" ${version_list})
593
594 set(APP_NAME ${APP_APP_NAME}) # inconsistency but APP_APP_NAME looks weird
595 string(TOLOWER ${APP_APP_NAME} APP_NAME_LC)
596 string(TOUPPER ${APP_APP_NAME} APP_NAME_UC)
597 set(COMPANY_NAME ${APP_COMPANY_NAME})
598 set(APP_VERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR})
599 if(APP_VERSION_TAG)
600 set(APP_VERSION ${APP_VERSION}-${APP_VERSION_TAG})
601 string(TOLOWER ${APP_VERSION_TAG} APP_VERSION_TAG_LC)
602 endif()
603 string(REPLACE "." "," FILE_VERSION ${APP_ADDON_API}.0)
604 file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_guilib.h guilib_version REGEX "^.*GUILIB_API_VERSION (.*)$")
605 string(REGEX REPLACE ".*\"(.*)\"" "\\1" guilib_version ${guilib_version})
606 file(STRINGS ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_guilib.h guilib_version_min REGEX "^.*GUILIB_MIN_API_VERSION (.*)$")
607 string(REGEX REPLACE ".*\"(.*)\"" "\\1" guilib_version_min ${guilib_version_min})
608 # unset variables not used anywhere else
609 unset(version_list)
610 unset(APP_APP_NAME)
611
612 # bail if we can't parse version.txt
613 if(NOT DEFINED APP_VERSION_MAJOR OR NOT DEFINED APP_VERSION_MINOR)
614 message(FATAL_ERROR "Could not determine app version! Make sure that ${CORE_SOURCE_DIR}/version.txt exists")
615 endif()
616
617 # bail if we can't parse libKODI_guilib.h
618 if(NOT DEFINED guilib_version OR NOT DEFINED guilib_version_min)
619 message(FATAL_ERROR "Could not determine add-on API version! Make sure that ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_guilib.h exists")
620 endif()
621endmacro()
622
diff --git a/project/cmake/scripts/common/PrepareEnv.cmake b/project/cmake/scripts/common/PrepareEnv.cmake
deleted file mode 100644
index 51be739..0000000
--- a/project/cmake/scripts/common/PrepareEnv.cmake
+++ /dev/null
@@ -1,64 +0,0 @@
1# parse version.txt and libKODI_guilib.h to get the version and API info
2include(${CORE_SOURCE_DIR}/project/cmake/scripts/common/Macros.cmake)
3core_find_versions()
4
5# in case we need to download something, set KODI_MIRROR to the default if not alread set
6if(NOT DEFINED KODI_MIRROR)
7 set(KODI_MIRROR "http://mirrors.kodi.tv")
8endif()
9
10### copy all the addon binding header files to include/kodi
11# make sure include/kodi exists and is empty
12set(APP_LIB_DIR ${ADDON_DEPENDS_PATH}/lib/${APP_NAME_LC})
13if(NOT EXISTS "${APP_LIB_DIR}/")
14 file(MAKE_DIRECTORY ${APP_LIB_DIR})
15endif()
16
17set(APP_DATA_DIR ${ADDON_DEPENDS_PATH}/share/${APP_NAME_LC})
18if(NOT EXISTS "${APP_DATA_DIR}/")
19 file(MAKE_DIRECTORY ${APP_DATA_DIR})
20endif()
21
22set(APP_INCLUDE_DIR ${ADDON_DEPENDS_PATH}/include/${APP_NAME_LC})
23if(NOT EXISTS "${APP_INCLUDE_DIR}/")
24 file(MAKE_DIRECTORY ${APP_INCLUDE_DIR})
25endif()
26
27# make sure C++11 is always set
28if(NOT WIN32)
29 string(REGEX MATCH "-std=(gnu|c)\\+\\+11" cxx11flag "${CMAKE_CXX_FLAGS}")
30 if(NOT cxx11flag)
31 set(CXX11_SWITCH "-std=c++11")
32 endif()
33endif()
34
35# generate the proper KodiConfig.cmake file
36configure_file(${CORE_SOURCE_DIR}/project/cmake/KodiConfig.cmake.in ${APP_LIB_DIR}/KodiConfig.cmake @ONLY)
37
38# copy cmake helpers to lib/kodi
39file(COPY ${CORE_SOURCE_DIR}/project/cmake/scripts/common/AddonHelpers.cmake
40 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/AddOptions.cmake
41 DESTINATION ${APP_LIB_DIR})
42
43### copy all the addon binding header files to include/kodi
44# parse addon-bindings.mk to get the list of header files to copy
45core_file_read_filtered(bindings ${CORE_SOURCE_DIR}/xbmc/addons/addon-bindings.mk)
46foreach(binding ${bindings})
47 string(REPLACE " =" ";" binding "${binding}")
48 string(REPLACE "+=" ";" binding "${binding}")
49 list(GET binding 1 header)
50 # copy the header file to include/kodi
51 configure_file(${CORE_SOURCE_DIR}/${header} ${APP_INCLUDE_DIR} COPYONLY)
52endforeach()
53
54### processing additional tools required by the platform
55if(EXISTS ${CORE_SOURCE_DIR}/project/cmake/scripts/${CORE_SYSTEM_NAME}/tools/)
56 file(GLOB platform_tools ${CORE_SOURCE_DIR}/project/cmake/scripts/${CORE_SYSTEM_NAME}/tools/*.cmake)
57 foreach(platform_tool ${platform_tools})
58 get_filename_component(platform_tool_name ${platform_tool} NAME_WE)
59 message(STATUS "Processing ${CORE_SYSTEM_NAME} specific tool: ${platform_tool_name}")
60
61 # include the file
62 include(${platform_tool})
63 endforeach()
64endif()
diff --git a/project/cmake/scripts/common/ProjectMacros.cmake b/project/cmake/scripts/common/ProjectMacros.cmake
deleted file mode 100644
index e73ef90..0000000
--- a/project/cmake/scripts/common/ProjectMacros.cmake
+++ /dev/null
@@ -1,89 +0,0 @@
1# This script holds macros which are project specific
2
3# Pack a skin xbt file
4# Arguments:
5# input input directory to pack
6# output ouput xbt file
7# On return:
8# xbt is added to ${XBT_FILES}
9function(pack_xbt input output)
10 file(GLOB_RECURSE MEDIA_FILES ${input}/*)
11 get_filename_component(dir ${output} DIRECTORY)
12 add_custom_command(OUTPUT ${output}
13 COMMAND ${CMAKE_COMMAND} -E make_directory ${dir}
14 COMMAND TexturePacker::TexturePacker
15 ARGS -input ${input}
16 -output ${output}
17 -dupecheck
18 DEPENDS ${MEDIA_FILES})
19 list(APPEND XBT_FILES ${output})
20 set(XBT_FILES ${XBT_FILES} PARENT_SCOPE)
21endfunction()
22
23# Add a skin to installation list, mirroring it in build tree, packing textures
24# Arguments:
25# skin skin directory
26# On return:
27# xbt is added to ${XBT_FILES}, data added to ${install_data}, mirror in build tree
28function(copy_skin_to_buildtree skin)
29 file(GLOB_RECURSE FILES ${skin}/*)
30 file(GLOB_RECURSE MEDIA_FILES ${skin}/media/*)
31 list(REMOVE_ITEM FILES ${MEDIA_FILES})
32 foreach(file ${FILES})
33 copy_file_to_buildtree(${file})
34 endforeach()
35 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${dest}/media)
36 string(REPLACE "${CORE_SOURCE_DIR}/" "" dest ${skin})
37 pack_xbt(${skin}/media ${CMAKE_BINARY_DIR}/${dest}/media/Textures.xbt)
38
39 file(GLOB THEMES RELATIVE ${skin}/themes ${skin}/themes/*)
40 foreach(theme ${THEMES})
41 pack_xbt(${skin}/themes/${theme} ${CMAKE_BINARY_DIR}/${dest}/media/${theme}.xbt)
42 endforeach()
43
44 set(XBT_FILES ${XBT_FILES} PARENT_SCOPE)
45 set(install_data ${install_data} PARENT_SCOPE)
46endfunction()
47
48# Get GTest tests as CMake tests.
49# Copied from FindGTest.cmake
50# Thanks to Daniel Blezek <blezek@gmail.com> for the GTEST_ADD_TESTS code
51function(GTEST_ADD_TESTS executable extra_args)
52 if(NOT ARGN)
53 message(FATAL_ERROR "Missing ARGN: Read the documentation for GTEST_ADD_TESTS")
54 endif()
55 foreach(source ${ARGN})
56 # This assumes that every source file passed in exists. Consider using
57 # SUPPORT_SOURCES for source files which do not contain tests and might
58 # have to be generated.
59 file(READ "${source}" contents)
60 string(REGEX MATCHALL "TEST_?[F]?\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
61 foreach(hit ${found_tests})
62 string(REGEX REPLACE ".*\\( *([A-Za-z_0-9]+), *([A-Za-z_0-9]+) *\\).*" "\\1.\\2" test_name ${hit})
63 add_test(${test_name} ${executable} --gtest_filter=${test_name} ${extra_args})
64 endforeach()
65 # Groups parametrized tests under a single ctest entry
66 string(REGEX MATCHALL "INSTANTIATE_TEST_CASE_P\\(([^,]+), *([^,]+)" found_tests2 ${contents})
67 foreach(hit ${found_tests2})
68 string(SUBSTRING ${hit} 24 -1 test_name)
69 string(REPLACE "," ";" test_name "${test_name}")
70 list(GET test_name 0 filter_name)
71 list(GET test_name 1 test_prefix)
72 string(STRIP ${test_prefix} test_prefix)
73 add_test(${test_prefix}.${filter_name} ${executable} --gtest_filter=${filter_name}* ${extra_args})
74 endforeach()
75 endforeach()
76endfunction()
77
78function(whole_archive output)
79 if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang)
80 set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE)
81 elseif(CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
82 foreach(library ${ARGN})
83 list(APPEND ${output} -Wl,-force_load ${library})
84 set(${output} ${${output}} PARENT_SCOPE)
85 endforeach()
86 else()
87 set(${output} ${ARGN} PARENT_SCOPE)
88 endif()
89endfunction()
diff --git a/project/cmake/scripts/common/Uninstall.cmake b/project/cmake/scripts/common/Uninstall.cmake
deleted file mode 100644
index 5660e19..0000000
--- a/project/cmake/scripts/common/Uninstall.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
1# Uninstall target
2set(MANIFEST ${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt)
3if(EXISTS ${MANIFEST})
4 file(STRINGS ${MANIFEST} files)
5 foreach(file IN LISTS files)
6 if(EXISTS $ENV{DESTDIR}${file})
7 message(STATUS "Uninstalling: ${file}")
8 execute_process(
9 COMMAND ${CMAKE_COMMAND} -E remove $ENV{DESTDIR}${file}
10 OUTPUT_VARIABLE rm_out
11 RESULT_VARIABLE rm_retval
12 )
13 if(NOT "${rm_retval}" STREQUAL 0)
14 message(FATAL_ERROR "Failed to remove file: $ENV{DESTDIR}${file}")
15 endif()
16 else()
17 message(STATUS "File does not exist: $ENV{DESTDIR}${file}")
18 endif()
19 endforeach(file)
20else()
21 message(STATUS "Cannot find install manifest: '${MANIFEST}'")
22endif()
diff --git a/project/cmake/scripts/freebsd/ArchSetup.cmake b/project/cmake/scripts/freebsd/ArchSetup.cmake
deleted file mode 100644
index 013205c..0000000
--- a/project/cmake/scripts/freebsd/ArchSetup.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
1set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_FREEBSD)
2set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
3 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
4set(PLATFORM_DIR linux)
5set(SYSTEM_LDFLAGS -L/usr/local/lib)
6if(WITH_ARCH)
7 set(ARCH ${WITH_ARCH})
8else()
9 if(CMAKE_SYSTEM_PROCESSOR STREQUAL amd64)
10 set(ARCH x86_64-freebsd)
11 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i.86")
12 set(ARCH x86-freebsd)
13 else()
14 message(WARNING "unknown CPU: ${CPU}")
15 endif()
16endif()
diff --git a/project/cmake/scripts/freebsd/Install.cmake b/project/cmake/scripts/freebsd/Install.cmake
deleted file mode 120000
index 28ce012..0000000
--- a/project/cmake/scripts/freebsd/Install.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Install.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/freebsd/Macros.cmake b/project/cmake/scripts/freebsd/Macros.cmake
deleted file mode 120000
index 2fdbb25..0000000
--- a/project/cmake/scripts/freebsd/Macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/freebsd/PathSetup.cmake b/project/cmake/scripts/freebsd/PathSetup.cmake
deleted file mode 120000
index 6786c1c..0000000
--- a/project/cmake/scripts/freebsd/PathSetup.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/PathSetup.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/ios/ArchSetup.cmake b/project/cmake/scripts/ios/ArchSetup.cmake
deleted file mode 100644
index f3e8590..0000000
--- a/project/cmake/scripts/ios/ArchSetup.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
1if(NOT CMAKE_TOOLCHAIN_FILE)
2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for ios. See ${PROJECT_SOURCE_DIR}/README.md")
3endif()
4
5set(CORE_MAIN_SOURCE ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/XBMCApplication.m)
6
7set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS)
8set(SYSTEM_DEFINES -D_REENTRANT -D_FILE_DEFINED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
9 -D__STDC_CONSTANT_MACROS)
10set(PLATFORM_DIR linux)
11set(CMAKE_SYSTEM_NAME Darwin)
12if(WITH_ARCH)
13 set(ARCH ${WITH_ARCH})
14else()
15 if(CPU STREQUAL armv7 OR CPU STREQUAL arm64)
16 set(CMAKE_OSX_ARCHITECTURES ${CPU})
17 set(ARCH arm-osx)
18 set(NEON False)
19 else()
20 message(SEND_ERROR "Unknown CPU: ${CPU}")
21 endif()
22endif()
23
24find_package(CXX11 REQUIRED)
25
26list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX})
27
28list(APPEND DEPLIBS "-framework CoreFoundation" "-framework CoreVideo"
29 "-framework CoreAudio" "-framework AudioToolbox"
30 "-framework QuartzCore" "-framework MediaPlayer"
31 "-framework CFNetwork" "-framework CoreGraphics"
32 "-framework Foundation" "-framework UIKit"
33 "-framework CoreMedia" "-framework AVFoundation"
34 "-framework VideoToolbox")
35
36set(ENABLE_DVDCSS OFF CACHE BOOL "" FORCE)
37set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE)
38
39set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "5.1")
40set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
41
42set(CMAKE_XCODE_ATTRIBUTE_INLINES_ARE_PRIVATE_EXTERN OFF)
43set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN OFF)
44set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP OFF)
45
46# Xcode strips dead code by default which breaks wrapping
47set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING OFF)
48
49# Unify output directories for iOS packaging scripts
50if(NOT CMAKE_GENERATOR MATCHES Xcode)
51 set(CORE_BUILD_CONFIG "${CORE_BUILD_CONFIG}-iphoneos")
52endif()
53set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG})
54foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
55 string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
56 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG})
57endforeach()
diff --git a/project/cmake/scripts/ios/Install.cmake b/project/cmake/scripts/ios/Install.cmake
deleted file mode 100644
index c49fcd5..0000000
--- a/project/cmake/scripts/ios/Install.cmake
+++ /dev/null
@@ -1,85 +0,0 @@
1# IOS packaging
2
3set(BUNDLE_RESOURCES ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-568h@2x.png
4 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-667h@2x.png
5 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-736h@3x.png
6 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/Default-Landscape-736h@3x.png
7 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29.png
8 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon29x29@2x.png
9 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40.png
10 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon40x40@2x.png
11 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50.png
12 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon50x50@2x.png
13 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57.png
14 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon57x57@2x.png
15 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60.png
16 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon60x60@2x.png
17 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72.png
18 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon72x72@2x.png
19 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76.png
20 ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/ios/rounded/AppIcon76x76@2x.png)
21
22if(CMAKE_GENERATOR STREQUAL Xcode)
23 set(RESOURCE_LOCATION ${APP_NAME}.app)
24else()
25 set(RESOURCE_LOCATION ".")
26endif()
27
28target_sources(${APP_NAME_LC} PRIVATE ${BUNDLE_RESOURCES})
29foreach(file IN LISTS BUNDLE_RESOURCES)
30 set_source_files_properties(${file} PROPERTIES MACOSX_PACKAGE_LOCATION ${RESOURCE_LOCATION})
31endforeach()
32
33target_sources(${APP_NAME_LC} PRIVATE ${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings)
34set_source_files_properties(${CORE_SOURCE_DIR}/xbmc/platform/darwin/ios/English.lproj/InfoPlist.strings PROPERTIES MACOSX_PACKAGE_LOCATION "${RESOURCE_LOCATION}/English.lproj")
35
36# Options for code signing propagated as env vars to Codesign.command via Xcode
37set(IOS_CODE_SIGN_IDENTITY "" CACHE STRING "Code Sign Identity")
38if(IOS_CODE_SIGN_IDENTITY)
39 set_target_properties(${APP_NAME_LC} PROPERTIES XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED TRUE
40 XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ${IOS_CODE_SIGN_IDENTITY})
41endif()
42
43add_custom_command(TARGET ${APP_NAME_LC} POST_BUILD
44 # TODO: Remove in sync with CopyRootFiles-ios expecting the ".bin" file
45 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}>
46 $<TARGET_FILE_DIR:${APP_NAME_LC}>/${APP_NAME}.bin
47
48 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h
49 ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h
50 COMMAND "ACTION=build"
51 "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
52 "TARGET_NAME=${APP_NAME}.app"
53 "APP_NAME=${APP_NAME}"
54 "PRODUCT_NAME=${APP_NAME}"
55 "WRAPPER_EXTENSION=app"
56 "SRCROOT=${CMAKE_BINARY_DIR}"
57 ${CORE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-ios.command
58 COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
59 "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
60 "TARGET_NAME=${APP_NAME}.app"
61 "APP_NAME=${APP_NAME}"
62 "PRODUCT_NAME=${APP_NAME}"
63 "FULL_PRODUCT_NAME=${APP_NAME}.app"
64 "WRAPPER_EXTENSION=app"
65 "SRCROOT=${CMAKE_BINARY_DIR}"
66 ${CORE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-ios.command
67 COMMAND "XBMC_DEPENDS_ROOT=${NATIVEPREFIX}/.."
68 "PLATFORM_NAME=${PLATFORM}"
69 "CODESIGNING_FOLDER_PATH=$<TARGET_FILE_DIR:${APP_NAME_LC}>"
70 "BUILT_PRODUCTS_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
71 "WRAPPER_NAME=${APP_NAME}.app"
72 "APP_NAME=${APP_NAME}"
73 ${CORE_SOURCE_DIR}/tools/darwin/Support/Codesign.command
74)
75
76set(DEPENDS_ROOT_FOR_XCODE ${NATIVEPREFIX}/..)
77configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh.in
78 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios/mkdeb-ios.sh @ONLY)
79configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh.in
80 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/migrate_to_kodi_ios.sh @ONLY)
81
82add_custom_target(deb
83 COMMAND sh ./mkdeb-ios.sh ${CORE_BUILD_CONFIG}
84 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/ios)
85add_dependencies(deb ${APP_NAME_LC})
diff --git a/project/cmake/scripts/ios/Macros.cmake b/project/cmake/scripts/ios/Macros.cmake
deleted file mode 120000
index 54c1b28..0000000
--- a/project/cmake/scripts/ios/Macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../osx/Macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/ios/PathSetup.cmake b/project/cmake/scripts/ios/PathSetup.cmake
deleted file mode 120000
index d7f25b2..0000000
--- a/project/cmake/scripts/ios/PathSetup.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../osx/PathSetup.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/linux/ArchSetup.cmake b/project/cmake/scripts/linux/ArchSetup.cmake
deleted file mode 100644
index bcd70df..0000000
--- a/project/cmake/scripts/linux/ArchSetup.cmake
+++ /dev/null
@@ -1,45 +0,0 @@
1set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_LINUX)
2set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
3 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
4set(PLATFORM_DIR linux)
5set(CMAKE_SYSTEM_NAME Linux)
6if(WITH_ARCH)
7 set(ARCH ${WITH_ARCH})
8else()
9 if(CPU STREQUAL x86_64)
10 set(ARCH x86_64-linux)
11 set(NEON False)
12 elseif(CPU MATCHES "i.86")
13 set(ARCH i486-linux)
14 set(NEON False)
15 add_options(CXX ALL_BUILDS "-msse")
16 elseif(CPU MATCHES arm)
17 set(ARCH arm)
18 set(NEON True)
19 elseif(CPU MATCHES aarch64 OR CPU MATCHES arm64)
20 set(ARCH aarch64)
21 set(NEON False)
22 else()
23 message(SEND_ERROR "Unknown CPU: ${CPU}")
24 endif()
25endif()
26
27# Make sure we strip binaries in Release build
28if(CMAKE_BUILD_TYPE STREQUAL Release AND CMAKE_COMPILER_IS_GNUCXX)
29 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
30endif()
31
32find_package(CXX11 REQUIRED)
33include(LDGOLD)
34
35# Code Coverage
36if(CMAKE_BUILD_TYPE STREQUAL Coverage)
37 set(COVERAGE_TEST_BINARY ${APP_NAME_LC}-test)
38 set(COVERAGE_SOURCE_DIR ${CORE_SOURCE_DIR})
39 set(COVERAGE_DEPENDS "\${APP_NAME_LC}" "\${APP_NAME_LC}-test")
40 set(COVERAGE_EXCLUDES */test/* lib/* */lib/*)
41endif()
42
43if(ENABLE_MIR)
44 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU since no Mir support" FORCE)
45endif()
diff --git a/project/cmake/scripts/linux/CodeCoverage.cmake b/project/cmake/scripts/linux/CodeCoverage.cmake
deleted file mode 100644
index efc2208..0000000
--- a/project/cmake/scripts/linux/CodeCoverage.cmake
+++ /dev/null
@@ -1,97 +0,0 @@
1# - CodeCoverage
2# Generate code coverage reports with LCOV and GCovr.
3#
4# Configuration:
5# COVERAGE_SOURCE_DIR - Source root directory (default ${CMAKE_SOURCE_DIR}).
6# COVERAGE_BINARY_DIR - Directory where the coverage reports (and intermediate files)
7# are generated to.
8# COVERAGE_EXCLUDES - List of exclude patterns (for example '*/tests/*').
9#
10# The following targets will be generated:
11# coverage - Builds an html report. Requires LCOV.
12# coverage_xml - Builds an xml report (in Cobertura format for Jenkins).
13# Requires Gcovr.
14#
15# Inspired by https://github.com/bilke/cmake-modules/blob/master/CodeCoverage.cmake
16
17# Comiler and linker setup
18set(CMAKE_C_FLAGS_COVERAGE "-g -O0 --coverage" CACHE STRING
19 "Flags used by the C compiler during coverage builds." FORCE)
20set(CMAKE_CXX_FLAGS_COVERAGE "-g -O0 --coverage" CACHE STRING
21 "Flags used by the C++ compiler during coverage builds." FORCE)
22set(CMAKE_EXE_LINKER_FLAGS_COVERAGE "--coverage" CACHE STRING
23 "Flags used for linking binaries during coverage builds." FORCE)
24set(CMAKE_SHARED_LINKER_FLAGS_COVERAGE "--coverage" CACHE STRING
25 "Flags used by the shared libraries linker during coverage builds." FORCE)
26mark_as_advanced(
27 CMAKE_C_FLAGS_COVERAGE CMAKE_CXX_FLAGS_COVERAGE CMAKE_EXE_LINKER_FLAGS_COVERAGE
28 CMAKE_SHARED_LINKER_FLAGS_COVERAGE CMAKE_STATIC_LINKER_FLAGS_COVERAGE
29)
30
31find_program(LCOV_EXECUTABLE lcov)
32find_program(GENINFO_EXECUTABLE geninfo)
33find_program(GENHTML_EXECUTABLE genhtml)
34find_program(GCOVR_EXECUTABLE gcovr)
35mark_as_advanced(LCOV_EXECUTABLE GENINFO_EXECUTABLE GENHTML_EXECUTABLE GCOVR_EXECUTABLE)
36
37# Default options
38if(NOT COVERAGE_SOURCE_DIR)
39 set(COVERAGE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
40endif()
41if(NOT COVERAGE_BINARY_DIR)
42 set(COVERAGE_BINARY_DIR ${CMAKE_BINARY_DIR}/coverage)
43endif()
44if(NOT COVERAGE_EXCLUDES)
45 set(COVERAGE_EXCLUDES)
46endif()
47
48# Allow variables in COVERAGE_DEPENDS that are not evaluated before this file is included.
49string(CONFIGURE "${COVERAGE_DEPENDS}" COVERAGE_DEPENDS)
50
51# Add coverage target that generates an HTML report using LCOV
52if(LCOV_EXECUTABLE AND GENINFO_EXECUTABLE AND GENHTML_EXECUTABLE)
53 file(MAKE_DIRECTORY ${COVERAGE_BINARY_DIR})
54 add_custom_target(coverage
55 COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_BINARY_DIR}
56 COMMAND ${LCOV_EXECUTABLE} -z -q -d ${CMAKE_BINARY_DIR}
57 COMMAND ${LCOV_EXECUTABLE} -c -q -i -d ${CMAKE_BINARY_DIR} -b ${COVERAGE_SOURCE_DIR}
58 -o ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage_base.info
59 COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target test || true
60 COMMAND ${LCOV_EXECUTABLE} -c -q -d ${CMAKE_BINARY_DIR} -b ${COVERAGE_SOURCE_DIR}
61 -o ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage_test.info
62 COMMAND ${LCOV_EXECUTABLE} -a ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage_base.info
63 -a ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage_test.info
64 -o ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage.info -q
65 COMMAND ${LCOV_EXECUTABLE} -q -r ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage.info
66 /usr/include/* ${CMAKE_BINARY_DIR}/* ${COVERAGE_EXCLUDES}
67 -o ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage.info
68 COMMAND ${GENHTML_EXECUTABLE} ${COVERAGE_BINARY_DIR}/${PROJECT_NAME}.coverage.info
69 -o ${COVERAGE_BINARY_DIR}/html -s --legend --highlight --demangle-cpp
70 COMMAND ${CMAKE_COMMAND} -E echo "Coverage report: file://${COVERAGE_BINARY_DIR}/html/index.html"
71 WORKING_DIRECTORY ${COVERAGE_BINARY_DIR}
72 VERBATIM
73 DEPENDS ${COVERAGE_DEPENDS}
74 COMMENT "Generate code coverage html report"
75 )
76else()
77 message(WARNING "Target coverage not available (lcov, geninfo and genhtml needed).")
78endif()
79
80# Add coverage target that generates an XML report using Gcovr
81if(GCOVR_EXECUTABLE)
82 file(MAKE_DIRECTORY ${COVERAGE_BINARY_DIR})
83 string(REGEX REPLACE "([^;]+)" "--exclude=\"\\1\"" _gcovr_excludes "${COVERAGE_EXCLUDES}")
84 string(REPLACE "*" ".*" _gcovr_excludes "${_gcovr_excludes}")
85 add_custom_target(coverage_xml
86 COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target test || true
87 COMMAND ${GCOVR_EXECUTABLE} -x -r ${COVERAGE_SOURCE_DIR} -o ${COVERAGE_BINARY_DIR}/coverage.xml
88 --object-directory ${CMAKE_BINARY_DIR} ${_gcovr_excludes} ${CMAKE_BINARY_DIR}
89 COMMAND ${CMAKE_COMMAND} -E echo "Coverage report: file://${COVERAGE_BINARY_DIR}/coverage.xml"
90 WORKING_DIRECTORY ${COVERAGE_BINARY_DIR}
91 DEPENDS ${COVERAGE_DEPENDS}
92 COMMENT "Generate code coverage xml report"
93 )
94 unset(_gcovr_excludes)
95else()
96 message(WARNING "Target coverage_xml not available (gcovr needed).")
97endif()
diff --git a/project/cmake/scripts/linux/ExtraTargets.cmake b/project/cmake/scripts/linux/ExtraTargets.cmake
deleted file mode 100644
index 2bb5f6f..0000000
--- a/project/cmake/scripts/linux/ExtraTargets.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
1# xrandr
2if(ENABLE_X11 AND X_FOUND AND XRANDR_FOUND)
3 find_package(X QUIET)
4 find_package(XRandR QUIET)
5 add_executable(${APP_NAME_LC}-xrandr ${CORE_SOURCE_DIR}/xbmc-xrandr.c)
6 target_link_libraries(${APP_NAME_LC}-xrandr ${SYSTEM_LDFLAGS} ${X_LIBRARIES} m ${XRANDR_LIBRARIES})
7endif()
8
9# WiiRemote
10if(ENABLE_EVENTCLIENTS)
11 add_subdirectory(${CORE_SOURCE_DIR}/tools/EventClients/Clients/WiiRemote build/WiiRemote)
12endif()
diff --git a/project/cmake/scripts/linux/Install.cmake b/project/cmake/scripts/linux/Install.cmake
deleted file mode 100644
index 43e2e5e..0000000
--- a/project/cmake/scripts/linux/Install.cmake
+++ /dev/null
@@ -1,367 +0,0 @@
1if(X_FOUND)
2 set(USE_X11 1)
3else()
4 set(USE_X11 0)
5endif()
6if(OPENGL_FOUND)
7 set(USE_OPENGL 1)
8else()
9 set(USE_OPENGL 0)
10endif()
11if(OPENGLES_FOUND)
12 set(USE_OPENGLES 1)
13else()
14 set(USE_OPENGLES 0)
15endif()
16
17# CMake config
18set(APP_PREFIX ${prefix})
19set(APP_LIB_DIR ${libdir}/${APP_NAME_LC})
20set(APP_DATA_DIR ${datarootdir}/${APP_NAME_LC})
21set(APP_INCLUDE_DIR ${includedir}/${APP_NAME_LC})
22set(CXX11_SWITCH "-std=c++11")
23
24# Set XBMC_STANDALONE_SH_PULSE so we can insert PulseAudio block into kodi-standalone
25if(EXISTS ${CORE_SOURCE_DIR}/tools/Linux/kodi-standalone.sh.pulse)
26 if(ENABLE_PULSEAUDIO AND PULSEAUDIO_FOUND)
27 file(READ "${CORE_SOURCE_DIR}/tools/Linux/kodi-standalone.sh.pulse" pulse_content)
28 set(XBMC_STANDALONE_SH_PULSE ${pulse_content})
29 endif()
30endif()
31
32# Configure startup scripts
33configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi.sh.in
34 ${CORE_BUILD_DIR}/scripts/${APP_NAME_LC} @ONLY)
35configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi-standalone.sh.in
36 ${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone @ONLY)
37
38# Configure cmake files
39configure_file(${PROJECT_SOURCE_DIR}/KodiConfig.cmake.in
40 ${CORE_BUILD_DIR}/scripts/${APP_NAME}Config.cmake @ONLY)
41
42# Configure xsession entry
43configure_file(${CORE_SOURCE_DIR}/tools/Linux/kodi-xsession.desktop.in
44 ${CORE_BUILD_DIR}/${APP_NAME_LC}.desktop @ONLY)
45
46# Install app
47install(TARGETS ${APP_NAME_LC}
48 DESTINATION ${libdir}/${APP_NAME_LC}
49 COMPONENT kodi-bin)
50if(ENABLE_X11 AND XRANDR_FOUND)
51 install(TARGETS ${APP_NAME_LC}-xrandr
52 DESTINATION ${libdir}/${APP_NAME_LC}
53 COMPONENT kodi-bin)
54endif()
55
56# Install scripts
57install(PROGRAMS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}
58 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME_LC}-standalone
59 DESTINATION ${bindir}
60 COMPONENT kodi-bin)
61
62# Install libraries
63foreach(library ${LIBRARY_FILES})
64 get_filename_component(dir ${library} DIRECTORY)
65 string(REPLACE "${CMAKE_BINARY_DIR}/" "" dir ${dir})
66 install(PROGRAMS ${library}
67 DESTINATION ${libdir}/${APP_NAME_LC}/${dir}
68 COMPONENT kodi-bin)
69endforeach()
70
71# Install add-ons, fonts, icons, keyboard maps, keymaps, etc
72# (addons, media, system, userdata folders in share/kodi/)
73foreach(file ${install_data})
74 get_filename_component(dir ${file} DIRECTORY)
75 install(FILES ${CMAKE_BINARY_DIR}/${file}
76 DESTINATION ${datarootdir}/${APP_NAME_LC}/${dir}
77 COMPONENT kodi)
78endforeach()
79
80# Install xsession entry
81install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${APP_NAME_LC}.desktop
82 DESTINATION ${datarootdir}/xsessions
83 COMPONENT kodi)
84
85# Install desktop entry
86install(FILES ${CORE_SOURCE_DIR}/tools/Linux/kodi.desktop
87 DESTINATION ${datarootdir}/applications
88 COMPONENT kodi)
89
90# Install icons
91install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon16x16.png
92 RENAME ${APP_NAME_LC}.png
93 DESTINATION ${datarootdir}/icons/hicolor/16x16/apps
94 COMPONENT kodi)
95install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon22x22.png
96 RENAME ${APP_NAME_LC}.png
97 DESTINATION ${datarootdir}/icons/hicolor/22x22/apps
98 COMPONENT kodi)
99install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon24x24.png
100 RENAME ${APP_NAME_LC}.png
101 DESTINATION ${datarootdir}/icons/hicolor/24x24/apps
102 COMPONENT kodi)
103install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon32x32.png
104 RENAME ${APP_NAME_LC}.png
105 DESTINATION ${datarootdir}/icons/hicolor/32x32/apps
106 COMPONENT kodi)
107install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon48x48.png
108 RENAME ${APP_NAME_LC}.png
109 DESTINATION ${datarootdir}/icons/hicolor/48x48/apps
110 COMPONENT kodi)
111install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon64x64.png
112 RENAME ${APP_NAME_LC}.png
113 DESTINATION ${datarootdir}/icons/hicolor/64x64/apps
114 COMPONENT kodi)
115install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon128x128.png
116 RENAME ${APP_NAME_LC}.png
117 DESTINATION ${datarootdir}/icons/hicolor/128x128/apps
118 COMPONENT kodi)
119install(FILES ${CORE_SOURCE_DIR}/tools/Linux/packaging/media/icon256x256.png
120 RENAME ${APP_NAME_LC}.png
121 DESTINATION ${datarootdir}/icons/hicolor/256x256/apps
122 COMPONENT kodi)
123install(CODE "execute_process(COMMAND gtk-update-icon-cache -f -q -t
124 $ENV{DESTDIR}${datarootdir}/icons/hicolor ERROR_QUIET)"
125 COMPONENT kodi)
126
127# Install docs
128install(FILES ${CORE_SOURCE_DIR}/copying.txt
129 ${CORE_SOURCE_DIR}/LICENSE.GPL
130 ${CORE_SOURCE_DIR}/version.txt
131 ${CORE_SOURCE_DIR}/docs/README.linux
132 DESTINATION ${datarootdir}/doc/${APP_NAME_LC}
133 COMPONENT kodi)
134
135install(FILES ${CORE_SOURCE_DIR}/privacy-policy.txt
136 DESTINATION ${datarootdir}/${APP_NAME_LC}
137 COMPONENT kodi)
138
139# Install kodi-tools-texturepacker
140if(NOT WITH_TEXTUREPACKER)
141 install(PROGRAMS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/texturepacker/TexturePacker
142 DESTINATION ${bindir}
143 COMPONENT kodi-tools-texturepacker)
144endif()
145
146# Install kodi-addon-dev headers
147install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_types.h
148 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_utils.hpp
149 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_adsp.h
150 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_audioengine.h
151 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_guilib.h
152 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_inputstream.h
153 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_peripheral.h
154 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h
155 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_codec.h
156 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h
157 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_game.h
158 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_addon_cpp_dll.h
159 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_addon_dll.h
160 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_addon_types.h
161 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_codec_types.h
162 ${CORE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h
163 ${CORE_SOURCE_DIR}/xbmc/filesystem/IFileTypes.h
164 ${CORE_SOURCE_DIR}/xbmc/input/XBMC_vkeys.h
165 DESTINATION ${includedir}/${APP_NAME_LC}
166 COMPONENT kodi-addon-dev)
167
168# Install kodi-addon-dev add-on bindings
169install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME}Config.cmake
170 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/AddonHelpers.cmake
171 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/AddOptions.cmake
172 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/ArchSetup.cmake
173 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckCommits.cmake
174 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/CheckTargetPlatform.cmake
175 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/GenerateVersionedFiles.cmake
176 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/GeneratorSetup.cmake
177 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/HandleDepends.cmake
178 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/Macros.cmake
179 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/PrepareEnv.cmake
180 ${CORE_SOURCE_DIR}/project/cmake/scripts/common/ProjectMacros.cmake
181 ${CORE_SOURCE_DIR}/project/cmake/scripts/linux/PathSetup.cmake
182 DESTINATION ${datarootdir}/${APP_NAME_LC}/cmake
183 COMPONENT kodi-addon-dev)
184
185# Install kodi-audio-dev
186install(FILES ${CORE_SOURCE_DIR}/xbmc/cores/AudioEngine/Utils/AEChannelData.h
187 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_adsp_dll.h
188 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_adsp_types.h
189 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_audiodec_dll.h
190 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_audiodec_types.h
191 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_audioenc_dll.h
192 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_audioenc_types.h
193 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_audioengine_types.h
194 DESTINATION ${includedir}/${APP_NAME_LC}
195 COMPONENT kodi-audio-dev)
196
197if(ENABLE_EVENTCLIENTS)
198 # Install kodi-eventclients-common BT python files
199 install(PROGRAMS ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/bt/__init__.py
200 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/bt/bt.py
201 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/bt/hid.py
202 DESTINATION lib/python2.7/dist-packages/${APP_NAME_LC}/bt
203 COMPONENT kodi-eventclients-common)
204
205 # Install kodi-eventclients-common PS3 python files
206 install(PROGRAMS ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/ps3/__init__.py
207 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/ps3/keymaps.py
208 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/ps3/sixaxis.py
209 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/ps3/sixpair.py
210 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/ps3/sixwatch.py
211 DESTINATION lib/python2.7/dist-packages/${APP_NAME_LC}/ps3
212 COMPONENT kodi-eventclients-common)
213
214 # Install kodi-eventclients-common python files
215 file(WRITE ${CMAKE_BINARY_DIR}/packages/deb/defs.py ICON_PATH="usr/share/pixmaps/${APP_NAME_LC}/")
216 install(PROGRAMS ${CMAKE_BINARY_DIR}/packages/deb/defs.py
217 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/__init__.py
218 "${CORE_SOURCE_DIR}/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py"
219 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/xbmcclient.py
220 ${CORE_SOURCE_DIR}/tools/EventClients/lib/python/zeroconf.py
221 DESTINATION lib/python2.7/dist-packages/${APP_NAME_LC}
222 COMPONENT kodi-eventclients-common)
223
224 # Install kodi-eventclients-common icons
225 install(FILES ${CORE_SOURCE_DIR}/tools/EventClients/icons/bluetooth.png
226 ${CORE_SOURCE_DIR}/tools/EventClients/icons/phone.png
227 ${CORE_SOURCE_DIR}/tools/EventClients/icons/mail.png
228 ${CORE_SOURCE_DIR}/tools/EventClients/icons/mouse.png
229 DESTINATION ${datarootdir}/pixmaps/${APP_NAME_LC}
230 COMPONENT kodi-eventclients-common)
231
232 # Install kodi-eventclients-dev headers
233 install(FILES ${CORE_SOURCE_DIR}/tools/EventClients/lib/c++/xbmcclient.h
234 DESTINATION ${includedir}/${APP_NAME_LC}
235 COMPONENT kodi-eventclients-dev)
236
237 # Install kodi-eventclients-dev C# examples
238 install(FILES "${CORE_SOURCE_DIR}/tools/EventClients/examples/c#/XBMCDemoClient1.cs"
239 DESTINATION "${docdir}/${APP_NAME_LC}-eventclients-dev/examples/C#"
240 COMPONENT kodi-eventclients-dev)
241
242 # Install kodi-eventclients-dev C++ examples
243 install(FILES ${CORE_SOURCE_DIR}/tools/EventClients/examples/c++/example_notification.cpp
244 ${CORE_SOURCE_DIR}/tools/EventClients/examples/c++/example_log.cpp
245 ${CORE_SOURCE_DIR}/tools/EventClients/examples/c++/example_button1.cpp
246 ${CORE_SOURCE_DIR}/tools/EventClients/examples/c++/example_mouse.cpp
247 ${CORE_SOURCE_DIR}/tools/EventClients/examples/c++/example_button2.cpp
248 DESTINATION ${docdir}/${APP_NAME_LC}-eventclients-dev/examples/C++
249 COMPONENT kodi-eventclients-dev)
250
251 # Install kodi-eventclients-dev java examples
252 install(FILES ${CORE_SOURCE_DIR}/tools/EventClients/examples/java/XBMCDemoClient1.java
253 DESTINATION ${docdir}/${APP_NAME_LC}-eventclients-dev/examples/java
254 COMPONENT kodi-eventclients-dev)
255
256 # Install kodi-eventclients-dev python examples
257 install(PROGRAMS ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_mouse.py
258 ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_button1.py
259 ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_notification.py
260 ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_action.py
261 ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_button2.py
262 ${CORE_SOURCE_DIR}/tools/EventClients/examples/python/example_simple.py
263 DESTINATION ${docdir}/${APP_NAME_LC}-eventclients-dev/examples/python
264 COMPONENT kodi-eventclients-dev)
265
266 # Install kodi-eventclients-ps3
267 install(PROGRAMS "${CORE_SOURCE_DIR}/tools/EventClients/Clients/PS3 BD Remote/ps3_remote.py"
268 RENAME ${APP_NAME_LC}-ps3remote
269 DESTINATION ${bindir}
270 COMPONENT kodi-eventclients-ps3)
271
272 # Install kodi-eventclients-wiiremote
273 install(PROGRAMS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/WiiRemote/${APP_NAME_LC}-wiiremote
274 DESTINATION ${bindir}
275 COMPONENT kodi-eventclients-wiiremote)
276
277 # Install kodi-eventclients-xbmc-send
278 install(PROGRAMS "${CORE_SOURCE_DIR}/tools/EventClients/Clients/Kodi Send/kodi-send.py"
279 RENAME ${APP_NAME_LC}-send
280 DESTINATION ${bindir}
281 COMPONENT kodi-eventclients-xbmc-send)
282endif()
283
284# Install kodi-inputstream-dev
285install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_inputstream_dll.h
286 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_inputstream_types.h
287 DESTINATION ${includedir}/${APP_NAME_LC}
288 COMPONENT kodi-inputstream-dev)
289
290# Install kodi-pvr-dev
291install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h
292 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h
293 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h
294 DESTINATION ${includedir}/${APP_NAME_LC}
295 COMPONENT kodi-pvr-dev)
296
297# Install kodi-screensaver-dev
298install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_scr_dll.h
299 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_scr_types.h
300 DESTINATION ${includedir}/${APP_NAME_LC}
301 COMPONENT kodi-screensaver-dev)
302
303# Install kodi-visualization-dev
304install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_vis_dll.h
305 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_vis_types.h
306 DESTINATION ${includedir}/${APP_NAME_LC}
307 COMPONENT kodi-visualization-dev)
308
309# Install kodi-peripheral-dev
310install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_peripheral_callbacks.h
311 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_peripheral_dll.h
312 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_peripheral_types.h
313 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_peripheral_utils.hpp
314 DESTINATION ${includedir}/${APP_NAME_LC}
315 COMPONENT kodi-peripheral-dev)
316
317# Install kodi-game-dev
318install(FILES ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_callbacks.h
319 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_dll.h
320 ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_types.h
321 DESTINATION ${includedir}/${APP_NAME_LC}
322 COMPONENT kodi-game-dev)
323
324
325# Install XBT skin files
326foreach(texture ${XBT_FILES})
327 string(REPLACE "${CMAKE_BINARY_DIR}/" "" dir ${texture})
328 get_filename_component(dir ${dir} DIRECTORY)
329 install(FILES ${texture}
330 DESTINATION ${datarootdir}/${APP_NAME_LC}/${dir}
331 COMPONENT kodi)
332endforeach()
333
334# Install extra stuff if it exists
335if(EXISTS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/extra-installs)
336 install(CODE "file(STRINGS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/extra-installs dirs)
337 foreach(dir \${dirs})
338 file(GLOB_RECURSE FILES RELATIVE ${CMAKE_BINARY_DIR} \${dir}/*)
339 foreach(file \${FILES})
340 get_filename_component(dir \${file} DIRECTORY)
341 file(INSTALL \${file} DESTINATION ${datarootdir}/${APP_NAME_LC}/\${dir})
342 endforeach()
343 endforeach()")
344endif()
345
346if(NOT "$ENV{DESTDIR}" STREQUAL "")
347 set(DESTDIR ${CMAKE_BINARY_DIR}/$ENV{DESTDIR})
348endif()
349foreach(subdir ${build_dirs})
350 if(NOT subdir MATCHES kodi-platform)
351 string(REPLACE " " ";" subdir ${subdir})
352 list(GET subdir 0 id)
353 install(CODE "execute_process(COMMAND ${CMAKE_MAKE_PROGRAM} -C ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${id}/src/${id}-build install DESTDIR=${DESTDIR})")
354 endif()
355endforeach()
356
357# generate packages? yes please, if everything checks out
358if(CPACK_GENERATOR)
359 if(CPACK_GENERATOR STREQUAL DEB AND CORE_SYSTEM_NAME STREQUAL linux)
360 if(CMAKE_BUILD_TYPE STREQUAL Debug)
361 message(STATUS "DEB Generator: Build type is set to 'Debug'. Packaged binaries will be unstripped.")
362 endif()
363 include(${PROJECT_SOURCE_DIR}/cpack/CPackConfigDEB.cmake)
364 else()
365 message(FATAL_ERROR "DEB Generator: Can't configure CPack to generate Debian packages on non-linux systems.")
366 endif()
367endif()
diff --git a/project/cmake/scripts/linux/Macros.cmake b/project/cmake/scripts/linux/Macros.cmake
deleted file mode 100644
index 72e9d5c..0000000
--- a/project/cmake/scripts/linux/Macros.cmake
+++ /dev/null
@@ -1,95 +0,0 @@
1function(core_link_library lib wraplib)
2 set(export -Wl,--unresolved-symbols=ignore-all
3 `cat ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def`
4 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
5 set(check_arg "")
6 if(TARGET ${lib})
7 set(target ${lib})
8 set(link_lib $<TARGET_FILE:${lib}>)
9 set(check_arg ${ARGV2})
10 set(data_arg ${ARGV3})
11 else()
12 set(target ${ARGV2})
13 set(link_lib ${lib})
14 set(check_arg ${ARGV3})
15 set(data_arg ${ARGV4})
16 endif()
17
18 # wrapper has to be adapted in order to support coverage.
19 if(CMAKE_BUILD_TYPE STREQUAL Coverage)
20 set(export "")
21 endif()
22
23 if(check_arg STREQUAL export)
24 set(export ${export}
25 -Wl,--version-script=${ARGV3})
26 elseif(check_arg STREQUAL extras)
27 foreach(arg ${data_arg})
28 list(APPEND export ${arg})
29 endforeach()
30 elseif(check_arg STREQUAL archives)
31 set(extra_libs ${data_arg})
32 endif()
33
34 string(REGEX REPLACE "[ ]+" ";" _flags ${CMAKE_SHARED_LINKER_FLAGS})
35 get_filename_component(dir ${wraplib} DIRECTORY)
36 add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}
37 COMMAND ${CMAKE_COMMAND} -E make_directory ${dir}
38 COMMAND ${CMAKE_C_COMPILER}
39 ARGS ${_flags} -Wl,--whole-archive
40 "${link_lib}" ${extra_libs}
41 -Wl,--no-whole-archive -lm
42 -Wl,-soname,${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}
43 -shared -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX}
44 ${export}
45 DEPENDS ${target} wrapper.def wrapper)
46
47 get_filename_component(libname ${wraplib} NAME_WE)
48 add_custom_target(wrap_${libname} ALL DEPENDS ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX})
49 set_target_properties(wrap_${libname} PROPERTIES FOLDER lib/wrapped)
50 add_dependencies(${APP_NAME_LC}-libraries wrap_${libname})
51
52 set(LIBRARY_FILES ${LIBRARY_FILES} ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${CMAKE_SHARED_MODULE_SUFFIX} CACHE STRING "" FORCE)
53endfunction()
54
55function(find_soname lib)
56 cmake_parse_arguments(arg "REQUIRED" "" "" ${ARGN})
57
58 string(TOLOWER ${lib} liblow)
59 if(${lib}_LDFLAGS)
60 set(link_lib "${${lib}_LDFLAGS}")
61 else()
62 if(IS_ABSOLUTE "${${lib}_LIBRARIES}")
63 set(link_lib "${${lib}_LIBRARIES}")
64 else()
65 set(link_lib -l${${lib}_LIBRARIES})
66 endif()
67 endif()
68 execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-M ${link_lib}
69 COMMAND grep LOAD.*${liblow}
70 ERROR_QUIET
71 OUTPUT_VARIABLE ${lib}_FILENAME)
72 string(REPLACE "LOAD " "" ${lib}_FILENAME "${${lib}_FILENAME}")
73 string(STRIP "${${lib}_FILENAME}" ${lib}_FILENAME)
74 if(NOT ${lib}_FILENAME)
75 execute_process(COMMAND ${CMAKE_C_COMPILER} -nostdlib -o /dev/null -Wl,-t ${link_lib}
76 OUTPUT_QUIET
77 ERROR_VARIABLE _TMP_FILENAME)
78 string(REGEX MATCH ".*lib${liblow}.so" ${lib}_FILENAME ${_TMP_FILENAME})
79 endif()
80 if(${lib}_FILENAME)
81 execute_process(COMMAND objdump -p ${${lib}_FILENAME}
82 COMMAND grep SONAME.*${liblow}
83 ERROR_QUIET
84 OUTPUT_VARIABLE ${lib}_SONAME)
85 string(REPLACE "SONAME " "" ${lib}_SONAME ${${lib}_SONAME})
86 string(STRIP ${${lib}_SONAME} ${lib}_SONAME)
87 if(VERBOSE)
88 message(STATUS "${lib} soname: ${${lib}_SONAME}")
89 endif()
90 set(${lib}_SONAME ${${lib}_SONAME} PARENT_SCOPE)
91 endif()
92 if(arg_REQUIRED AND NOT ${lib}_SONAME)
93 message(FATAL_ERROR "Could not find dynamically loadable library ${lib}")
94 endif()
95endfunction()
diff --git a/project/cmake/scripts/linux/PathSetup.cmake b/project/cmake/scripts/linux/PathSetup.cmake
deleted file mode 100644
index f69711e..0000000
--- a/project/cmake/scripts/linux/PathSetup.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
1include(GNUInstallDirs)
2
3if(NOT prefix)
4 set(prefix ${CMAKE_INSTALL_PREFIX})
5else()
6 set(CMAKE_INSTALL_PREFIX ${prefix})
7endif()
8if(NOT exec_prefix)
9 set(exec_prefix ${prefix})
10endif()
11if(NOT libdir)
12 set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
13endif()
14if(NOT bindir)
15 set(bindir ${CMAKE_INSTALL_FULL_BINDIR})
16endif()
17if(NOT includedir)
18 set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
19endif()
20if(NOT datarootdir)
21 set(datarootdir ${CMAKE_INSTALL_FULL_DATAROOTDIR})
22endif()
23if(NOT datadir)
24 set(datadir ${CMAKE_INSTALL_FULL_DATADIR})
25endif()
26if(NOT docdir)
27 set(docdir ${CMAKE_INSTALL_FULL_DOCDIR})
28endif()
29
30list(APPEND final_message "-- PATH config --")
31list(APPEND final_message "Prefix: ${prefix}")
32list(APPEND final_message "Libdir: ${libdir}")
33list(APPEND final_message "Bindir: ${bindir}")
34list(APPEND final_message "Includedir: ${includedir}")
35list(APPEND final_message "Datarootdir: ${datarootdir}")
36list(APPEND final_message "Datadir: ${datadir}")
37
38set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
39 -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/osx/ArchSetup.cmake b/project/cmake/scripts/osx/ArchSetup.cmake
deleted file mode 100644
index 3047863..0000000
--- a/project/cmake/scripts/osx/ArchSetup.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
1if(NOT CMAKE_TOOLCHAIN_FILE)
2 message(FATAL_ERROR "CMAKE_TOOLCHAIN_FILE required for osx. See ${PROJECT_SOURCE_DIR}/README.md")
3endif()
4
5set(CORE_MAIN_SOURCE ${CORE_SOURCE_DIR}/xbmc/platform/posix/main.cpp
6 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/SDLMain.mm
7 ${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/SDLMain.h)
8
9set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX)
10set(SYSTEM_DEFINES -D_REENTRANT -D_FILE_DEFINED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
11 -D__STDC_CONSTANT_MACROS)
12set(PLATFORM_DIR linux)
13set(CMAKE_SYSTEM_NAME Darwin)
14if(WITH_ARCH)
15 set(ARCH ${WITH_ARCH})
16else()
17 if(CPU STREQUAL x86_64 OR CPU STREQUAL i386)
18 set(ARCH x86-osx)
19 set(NEON False)
20 else()
21 message(SEND_ERROR "Unknown CPU: ${CPU}")
22 endif()
23endif()
24
25find_package(CXX11 REQUIRED)
26
27list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${NATIVEPREFIX})
28
29list(APPEND DEPLIBS "-framework DiskArbitration" "-framework IOKit"
30 "-framework IOSurface" "-framework SystemConfiguration"
31 "-framework ApplicationServices" "-framework AppKit"
32 "-framework CoreAudio" "-framework AudioToolbox"
33 "-framework CoreGraphics" "-framework CoreMedia"
34 "-framework VideoToolbox")
diff --git a/project/cmake/scripts/osx/ExtraTargets.cmake b/project/cmake/scripts/osx/ExtraTargets.cmake
deleted file mode 100644
index ed9c089..0000000
--- a/project/cmake/scripts/osx/ExtraTargets.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
1# XBMCHelper
2add_subdirectory(${CORE_SOURCE_DIR}/tools/EventClients/Clients/OSXRemote build/XBMCHelper)
3add_dependencies(${APP_NAME_LC} XBMCHelper)
diff --git a/project/cmake/scripts/osx/Install.cmake b/project/cmake/scripts/osx/Install.cmake
deleted file mode 100644
index 3924ccf..0000000
--- a/project/cmake/scripts/osx/Install.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
1# OSX packaging
2
3set(PACKAGE_OUTPUT_DIR ${CMAKE_BINARY_DIR}/build/${CORE_BUILD_CONFIG})
4
5configure_file(${CORE_SOURCE_DIR}/xbmc/platform/darwin/osx/Info.plist.in
6 ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist @ONLY)
7execute_process(COMMAND perl -p -i -e "s/r####/${APP_SCMID}/" ${CMAKE_BINARY_DIR}/xbmc/platform/darwin/osx/Info.plist)
8
9add_custom_target(bundle
10 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_NAME_LC}> ${PACKAGE_OUTPUT_DIR}/${APP_NAME}
11 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h
12 ${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h
13 COMMAND "ACTION=build"
14 "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}"
15 "TARGET_NAME=${APP_NAME}.app"
16 "APP_NAME=${APP_NAME}"
17 "SRCROOT=${CMAKE_BINARY_DIR}"
18 ${CORE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-osx.command
19 COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
20 "TARGET_BUILD_DIR=${PACKAGE_OUTPUT_DIR}"
21 "TARGET_NAME=${APP_NAME}.app"
22 "APP_NAME=${APP_NAME}"
23 "FULL_PRODUCT_NAME=${APP_NAME}.app"
24 "SRCROOT=${CMAKE_BINARY_DIR}"
25 ${CORE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-osx.command)
26set_target_properties(bundle PROPERTIES FOLDER "Build Utilities")
27add_dependencies(bundle ${APP_NAME_LC})
28
29configure_file(${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh.in
30 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/mkdmg-osx.sh @ONLY)
31
32add_custom_target(dmg
33 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/osx/
34 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx/
35 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CORE_SOURCE_DIR}/tools/darwin/packaging/media/osx/
36 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/media/osx/
37 COMMAND ./mkdmg-osx.sh ${CORE_BUILD_CONFIG}
38 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx)
39set_target_properties(dmg PROPERTIES FOLDER "Build Utilities")
40add_dependencies(dmg bundle)
diff --git a/project/cmake/scripts/osx/Macros.cmake b/project/cmake/scripts/osx/Macros.cmake
deleted file mode 100644
index 52f87d1..0000000
--- a/project/cmake/scripts/osx/Macros.cmake
+++ /dev/null
@@ -1,118 +0,0 @@
1function(core_link_library lib wraplib)
2 if(CMAKE_GENERATOR MATCHES "Unix Makefiles" OR CMAKE_GENERATOR STREQUAL Ninja)
3 set(wrapper_obj cores/dll-loader/exports/CMakeFiles/wrapper.dir/wrapper.c.o)
4 elseif(CMAKE_GENERATOR MATCHES "Xcode")
5 set(wrapper_obj cores/dll-loader/exports/kodi.build/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/wrapper.build/Objects-$(CURRENT_VARIANT)/$(CURRENT_ARCH)/wrapper.o)
6 else()
7 message(FATAL_ERROR "Unsupported generator in core_link_library")
8 endif()
9
10 set(export -bundle -undefined dynamic_lookup -read_only_relocs suppress
11 -Wl,-alias_list,${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/cores/dll-loader/exports/wrapper.def
12 ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${wrapper_obj})
13 set(extension ${CMAKE_SHARED_MODULE_SUFFIX})
14 set(check_arg "")
15 if(TARGET ${lib})
16 set(target ${lib})
17 set(link_lib $<TARGET_FILE:${lib}>)
18 set(check_arg ${ARGV2})
19 set(data_arg ${ARGV3})
20
21 # iOS: EFFECTIVE_PLATFORM_NAME is not resolved
22 # http://public.kitware.com/pipermail/cmake/2016-March/063049.html
23 if(CORE_SYSTEM_NAME STREQUAL ios AND CMAKE_GENERATOR STREQUAL Xcode)
24 get_target_property(dir ${lib} BINARY_DIR)
25 set(link_lib ${dir}/${CORE_BUILD_CONFIG}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
26 endif()
27 else()
28 set(target ${ARGV2})
29 set(link_lib ${lib})
30 set(check_arg ${ARGV3})
31 set(data_arg ${ARGV4})
32 endif()
33 if(check_arg STREQUAL export)
34 set(export ${export}
35 -Wl,--version-script=${ARGV3})
36 elseif(check_arg STREQUAL extras)
37 foreach(arg ${data_arg})
38 list(APPEND export ${arg})
39 endforeach()
40 elseif(check_arg STREQUAL archives)
41 set(extra_libs ${data_arg})
42 endif()
43 get_filename_component(dir ${wraplib} DIRECTORY)
44
45 # We can't simply pass the linker flags to the args section of the custom command
46 # because cmake will add quotes around it (and the linker will fail due to those).
47 # We need to do this handstand first ...
48 string(REPLACE " " ";" CUSTOM_COMMAND_ARGS_LDFLAGS ${CMAKE_SHARED_LINKER_FLAGS})
49
50 add_custom_command(OUTPUT ${wraplib}-${ARCH}${extension}
51 COMMAND ${CMAKE_COMMAND} -E make_directory ${dir}
52 COMMAND ${CMAKE_C_COMPILER}
53 ARGS ${CUSTOM_COMMAND_ARGS_LDFLAGS} ${export} -Wl,-force_load ${link_lib} ${extra_libs}
54 -o ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${extension}
55 DEPENDS ${target} wrapper.def wrapper
56 VERBATIM)
57
58 get_filename_component(libname ${wraplib} NAME_WE)
59 add_custom_target(wrap_${libname} ALL DEPENDS ${wraplib}-${ARCH}${extension})
60 set_target_properties(wrap_${libname} PROPERTIES FOLDER lib/wrapped)
61 add_dependencies(${APP_NAME_LC}-libraries wrap_${libname})
62
63 set(LIBRARY_FILES ${LIBRARY_FILES} ${CMAKE_BINARY_DIR}/${wraplib}-${ARCH}${extension} CACHE STRING "" FORCE)
64endfunction()
65
66function(find_soname lib)
67 cmake_parse_arguments(arg "REQUIRED" "" "" ${ARGN})
68
69 string(TOLOWER ${lib} liblow)
70 if(${lib}_LDFLAGS)
71 set(link_lib "${${lib}_LDFLAGS}")
72 else()
73 set(link_lib "${${lib}_LIBRARIES}")
74 endif()
75
76 execute_process(COMMAND ${CMAKE_C_COMPILER} -print-search-dirs
77 COMMAND fgrep libraries:
78 COMMAND sed "s/[^=]*=\\(.*\\)/\\1/"
79 COMMAND sed "s/:/ /g"
80 ERROR_QUIET
81 OUTPUT_VARIABLE cc_lib_path
82 OUTPUT_STRIP_TRAILING_WHITESPACE)
83 execute_process(COMMAND echo ${link_lib}
84 COMMAND sed "s/-L[ ]*//g"
85 COMMAND sed "s/-l[^ ]*//g"
86 ERROR_QUIET
87 OUTPUT_VARIABLE env_lib_path
88 OUTPUT_STRIP_TRAILING_WHITESPACE)
89
90 foreach(path ${cc_lib_path} ${env_lib_path})
91 if(IS_DIRECTORY ${path})
92 execute_process(COMMAND ls -- ${path}/lib${liblow}.dylib
93 ERROR_QUIET
94 OUTPUT_VARIABLE lib_file
95 OUTPUT_STRIP_TRAILING_WHITESPACE)
96 else()
97 set(lib_file ${path})
98 endif()
99 if(lib_file)
100 # we want the path/name that is embedded in the dylib
101 execute_process(COMMAND otool -L ${lib_file}
102 COMMAND grep -v lib${liblow}.dylib
103 COMMAND grep ${liblow}
104 COMMAND awk "{V=1; print $V}"
105 ERROR_QUIET
106 OUTPUT_VARIABLE filename
107 OUTPUT_STRIP_TRAILING_WHITESPACE)
108 get_filename_component(${lib}_SONAME "${filename}" NAME)
109 if(VERBOSE)
110 message(STATUS "${lib} soname: ${${lib}_SONAME}")
111 endif()
112 endif()
113 endforeach()
114 if(arg_REQUIRED AND NOT ${lib}_SONAME)
115 message(FATAL_ERROR "Could not find dynamically loadable library ${lib}")
116 endif()
117 set(${lib}_SONAME ${${lib}_SONAME} PARENT_SCOPE)
118endfunction()
diff --git a/project/cmake/scripts/osx/PathSetup.cmake b/project/cmake/scripts/osx/PathSetup.cmake
deleted file mode 100644
index 071dfd4..0000000
--- a/project/cmake/scripts/osx/PathSetup.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
1if(NOT prefix)
2 set(prefix ${DEPENDS_PATH})
3endif()
4if(NOT exec_prefix)
5 set(exec_prefix ${prefix})
6endif()
7if(NOT libdir)
8 set(libdir ${prefix}/lib)
9endif()
10if(NOT bindir)
11 set(bindir ${prefix}/bin)
12endif()
13if(NOT includedir)
14 set(includedir ${prefix}/include)
15endif()
16if(NOT datarootdir)
17 set(datarootdir ${prefix}/share)
18endif()
19if(NOT datadir)
20 set(datadir ${datarootdir})
21endif()
22
23list(APPEND final_message "-- PATH config --")
24list(APPEND final_message "Prefix: ${prefix}")
25list(APPEND final_message "Libdir: ${libdir}")
26list(APPEND final_message "Bindir: ${bindir}")
27list(APPEND final_message "Includedir: ${includedir}")
28list(APPEND final_message "Datarootdir: ${datarootdir}")
29list(APPEND final_message "Datadir: ${datadir}")
30
31set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
32 -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/rbpi/ArchSetup.cmake b/project/cmake/scripts/rbpi/ArchSetup.cmake
deleted file mode 100644
index fa1f9f4..0000000
--- a/project/cmake/scripts/rbpi/ArchSetup.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
1set(ARCH_DEFINES -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI
2 -DHAS_OMXPLAYER -DHAVE_OMXLIB)
3set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
4 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
5set(PLATFORM_DIR linux)
6
7string(REGEX REPLACE "[ ]+" ";" SYSTEM_LDFLAGS $ENV{LDFLAGS})
8set(CMAKE_SYSTEM_NAME Linux)
9
10if(WITH_ARCH)
11 set(ARCH ${WITH_ARCH})
12else()
13 if(CPU STREQUAL arm1176jzf-s)
14 set(ARCH arm-linux-gnueabihf)
15 set(NEON False)
16 elseif(CPU MATCHES "cortex-a7" OR CPU MATCHES "cortex-a53")
17 set(ARCH arm-linux-gnueabihf)
18 set(NEON True)
19 else()
20 message(SEND_ERROR "Unknown CPU: ${CPU}")
21 endif()
22endif()
23
24find_package(CXX11 REQUIRED)
25
26set(MMAL_FOUND 1 CACHE INTERNAL "MMAL")
27set(OMX_FOUND 1 CACHE INTERNAL "OMX")
28set(OMXLIB_FOUND 1 CACHE INTERNAL "OMX")
diff --git a/project/cmake/scripts/rbpi/Install.cmake b/project/cmake/scripts/rbpi/Install.cmake
deleted file mode 120000
index 28ce012..0000000
--- a/project/cmake/scripts/rbpi/Install.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Install.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/rbpi/Macros.cmake b/project/cmake/scripts/rbpi/Macros.cmake
deleted file mode 120000
index 2fdbb25..0000000
--- a/project/cmake/scripts/rbpi/Macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Macros.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/rbpi/PathSetup.cmake b/project/cmake/scripts/rbpi/PathSetup.cmake
deleted file mode 120000
index 6786c1c..0000000
--- a/project/cmake/scripts/rbpi/PathSetup.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/PathSetup.cmake \ No newline at end of file
diff --git a/project/cmake/scripts/windows/ArchSetup.cmake b/project/cmake/scripts/windows/ArchSetup.cmake
deleted file mode 100644
index 431b641..0000000
--- a/project/cmake/scripts/windows/ArchSetup.cmake
+++ /dev/null
@@ -1,89 +0,0 @@
1# -------- Architecture settings ---------
2
3set(ARCH win32)
4
5
6# -------- Paths (mainly for find_package) ---------
7
8set(PLATFORM_DIR platform/win32)
9
10# Precompiled headers fail with per target output directory. (needs CMake 3.1)
11set(PRECOMPILEDHEADER_DIR ${PROJECT_BINARY_DIR}/${CORE_BUILD_CONFIG}/objs)
12
13set(CMAKE_SYSTEM_NAME Windows)
14list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${PROJECT_SOURCE_DIR}/../../lib/win32)
15list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${PROJECT_SOURCE_DIR}/../../lib/win32/ffmpeg)
16list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${PROJECT_SOURCE_DIR}/../../lib/win32/ffmpeg/bin)
17list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${PROJECT_SOURCE_DIR}/../BuildDependencies)
18
19set(PYTHON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/../BuildDependencies/include/python)
20
21
22# -------- Compiler options ---------
23
24add_options(CXX ALL_BUILDS "/wd\"4996\"")
25set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS)
26set(SYSTEM_DEFINES -DNOMINMAX -D_USE_32BIT_TIME_T -DHAS_DX -D__STDC_CONSTANT_MACROS
27 -DTAGLIB_STATIC -DNPT_CONFIG_ENABLE_LOGGING
28 -DPLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi"
29 -DPLT_HTTP_DEFAULT_SERVER="UPnP/1.0 DLNADOC/1.50 Kodi"
30 $<$<CONFIG:Debug>:-DD3D_DEBUG_INFO -D_ITERATOR_DEBUG_LEVEL=0>)
31
32# Make sure /FS is set for Visual Studio in order to prevent simultanious access to pdb files.
33if(CMAKE_GENERATOR MATCHES "Visual Studio")
34 set(CMAKE_CXX_FLAGS "/MP /FS ${CMAKE_CXX_FLAGS}")
35endif()
36
37# Google Test needs to use shared version of runtime libraries
38set(gtest_force_shared_crt ON CACHE STRING "" FORCE)
39
40
41# -------- Linker options ---------
42
43set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO")
44
45# For #pragma comment(lib X)
46# TODO: It would certainly be better to handle these libraries via CMake modules.
47link_directories(${PROJECT_SOURCE_DIR}/../../lib/win32/ffmpeg/bin
48 ${PROJECT_SOURCE_DIR}/../BuildDependencies/lib)
49
50# Additional libraries
51list(APPEND DEPLIBS d3d11.lib DInput8.lib DSound.lib winmm.lib Mpr.lib Iphlpapi.lib
52 PowrProf.lib setupapi.lib dwmapi.lib yajl.lib dxguid.lib DelayImp.lib)
53
54# NODEFAULTLIB option
55set(_nodefaultlibs_RELEASE libcmt)
56set(_nodefaultlibs_DEBUG libcmt msvcrt)
57foreach(_lib ${_nodefaultlibs_RELEASE})
58 set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:\"${_lib}\"")
59endforeach()
60foreach(_lib ${_nodefaultlibs_DEBUG})
61 set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:\"${_lib}\"")
62endforeach()
63
64# DELAYLOAD option
65set(_delayloadlibs zlib.dll libmysql.dll libxslt.dll dnssd.dll dwmapi.dll ssh.dll sqlite3.dll
66 avcodec-57.dll avfilter-6.dll avformat-57.dll avutil-55.dll
67 postproc-54.dll swresample-2.dll swscale-4.dll d3dcompiler_47.dll)
68foreach(_lib ${_delayloadlibs})
69 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DELAYLOAD:\"${_lib}\"")
70endforeach()
71
72# Make the Release version create a PDB
73set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
74# Minimize the size or the resulting DLLs
75set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF")
76
77
78# -------- Visual Studio options ---------
79
80if(CMAKE_GENERATOR MATCHES "Visual Studio")
81 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
82
83 # Generate a batch file that opens Visual Studio with the necessary env variables set.
84 file(WRITE ${CMAKE_BINARY_DIR}/kodi-sln.bat
85 "@echo off\n"
86 "set KODI_HOME=%~dp0\n"
87 "set PATH=%~dp0\\system\n"
88 "start %~dp0\\${PROJECT_NAME}.sln")
89endif()
diff --git a/project/cmake/scripts/windows/CFlagOverrides.cmake b/project/cmake/scripts/windows/CFlagOverrides.cmake
deleted file mode 100644
index 3158e75..0000000
--- a/project/cmake/scripts/windows/CFlagOverrides.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
1if(MSVC)
2 set(CMAKE_C_FLAGS_INIT "/MP /DWIN32 /D_WINDOWS /W3 /Zi /arch:SSE2")
3 set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Ob0 /Od /RTC1 /D_ITERATOR_DEBUG_LEVEL=0")
4 set(CMAKE_C_FLAGS_RELEASE_INIT "/MD /Ox /Ob2 /Oi /Ot /Oy /GL /DNDEBUG")
5endif()
diff --git a/project/cmake/scripts/windows/CXXFlagOverrides.cmake b/project/cmake/scripts/windows/CXXFlagOverrides.cmake
deleted file mode 100644
index 0b52dc6..0000000
--- a/project/cmake/scripts/windows/CXXFlagOverrides.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
1if(MSVC)
2 set(CMAKE_CXX_FLAGS_INIT "/MP /DWIN32 /D_WINDOWS /W3 /GR /Zi /EHsc /arch:SSE2")
3 set(CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Ob0 /Od /RTC1 /D_ITERATOR_DEBUG_LEVEL=0")
4 set(CMAKE_CXX_FLAGS_RELEASE_INIT "/MD /Ox /Ob2 /Oi /Ot /Oy /GL /DNDEBUG")
5endif()
diff --git a/project/cmake/scripts/windows/Install.cmake b/project/cmake/scripts/windows/Install.cmake
deleted file mode 100644
index e69de29..0000000
--- a/project/cmake/scripts/windows/Install.cmake
+++ /dev/null
diff --git a/project/cmake/scripts/windows/Macros.cmake b/project/cmake/scripts/windows/Macros.cmake
deleted file mode 100644
index 2d3500d..0000000
--- a/project/cmake/scripts/windows/Macros.cmake
+++ /dev/null
@@ -1,66 +0,0 @@
1function(core_link_library lib wraplib)
2 message(AUTHOR_WARNING "core_link_library is not compatible with windows.")
3endfunction()
4
5function(find_soname lib)
6 # Windows uses hardcoded dlls in xbmc/DllPaths_win32.h.
7 # Therefore the output of this function is unused.
8endfunction()
9
10# Add precompiled header to target
11# Arguments:
12# target existing target that will be set up to compile with a precompiled header
13# pch_header the precompiled header file
14# pch_source the precompiled header source file
15# Optional Arguments:
16# PCH_TARGET build precompiled header as separate target with the given name
17# so that the same precompiled header can be used for multiple libraries
18# EXCLUDE_SOURCES if not all target sources shall use the precompiled header,
19# the relevant files can be listed here
20# On return:
21# Compiles the pch_source into a precompiled header and adds the header to
22# the given target
23function(add_precompiled_header target pch_header pch_source)
24 cmake_parse_arguments(PCH "" "PCH_TARGET" "EXCLUDE_SOURCES" ${ARGN})
25
26 if(PCH_PCH_TARGET)
27 set(pch_binary ${PRECOMPILEDHEADER_DIR}/${PCH_PCH_TARGET}.pch)
28 else()
29 set(pch_binary ${PRECOMPILEDHEADER_DIR}/${target}.pch)
30 endif()
31
32 # Set compile options and dependency for sources
33 get_target_property(sources ${target} SOURCES)
34 list(REMOVE_ITEM sources ${pch_source})
35 foreach(exclude_source IN LISTS PCH_EXCLUDE_SOURCES)
36 list(REMOVE_ITEM sources ${exclude_source})
37 endforeach()
38 set_source_files_properties(${sources}
39 PROPERTIES COMPILE_FLAGS "/Yu\"${pch_header}\" /Fp\"${pch_binary}\" /FI\"${pch_header}\""
40 OBJECT_DEPENDS "${pch_binary}")
41
42 # Set compile options for precompiled header
43 if(NOT PCH_PCH_TARGET OR NOT TARGET ${PCH_PCH_TARGET}_pch)
44 set_source_files_properties(${pch_source}
45 PROPERTIES COMPILE_FLAGS "/Yc\"${pch_header}\" /Fp\"${pch_binary}\""
46 OBJECT_OUTPUTS "${pch_binary}")
47 endif()
48
49 # Compile precompiled header
50 if(PCH_PCH_TARGET)
51 # As own target for usage in multiple libraries
52 if(NOT TARGET ${PCH_PCH_TARGET}_pch)
53 add_library(${PCH_PCH_TARGET}_pch STATIC ${pch_source})
54 set_target_properties(${PCH_PCH_TARGET}_pch PROPERTIES COMPILE_PDB_NAME vc140
55 COMPILE_PDB_OUTPUT_DIRECTORY ${PRECOMPILEDHEADER_DIR}
56 FOLDER "Build Utilities")
57 endif()
58 # From VS2012 onwards, precompiled headers have to be linked against (LNK2011).
59 target_link_libraries(${target} PUBLIC ${PCH_PCH_TARGET}_pch)
60 set_target_properties(${target} PROPERTIES COMPILE_PDB_NAME vc140
61 COMPILE_PDB_OUTPUT_DIRECTORY ${PRECOMPILEDHEADER_DIR})
62 else()
63 # As part of the target
64 target_sources(${target} PRIVATE ${pch_source})
65 endif()
66endfunction()
diff --git a/project/cmake/scripts/windows/PathSetup.cmake b/project/cmake/scripts/windows/PathSetup.cmake
deleted file mode 100644
index 8550616..0000000
--- a/project/cmake/scripts/windows/PathSetup.cmake
+++ /dev/null
@@ -1,34 +0,0 @@
1if(NOT prefix)
2 set(prefix ${CMAKE_INSTALL_PREFIX})
3else()
4 set(CMAKE_INSTALL_PREFIX ${prefix})
5endif()
6if(NOT exec_prefix)
7 set(exec_prefix ${prefix})
8endif()
9if(NOT libdir)
10 set(libdir ${prefix}/lib)
11endif()
12if(NOT bindir)
13 set(bindir ${prefix}/bin)
14endif()
15if(NOT includedir)
16 set(includedir ${prefix}/include)
17endif()
18if(NOT datarootdir)
19 set(datarootdir ${prefix}/share)
20endif()
21if(NOT datadir)
22 set(datadir ${datarootdir})
23endif()
24
25list(APPEND final_message "-- PATH config --")
26list(APPEND final_message "Prefix: ${prefix}")
27list(APPEND final_message "Libdir: ${libdir}")
28list(APPEND final_message "Bindir: ${bindir}")
29list(APPEND final_message "Includedir: ${includedir}")
30list(APPEND final_message "Datarootdir: ${datarootdir}")
31list(APPEND final_message "Datadir: ${datadir}")
32
33set(PATH_DEFINES -DBIN_INSTALL_PATH=\"${libdir}/kodi\"
34 -DINSTALL_PATH=\"${datarootdir}/kodi\")
diff --git a/project/cmake/scripts/windows/tools/patch.cmake b/project/cmake/scripts/windows/tools/patch.cmake
deleted file mode 100644
index 0ef2952..0000000
--- a/project/cmake/scripts/windows/tools/patch.cmake
+++ /dev/null
@@ -1,37 +0,0 @@
1find_program(PATCH_FOUND NAMES patch patch.exe)
2if(PATCH_FOUND)
3 message(STATUS "patch utility found at ${PATCH_FOUND}")
4else()
5 set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-1")
6 set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip")
7 set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}")
8 set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE})
9
10 # download the archive containing patch.exe
11 message(STATUS "Downloading patch utility from ${PATCH_URL}...")
12 file(DOWNLOAD "${PATCH_URL}" "${PATCH_DOWNLOAD}" STATUS PATCH_DL_STATUS LOG PATCH_LOG SHOW_PROGRESS)
13 list(GET PATCH_DL_STATUS 0 PATCH_RETCODE)
14 if(NOT PATCH_RETCODE EQUAL 0)
15 message(FATAL_ERROR "ERROR downloading ${PATCH_URL} - status: ${PATCH_DL_STATUS} log: ${PATCH_LOG}")
16 endif()
17
18 # extract the archive containing patch.exe
19 execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzvf ${PATCH_DOWNLOAD}
20 WORKING_DIRECTORY ${BUILD_DIR})
21
22 # make sure the extraction worked and that patch.exe is there
23 set(PATCH_PATH ${BUILD_DIR}/${PATCH_ARCHIVE_NAME})
24 set(PATCH_BINARY_PATH ${PATCH_PATH}/bin/patch.exe)
25 if(NOT EXISTS ${PATCH_PATH} OR NOT EXISTS ${PATCH_BINARY_PATH})
26 message(FATAL_ERROR "ERROR extracting patch utility from ${PATCH_PATH}")
27 endif()
28
29 # copy patch.exe into the output directory
30 file(INSTALL ${PATCH_BINARY_PATH} DESTINATION ${ADDON_DEPENDS_PATH}/bin)
31
32 # make sure that cmake can find the copied patch.exe
33 find_program(PATCH_FOUND NAMES patch patch.exe)
34 if(NOT PATCH_FOUND)
35 message(FATAL_ERROR "ERROR installing patch utility from ${PATCH_BINARY_PATH} to ${ADDON_DEPENDS_PATH}/bin")
36 endif()
37endif()
diff --git a/project/cmake/treedata/android/subdirs.txt b/project/cmake/treedata/android/subdirs.txt
deleted file mode 100644
index 599017c..0000000
--- a/project/cmake/treedata/android/subdirs.txt
+++ /dev/null
@@ -1,17 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/input/touch input/touch
3xbmc/input/touch/generic input/touch/generic
4xbmc/network/linux network/linux
5xbmc/peripherals/bus/linux peripherals/bus/linux
6xbmc/peripherals/bus/android peripherals/bus/android
7xbmc/powermanagement/android powermanagement/android
8xbmc/storage/android storage/android
9xbmc/filesystem/posix filesystem/posix
10xbmc/utils/posix utils_posix
11xbmc/windowing/android windowing/android
12xbmc/windowing/egl windowing/egl
13xbmc/platform/posix posix
14xbmc/platform/android/activity android_activity
15xbmc/platform/android/bionic_supplement android_bionicsupplement
16xbmc/platform/android/jni android_jni
17xbmc/platform/android/loader android_loader
diff --git a/project/cmake/treedata/common/addons.txt b/project/cmake/treedata/common/addons.txt
deleted file mode 100644
index f29e086..0000000
--- a/project/cmake/treedata/common/addons.txt
+++ /dev/null
@@ -1,7 +0,0 @@
1lib/addons/library.kodi.adsp KODI_adsp
2lib/addons/library.kodi.audioengine KODI_audioengine
3lib/addons/library.kodi.game KODI_game
4lib/addons/library.kodi.guilib KODI_guilib
5lib/addons/library.kodi.peripheral KODI_peripheral
6lib/addons/library.xbmc.addon XBMC_addon
7lib/addons/library.xbmc.codec XBMC_codec
diff --git a/project/cmake/treedata/common/cores.txt b/project/cmake/treedata/common/cores.txt
deleted file mode 100644
index 8d79dd1..0000000
--- a/project/cmake/treedata/common/cores.txt
+++ /dev/null
@@ -1,9 +0,0 @@
1xbmc/cores cores
2xbmc/cores/AudioEngine cores/audioengine
3xbmc/cores/DllLoader cores/dll-loader
4xbmc/cores/DllLoader/exports cores/dll-loader/exports
5xbmc/cores/DllLoader/exports/util cores/dll-loader/exports/util
6xbmc/cores/ExternalPlayer cores/externalplayer
7xbmc/cores/paplayer cores/paplayer
8xbmc/cores/playercorefactory cores/playercorefactory
9xbmc/cores/RetroPlayer cores/RetroPlayer
diff --git a/project/cmake/treedata/common/events.txt b/project/cmake/treedata/common/events.txt
deleted file mode 100644
index 0adeb08..0000000
--- a/project/cmake/treedata/common/events.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1xbmc/events events
2xbmc/events/windows events/windows
diff --git a/project/cmake/treedata/common/externals.txt b/project/cmake/treedata/common/externals.txt
deleted file mode 100644
index e3b9ab4..0000000
--- a/project/cmake/treedata/common/externals.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1xbmc/contrib/kissfft kissfft
2lib/libexif exif
diff --git a/project/cmake/treedata/common/filesystem.txt b/project/cmake/treedata/common/filesystem.txt
deleted file mode 100644
index 1c49a74..0000000
--- a/project/cmake/treedata/common/filesystem.txt
+++ /dev/null
@@ -1,3 +0,0 @@
1xbmc/filesystem filesystem
2xbmc/filesystem/VideoDatabaseDirectory filesystem/videodatabase
3xbmc/filesystem/MusicDatabaseDirectory filesystem/musicdatabase
diff --git a/project/cmake/treedata/common/games.txt b/project/cmake/treedata/common/games.txt
deleted file mode 100644
index 03d42bc..0000000
--- a/project/cmake/treedata/common/games.txt
+++ /dev/null
@@ -1,12 +0,0 @@
1xbmc/games games
2xbmc/games/addons games/addons
3xbmc/games/addons/playback games/addons/playback
4xbmc/games/addons/savestates games/addons/savestates
5xbmc/games/controllers games/controllers
6xbmc/games/controllers/dialogs games/controllers/dialogs
7xbmc/games/controllers/guicontrols games/controllers/guicontrols
8xbmc/games/controllers/windows games/controllers/windows
9xbmc/games/dialogs games/dialogs
10xbmc/games/ports games/ports
11xbmc/games/tags games/tags
12xbmc/games/windows games/windows
diff --git a/project/cmake/treedata/common/interfaces.txt b/project/cmake/treedata/common/interfaces.txt
deleted file mode 100644
index ffd3570..0000000
--- a/project/cmake/treedata/common/interfaces.txt
+++ /dev/null
@@ -1,9 +0,0 @@
1xbmc/interfaces interfaces
2xbmc/interfaces/builtins interfaces/builtins
3xbmc/interfaces/generic interfaces/generic
4xbmc/interfaces/info interfaces/info
5xbmc/interfaces/json-rpc interfaces/json-rpc
6xbmc/interfaces/json-rpc/schema interfaces/json-rpc/schema
7xbmc/interfaces/legacy interfaces/legacy
8xbmc/interfaces/legacy/wsgi interfaces/legacy/wsgi
9xbmc/interfaces/python interfaces/python
diff --git a/project/cmake/treedata/common/music.txt b/project/cmake/treedata/common/music.txt
deleted file mode 100644
index 71f30e1..0000000
--- a/project/cmake/treedata/common/music.txt
+++ /dev/null
@@ -1,5 +0,0 @@
1xbmc/music music
2xbmc/music/dialogs music/dialogs
3xbmc/music/infoscanner music/infoscanner
4xbmc/music/tags music/tags
5xbmc/music/windows music/windows
diff --git a/project/cmake/treedata/common/network.txt b/project/cmake/treedata/common/network.txt
deleted file mode 100644
index 46da314..0000000
--- a/project/cmake/treedata/common/network.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1xbmc/network network
2xbmc/network/websocket network/websocket
diff --git a/project/cmake/treedata/common/peripherals.txt b/project/cmake/treedata/common/peripherals.txt
deleted file mode 100644
index 903b537..0000000
--- a/project/cmake/treedata/common/peripherals.txt
+++ /dev/null
@@ -1,6 +0,0 @@
1xbmc/peripherals peripherals
2xbmc/peripherals/addons peripherals/addons
3xbmc/peripherals/bus peripherals/bus
4xbmc/peripherals/bus/virtual peripherals/bus/virtual
5xbmc/peripherals/devices peripherals/devices
6xbmc/peripherals/dialogs peripherals/dialogs
diff --git a/project/cmake/treedata/common/profiles.txt b/project/cmake/treedata/common/profiles.txt
deleted file mode 100644
index fae570b..0000000
--- a/project/cmake/treedata/common/profiles.txt
+++ /dev/null
@@ -1,3 +0,0 @@
1xbmc/profiles profiles
2xbmc/profiles/dialogs profiles/dialogs
3xbmc/profiles/windows profiles/windows
diff --git a/project/cmake/treedata/common/pvr.txt b/project/cmake/treedata/common/pvr.txt
deleted file mode 100644
index 6797677..0000000
--- a/project/cmake/treedata/common/pvr.txt
+++ /dev/null
@@ -1,7 +0,0 @@
1xbmc/pvr pvr
2xbmc/pvr/addons pvr/addons
3xbmc/pvr/channels pvr/channels
4xbmc/pvr/dialogs pvr/dialogs
5xbmc/pvr/recordings pvr/recordings
6xbmc/pvr/timers pvr/timers
7xbmc/pvr/windows pvr/windows
diff --git a/project/cmake/treedata/common/settings.txt b/project/cmake/treedata/common/settings.txt
deleted file mode 100644
index c5aa2ae..0000000
--- a/project/cmake/treedata/common/settings.txt
+++ /dev/null
@@ -1,4 +0,0 @@
1xbmc/settings settings
2xbmc/settings/dialogs settings/dialogs
3xbmc/settings/lib settings/lib
4xbmc/settings/windows settings/windows
diff --git a/project/cmake/treedata/common/subdirs.txt b/project/cmake/treedata/common/subdirs.txt
deleted file mode 100644
index af91611..0000000
--- a/project/cmake/treedata/common/subdirs.txt
+++ /dev/null
@@ -1,41 +0,0 @@
1xbmc xbmc
2xbmc/addons addons
3xbmc/addons/binary/interfaces addonsBinaryInterfaces
4xbmc/addons/binary/interfaces/api1/Addon api1AddonCallbacks_Addon
5xbmc/addons/binary/interfaces/api1/AudioDSP api1AddonCallbacks_AudioDSP
6xbmc/addons/binary/interfaces/api1/AudioEngine api1AddonCallbacks_AudioEngine
7xbmc/addons/binary/interfaces/api1/Codec api1AddonCallbacks_Codec
8xbmc/addons/binary/interfaces/api1/Game api1AddonCallbacks_Game
9xbmc/addons/binary/interfaces/api1/GUI api1AddonCallbacks_GUI
10xbmc/addons/binary/interfaces/api1/InputStream api1AddonCallbacks_InputStream
11xbmc/addons/binary/interfaces/api1/Peripheral api1AddonCallbacks_Peripheral
12xbmc/addons/binary/interfaces/api1/PVR api1AddonCallbacks_PVR
13xbmc/commons commons
14xbmc/dbwrappers dbwrappers
15xbmc/dialogs dialogs
16xbmc/epg epg
17xbmc/guilib guilib
18xbmc/input input
19xbmc/input/joysticks input/joysticks
20xbmc/input/joysticks/dialogs input/joysticks/dialogs
21xbmc/input/joysticks/generic input/joysticks/generic
22xbmc/input/keyboard input/keyboard
23xbmc/input/keyboard/generic input/keyboard/generic
24xbmc/input/mouse input/mouse
25xbmc/input/mouse/generic input/mouse/generic
26xbmc/listproviders listproviders
27xbmc/media media
28xbmc/messaging messaging
29xbmc/messaging/helpers messagingHelpers
30xbmc/pictures pictures
31xbmc/platform platform
32xbmc/playlists playlists
33xbmc/powermanagement powermanagement
34xbmc/programs programs
35xbmc/rendering rendering
36xbmc/storage storage
37xbmc/threads threads
38xbmc/utils utils
39xbmc/view view
40xbmc/windowing windowing
41xbmc/windows windows
diff --git a/project/cmake/treedata/common/tests.txt b/project/cmake/treedata/common/tests.txt
deleted file mode 100644
index 358bc4d..0000000
--- a/project/cmake/treedata/common/tests.txt
+++ /dev/null
@@ -1,10 +0,0 @@
1xbmc/test test
2xbmc/addons/test test/addons
3xbmc/filesystem/test test/filesystem
4xbmc/interfaces/python/test test/python
5xbmc/music/tags/test test/music_tags
6xbmc/network/test test/network
7xbmc/threads/test test/threads
8xbmc/utils/test test/utils
9xbmc/video/test test/video
10xbmc/cores/AudioEngine/Sinks/test test/audioengine_sinks
diff --git a/project/cmake/treedata/common/video.txt b/project/cmake/treedata/common/video.txt
deleted file mode 100644
index e7855a0..0000000
--- a/project/cmake/treedata/common/video.txt
+++ /dev/null
@@ -1,5 +0,0 @@
1xbmc/video video
2xbmc/video/dialogs video/dialogs
3xbmc/video/jobs video/jobs
4xbmc/video/videosync video/sync
5xbmc/video/windows video/windows
diff --git a/project/cmake/treedata/common/videoplayer.txt b/project/cmake/treedata/common/videoplayer.txt
deleted file mode 100644
index 8c8d45d..0000000
--- a/project/cmake/treedata/common/videoplayer.txt
+++ /dev/null
@@ -1,12 +0,0 @@
1xbmc/cores/VideoPlayer cores/VideoPlayer
2xbmc/cores/VideoPlayer/DVDCodecs cores/VideoPlayer/codecs
3xbmc/cores/VideoPlayer/DVDCodecs/Audio cores/VideoPlayer/codecs/audio
4xbmc/cores/VideoPlayer/DVDCodecs/Overlay cores/VideoPlayer/codecs/overlay
5xbmc/cores/VideoPlayer/DVDCodecs/Video cores/VideoPlayer/codecs/video
6xbmc/cores/VideoPlayer/DVDDemuxers cores/VideoPlayer/demuxers
7xbmc/cores/VideoPlayer/DVDInputStreams cores/VideoPlayer/inputstreams
8xbmc/cores/VideoPlayer/DVDSubtitles cores/VideoPlayer/subtitles
9xbmc/cores/VideoPlayer/Process cores/VideoPlayer/process
10xbmc/cores/VideoPlayer/VideoRenderers cores/VideoPlayer/videorenderers
11xbmc/cores/VideoPlayer/VideoRenderers/VideoShaders cores/VideoPlayer/videorenderers/shaders
12xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender cores/VideoPlayer/videorenderers/hwdec
diff --git a/project/cmake/treedata/freebsd/subdirs.txt b/project/cmake/treedata/freebsd/subdirs.txt
deleted file mode 100644
index df2fa76..0000000
--- a/project/cmake/treedata/freebsd/subdirs.txt
+++ /dev/null
@@ -1,13 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/linux/sse4 sse4
3xbmc/input/linux input/linux
4xbmc/input/touch input/touch
5xbmc/input/touch/generic input/touch/generic
6xbmc/network/linux network/linux
7xbmc/peripherals/bus/linux peripherals/bus/linux
8xbmc/powermanagement/linux powermanagement/linux
9xbmc/storage/linux storage/linux
10xbmc/filesystem/posix filesystem/posix
11xbmc/utils/posix utils_posix
12xbmc/platform/posix posix
13xbmc/freebsd freebsdsupport
diff --git a/project/cmake/treedata/ios/subdirs.txt b/project/cmake/treedata/ios/subdirs.txt
deleted file mode 100644
index b681ed5..0000000
--- a/project/cmake/treedata/ios/subdirs.txt
+++ /dev/null
@@ -1,15 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/input/touch input/touch
3xbmc/input/touch/generic input/touch/generic
4xbmc/network/linux network/linux
5xbmc/network/osx network/osx
6xbmc/peripherals/bus/osx peripherals/bus/osx
7xbmc/powermanagement/osx powermanagement/osx
8xbmc/storage/osx storage/osx
9xbmc/platform/posix posix
10xbmc/platform/darwin platform_darwin
11xbmc/platform/darwin/ios platform_ios
12xbmc/platform/darwin/ios-common platform_ios-common
13xbmc/filesystem/posix filesystem/posix
14xbmc/utils/posix utils_posix
15xbmc/windowing/osx windowing/osx
diff --git a/project/cmake/treedata/linux/subdirs.txt b/project/cmake/treedata/linux/subdirs.txt
deleted file mode 100644
index 2dc8045..0000000
--- a/project/cmake/treedata/linux/subdirs.txt
+++ /dev/null
@@ -1,13 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/linux/sse4 sse4
3xbmc/input/linux input/linux
4xbmc/input/touch input/touch
5xbmc/input/touch/generic input/touch/generic
6xbmc/network/linux network/linux
7xbmc/peripherals/bus/linux peripherals/bus/linux
8xbmc/powermanagement/linux powermanagement/linux
9xbmc/storage/linux storage/linux
10xbmc/filesystem/posix filesystem/posix
11xbmc/utils/posix utils_posix
12xbmc/windowing/egl windowing/egl
13xbmc/platform/posix posix
diff --git a/project/cmake/treedata/optional/common/X11.txt b/project/cmake/treedata/optional/common/X11.txt
deleted file mode 100644
index f4afa57..0000000
--- a/project/cmake/treedata/optional/common/X11.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/windowing/X11 windowing/X11 # X11
diff --git a/project/cmake/treedata/optional/common/cdrip.txt b/project/cmake/treedata/optional/common/cdrip.txt
deleted file mode 100644
index 79b5390..0000000
--- a/project/cmake/treedata/optional/common/cdrip.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/cdrip cdrip # OPTICAL
diff --git a/project/cmake/treedata/optional/common/dacp.txt b/project/cmake/treedata/optional/common/dacp.txt
deleted file mode 100644
index fd225c2..0000000
--- a/project/cmake/treedata/optional/common/dacp.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/network/dacp network/dacp # AIRTUNES
diff --git a/project/cmake/treedata/optional/common/mir.txt b/project/cmake/treedata/optional/common/mir.txt
deleted file mode 100644
index d681e8b..0000000
--- a/project/cmake/treedata/optional/common/mir.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/windowing/mir windowing/mir # MIR
diff --git a/project/cmake/treedata/optional/common/nonfree.txt b/project/cmake/treedata/optional/common/nonfree.txt
deleted file mode 100644
index 470ed59..0000000
--- a/project/cmake/treedata/optional/common/nonfree.txt
+++ /dev/null
@@ -1 +0,0 @@
1lib/UnrarXLib unrarxlib # NONFREE
diff --git a/project/cmake/treedata/optional/common/opengl.txt b/project/cmake/treedata/optional/common/opengl.txt
deleted file mode 100644
index b88ad7a..0000000
--- a/project/cmake/treedata/optional/common/opengl.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/rendering/gl rendering/gl # OPENGL
diff --git a/project/cmake/treedata/optional/common/opengles.txt b/project/cmake/treedata/optional/common/opengles.txt
deleted file mode 100644
index 6a223a1..0000000
--- a/project/cmake/treedata/optional/common/opengles.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/rendering/gles rendering/gles # OPENGLES
diff --git a/project/cmake/treedata/optional/common/upnp.txt b/project/cmake/treedata/optional/common/upnp.txt
deleted file mode 100644
index 5589b80..0000000
--- a/project/cmake/treedata/optional/common/upnp.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1lib/libUPnP upnp # UPNP
2xbmc/network/upnp network/upnp # UPNP
diff --git a/project/cmake/treedata/optional/common/webserver.txt b/project/cmake/treedata/optional/common/webserver.txt
deleted file mode 100644
index b492006..0000000
--- a/project/cmake/treedata/optional/common/webserver.txt
+++ /dev/null
@@ -1,2 +0,0 @@
1xbmc/network/httprequesthandler network/httprequesthandler # MICROHTTPD
2xbmc/network/httprequesthandler/python network/httprequesthandler/python # MICROHTTPD
diff --git a/project/cmake/treedata/osx/subdirs.txt b/project/cmake/treedata/osx/subdirs.txt
deleted file mode 100644
index f0fc5c5..0000000
--- a/project/cmake/treedata/osx/subdirs.txt
+++ /dev/null
@@ -1,12 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/network/linux network/linux
3xbmc/network/osx network/osx
4xbmc/peripherals/bus/osx peripherals/bus/osx
5xbmc/powermanagement/osx powermanagement/osx
6xbmc/storage/osx storage/osx
7xbmc/platform/posix posix
8xbmc/platform/darwin platform_darwin
9xbmc/platform/darwin/osx platform_osx
10xbmc/filesystem/posix filesystem/posix
11xbmc/utils/posix utils_posix
12xbmc/windowing/osx windowing/osx
diff --git a/project/cmake/treedata/rbpi/omxplayer.txt b/project/cmake/treedata/rbpi/omxplayer.txt
deleted file mode 100644
index d56f1df..0000000
--- a/project/cmake/treedata/rbpi/omxplayer.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/cores/omxplayer cores/omxplayer
diff --git a/project/cmake/treedata/rbpi/subdirs.txt b/project/cmake/treedata/rbpi/subdirs.txt
deleted file mode 100644
index 866ec00..0000000
--- a/project/cmake/treedata/rbpi/subdirs.txt
+++ /dev/null
@@ -1,12 +0,0 @@
1xbmc/linux linuxsupport
2xbmc/input/linux input/linux
3xbmc/input/touch input/touch
4xbmc/input/touch/generic input/touch/generic
5xbmc/network/linux network/linux
6xbmc/peripherals/bus/linux peripherals/bus/linux
7xbmc/powermanagement/linux powermanagement/linux
8xbmc/storage/linux storage/linux
9xbmc/filesystem/posix filesystem/posix
10xbmc/utils/posix utils_posix
11xbmc/platform/posix posix
12xbmc/windowing/egl windowing/egl # EGL
diff --git a/project/cmake/treedata/windows/externals.txt b/project/cmake/treedata/windows/externals.txt
deleted file mode 100644
index 989677e..0000000
--- a/project/cmake/treedata/windows/externals.txt
+++ /dev/null
@@ -1 +0,0 @@
1lib/win32/Effects11 Effects11
diff --git a/project/cmake/treedata/windows/subdirs.txt b/project/cmake/treedata/windows/subdirs.txt
deleted file mode 100644
index e52d2f6..0000000
--- a/project/cmake/treedata/windows/subdirs.txt
+++ /dev/null
@@ -1,14 +0,0 @@
1xbmc/platform/win32 platform_win32
2xbmc/input/windows input/windows
3xbmc/input/touch input/touch
4xbmc/input/touch/generic input/touch/generic
5xbmc/network/windows network/windows
6xbmc/network/mdns network/mdns
7xbmc/peripherals/bus/win32 peripherals/bus/win32
8xbmc/powermanagement/windows powermanagement/windows
9xbmc/storage/windows storage/windows
10xbmc/filesystem/win32 filesystem/win32
11xbmc/utils/win32 utils_win32
12xbmc/rendering/dx rendering_dx
13xbmc/threads/platform/win threads_win
14xbmc/windowing/windows windowing/windows