From f44ecaa4f27e7538ddcad66d40e543bffa2d2d86 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 4 Jun 2017 16:57:49 +0200 Subject: sync with upstream --- cmake/KodiConfig.cmake.in | 35 + cmake/README.md | 299 ++ cmake/addons/CMakeLists.txt | 439 +++ cmake/addons/README.md | 65 + cmake/addons/addons/pvr.dvbviewer/platforms.txt | 1 + .../addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt | 1 + cmake/addons/bootstrap/Bootstrap.cmake | 39 + cmake/addons/bootstrap/CMakeLists.txt | 93 + cmake/addons/bootstrap/README.md | 48 + .../bootstrap/repositories/binary-addons.txt | 1 + cmake/addons/depends/CMakeLists.txt | 41 + cmake/addons/depends/README | 61 + cmake/addons/depends/common/kodi-platform/deps.txt | 2 + .../depends/common/kodi-platform/kodi-platform.txt | 1 + .../depends/common/p8-platform/p8-platform.txt | 1 + cmake/addons/depends/common/tinyxml/CMakeLists.txt | 22 + cmake/addons/depends/common/tinyxml/tinyxml.txt | 1 + cmake/addons/depends/windows/CMakeLists.txt | 52 + cmake/addons/depends/windows/Install.cmake | 24 + cmake/addons/depends/windows/README | 19 + .../depends/windows/cmake/mingw/CMakeLists.txt | 37 + .../windows/cmake/mingw/MinGWConfig.cmake.in | 3 + .../windows/cmake/mingw/Toolchain_mingw32.cmake.in | 17 + cmake/addons/depends/windows/cmake/mingw/mingw.txt | 1 + .../depends/windows/cmake/mingw/mingw32-cmd.bat.in | 6 + .../depends/windows/cmake/mingw/noinstall.txt | 0 .../depends/windows/cmake/msys/CMakeLists.txt | 5 + cmake/addons/depends/windows/cmake/msys/msys.txt | 1 + .../depends/windows/cmake/msys/noinstall.txt | 0 cmake/addons/depends/windows/prebuilt/README | 21 + cmake/cpack/CPackConfigDEB.cmake | 349 +++ cmake/cpack/deb/NEWS.Debian | 24 + cmake/cpack/deb/copyright | 3126 ++++++++++++++++++++ cmake/cpack/deb/lintian/overrides/kodi | 1 + cmake/cpack/deb/menu/kodi | 2 + cmake/cpack/deb/package-description.txt | 16 + cmake/cpack/deb/packages/kodi-addon-dev.txt.in | 25 + cmake/cpack/deb/packages/kodi-bin.txt.in | 25 + .../deb/packages/kodi-eventclients-common.txt.in | 25 + .../deb/packages/kodi-eventclients-dev.txt.in | 25 + .../deb/packages/kodi-eventclients-ps3.txt.in | 25 + .../packages/kodi-eventclients-wiiremote.txt.in | 25 + .../packages/kodi-eventclients-xbmc-send.txt.in | 25 + .../deb/packages/kodi-tools-texturepacker.txt.in | 25 + cmake/cpack/deb/packages/kodi.txt.in | 25 + cmake/cpack/deb/postinst | 5 + cmake/cpack/deb/postrm | 3 + cmake/installdata/common/addons.txt | 45 + cmake/installdata/common/common.txt | 12 + cmake/installdata/ios/certificates.txt | 1 + cmake/installdata/ios/fontconfig.txt | 1 + cmake/installdata/ios/packaging.txt | 3 + cmake/installdata/ios/runtime.txt | 2 + cmake/installdata/linux/lirc.txt | 1 + cmake/installdata/osx/certificates.txt | 1 + cmake/installdata/osx/packaging.txt | 4 + cmake/installdata/osx/runtime.txt | 2 + cmake/installdata/rbpi/lirc.txt | 1 + cmake/installdata/test-reference-data.txt | 10 + cmake/installdata/windows/addons.txt | 1 + cmake/installdata/windows/dlls.txt | 3 + cmake/installdata/windows/irss.txt | 2 + cmake/installdata/windows/python.txt | 2 + cmake/modules/FindAML.cmake | 35 + cmake/modules/FindASS.cmake | 44 + cmake/modules/FindAlsa.cmake | 46 + cmake/modules/FindAvahi.cmake | 63 + cmake/modules/FindBluetooth.cmake | 44 + cmake/modules/FindBluray.cmake | 58 + cmake/modules/FindCAP.cmake | 44 + cmake/modules/FindCCache.cmake | 18 + cmake/modules/FindCEC.cmake | 68 + cmake/modules/FindCWiid.cmake | 44 + cmake/modules/FindCXX11.cmake | 18 + cmake/modules/FindCdio.cmake | 45 + cmake/modules/FindCpluff.cmake | 62 + cmake/modules/FindCrossGUID.cmake | 78 + cmake/modules/FindCurl.cmake | 83 + cmake/modules/FindD3DX11Effects.cmake | 30 + cmake/modules/FindDBus.cmake | 52 + cmake/modules/FindEGL.cmake | 48 + cmake/modules/FindEMBEDDED.cmake | 16 + cmake/modules/FindFFMPEG.cmake | 293 ++ cmake/modules/FindFmt.cmake | 57 + cmake/modules/FindFreeType.cmake | 45 + cmake/modules/FindFriBidi.cmake | 48 + cmake/modules/FindGIF.cmake | 46 + cmake/modules/FindGLX.cmake | 44 + cmake/modules/FindIMX.cmake | 38 + cmake/modules/FindJsonSchemaBuilder.cmake | 26 + cmake/modules/FindLCMS2.cmake | 48 + cmake/modules/FindLibDRM.cmake | 45 + cmake/modules/FindLibDvd.cmake | 219 ++ cmake/modules/FindLibUSB.cmake | 45 + cmake/modules/FindLibXml2.cmake | 84 + cmake/modules/FindLzo2.cmake | 37 + cmake/modules/FindMDNS.cmake | 47 + cmake/modules/FindMMAL.cmake | 55 + cmake/modules/FindMicroHttpd.cmake | 51 + cmake/modules/FindMir.cmake | 33 + cmake/modules/FindMySqlClient.cmake | 69 + cmake/modules/FindNFS.cmake | 58 + cmake/modules/FindOpenGLES.cmake | 48 + cmake/modules/FindOpenGl.cmake | 43 + cmake/modules/FindPCRE.cmake | 87 + cmake/modules/FindPlist.cmake | 58 + cmake/modules/FindPulseAudio.cmake | 68 + cmake/modules/FindPython.cmake | 39 + cmake/modules/FindRapidJSON.cmake | 40 + cmake/modules/FindSSE.cmake | 156 + cmake/modules/FindSSH.cmake | 47 + cmake/modules/FindSWIG.cmake | 29 + cmake/modules/FindSdl.cmake | 29 + cmake/modules/FindShairplay.cmake | 63 + cmake/modules/FindSmbClient.cmake | 47 + cmake/modules/FindSndio.cmake | 34 + cmake/modules/FindSqlite3.cmake | 44 + cmake/modules/FindTagLib.cmake | 60 + cmake/modules/FindTexturePacker.cmake | 41 + cmake/modules/FindTinyXML.cmake | 68 + cmake/modules/FindUDEV.cmake | 47 + cmake/modules/FindUUID.cmake | 43 + cmake/modules/FindVAAPI.cmake | 72 + cmake/modules/FindVDPAU.cmake | 47 + cmake/modules/FindX.cmake | 57 + cmake/modules/FindXRandR.cmake | 47 + cmake/modules/FindXSLT.cmake | 50 + cmake/modules/FindYajl.cmake | 62 + cmake/modules/FindZip.cmake | 46 + cmake/modules/LDGOLD.cmake | 45 + cmake/modules/extra/ECMEnableSanitizers.cmake | 149 + cmake/platform/android/android.cmake | 1 + cmake/platform/android/defines.txt | 1 + cmake/platform/freebsd/defines.txt | 1 + cmake/platform/ios/defines.txt | 1 + cmake/platform/ios/ios.cmake | 1 + cmake/platform/linux/aml.cmake | 1 + cmake/platform/linux/defines.txt | 1 + cmake/platform/linux/imx.cmake | 1 + cmake/platform/linux/mir.cmake | 2 + cmake/platform/linux/x11.cmake | 2 + cmake/platform/osx/defines.txt | 1 + cmake/platform/osx/osx.cmake | 1 + cmake/platform/rbpi/defines.txt | 1 + cmake/platform/rbpi/rbpi.cmake | 1 + cmake/platform/windows/defines.txt | 1 + cmake/platform/windows/windows.cmake | 1 + cmake/scripts/android/ArchSetup.cmake | 34 + cmake/scripts/android/Install.cmake | 137 + cmake/scripts/android/Macros.cmake | 1 + cmake/scripts/android/PathSetup.cmake | 33 + cmake/scripts/common/AddOptions.cmake | 78 + cmake/scripts/common/AddonHelpers.cmake | 378 +++ cmake/scripts/common/ArchSetup.cmake | 159 + cmake/scripts/common/CMakeHelpers.cmake | 54 + cmake/scripts/common/CheckCommits.cmake | 75 + cmake/scripts/common/CheckTargetPlatform.cmake | 67 + cmake/scripts/common/GenerateVersionedFiles.cmake | 38 + cmake/scripts/common/GeneratorSetup.cmake | 49 + cmake/scripts/common/HandleDepends.cmake | 252 ++ cmake/scripts/common/Macros.cmake | 722 +++++ cmake/scripts/common/PrepareEnv.cmake | 65 + cmake/scripts/common/ProjectMacros.cmake | 89 + cmake/scripts/common/Uninstall.cmake | 22 + cmake/scripts/freebsd/ArchSetup.cmake | 16 + cmake/scripts/freebsd/Install.cmake | 1 + cmake/scripts/freebsd/Macros.cmake | 1 + cmake/scripts/freebsd/PathSetup.cmake | 1 + cmake/scripts/ios/ArchSetup.cmake | 57 + cmake/scripts/ios/Install.cmake | 86 + cmake/scripts/ios/Macros.cmake | 1 + cmake/scripts/ios/PathSetup.cmake | 1 + cmake/scripts/linux/ArchSetup.cmake | 46 + cmake/scripts/linux/CodeCoverage.cmake | 97 + cmake/scripts/linux/ExtraTargets.cmake | 15 + cmake/scripts/linux/Install.cmake | 312 ++ cmake/scripts/linux/Macros.cmake | 95 + cmake/scripts/linux/PathSetup.cmake | 40 + cmake/scripts/osx/ArchSetup.cmake | 37 + cmake/scripts/osx/ExtraTargets.cmake | 3 + cmake/scripts/osx/Install.cmake | 40 + cmake/scripts/osx/Macros.cmake | 118 + cmake/scripts/osx/PathSetup.cmake | 32 + cmake/scripts/rbpi/ArchSetup.cmake | 35 + cmake/scripts/rbpi/ExtraTargets.cmake | 1 + cmake/scripts/rbpi/Install.cmake | 1 + cmake/scripts/rbpi/Macros.cmake | 1 + cmake/scripts/rbpi/PathSetup.cmake | 1 + cmake/scripts/windows/ArchSetup.cmake | 112 + cmake/scripts/windows/CFlagOverrides.cmake | 5 + cmake/scripts/windows/CXXFlagOverrides.cmake | 5 + cmake/scripts/windows/Install.cmake | 0 cmake/scripts/windows/Macros.cmake | 66 + cmake/scripts/windows/PathSetup.cmake | 34 + cmake/scripts/windows/tools/patch.cmake | 37 + cmake/treedata/android/subdirs.txt | 15 + cmake/treedata/common/addons.txt | 0 cmake/treedata/common/cores.txt | 9 + cmake/treedata/common/events.txt | 2 + cmake/treedata/common/externals.txt | 1 + cmake/treedata/common/filesystem.txt | 3 + cmake/treedata/common/games.txt | 12 + cmake/treedata/common/interfaces.txt | 6 + cmake/treedata/common/music.txt | 5 + cmake/treedata/common/network.txt | 2 + cmake/treedata/common/peripherals.txt | 6 + cmake/treedata/common/profiles.txt | 3 + cmake/treedata/common/pvr.txt | 8 + cmake/treedata/common/settings.txt | 4 + cmake/treedata/common/subdirs.txt | 35 + cmake/treedata/common/tests.txt | 10 + cmake/treedata/common/video.txt | 4 + cmake/treedata/common/videoplayer.txt | 12 + cmake/treedata/freebsd/subdirs.txt | 13 + cmake/treedata/ios/subdirs.txt | 15 + cmake/treedata/linux/subdirs.txt | 13 + cmake/treedata/optional/common/X.txt | 1 + cmake/treedata/optional/common/aml.txt | 2 + cmake/treedata/optional/common/cdrip.txt | 1 + cmake/treedata/optional/common/dacp.txt | 1 + cmake/treedata/optional/common/mdns.txt | 1 + cmake/treedata/optional/common/mir.txt | 1 + cmake/treedata/optional/common/opengl.txt | 1 + cmake/treedata/optional/common/opengles.txt | 1 + cmake/treedata/optional/common/python.txt | 4 + cmake/treedata/optional/common/upnp.txt | 2 + cmake/treedata/optional/common/webserver.txt | 2 + cmake/treedata/osx/subdirs.txt | 12 + cmake/treedata/rbpi/omxplayer.txt | 1 + cmake/treedata/rbpi/subdirs.txt | 12 + cmake/treedata/windows/externals.txt | 1 + cmake/treedata/windows/subdirs.txt | 14 + 232 files changed, 12931 insertions(+) create mode 100644 cmake/KodiConfig.cmake.in create mode 100644 cmake/README.md create mode 100644 cmake/addons/CMakeLists.txt create mode 100644 cmake/addons/README.md create mode 100644 cmake/addons/addons/pvr.dvbviewer/platforms.txt create mode 100644 cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt create mode 100644 cmake/addons/bootstrap/Bootstrap.cmake create mode 100644 cmake/addons/bootstrap/CMakeLists.txt create mode 100644 cmake/addons/bootstrap/README.md create mode 100644 cmake/addons/bootstrap/repositories/binary-addons.txt create mode 100644 cmake/addons/depends/CMakeLists.txt create mode 100644 cmake/addons/depends/README create mode 100644 cmake/addons/depends/common/kodi-platform/deps.txt create mode 100644 cmake/addons/depends/common/kodi-platform/kodi-platform.txt create mode 100644 cmake/addons/depends/common/p8-platform/p8-platform.txt create mode 100644 cmake/addons/depends/common/tinyxml/CMakeLists.txt create mode 100644 cmake/addons/depends/common/tinyxml/tinyxml.txt create mode 100644 cmake/addons/depends/windows/CMakeLists.txt create mode 100644 cmake/addons/depends/windows/Install.cmake create mode 100644 cmake/addons/depends/windows/README create mode 100644 cmake/addons/depends/windows/cmake/mingw/CMakeLists.txt create mode 100644 cmake/addons/depends/windows/cmake/mingw/MinGWConfig.cmake.in create mode 100644 cmake/addons/depends/windows/cmake/mingw/Toolchain_mingw32.cmake.in create mode 100644 cmake/addons/depends/windows/cmake/mingw/mingw.txt create mode 100644 cmake/addons/depends/windows/cmake/mingw/mingw32-cmd.bat.in create mode 100644 cmake/addons/depends/windows/cmake/mingw/noinstall.txt create mode 100644 cmake/addons/depends/windows/cmake/msys/CMakeLists.txt create mode 100644 cmake/addons/depends/windows/cmake/msys/msys.txt create mode 100644 cmake/addons/depends/windows/cmake/msys/noinstall.txt create mode 100644 cmake/addons/depends/windows/prebuilt/README create mode 100644 cmake/cpack/CPackConfigDEB.cmake create mode 100644 cmake/cpack/deb/NEWS.Debian create mode 100644 cmake/cpack/deb/copyright create mode 100644 cmake/cpack/deb/lintian/overrides/kodi create mode 100644 cmake/cpack/deb/menu/kodi create mode 100644 cmake/cpack/deb/package-description.txt create mode 100644 cmake/cpack/deb/packages/kodi-addon-dev.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-bin.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-eventclients-common.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-eventclients-dev.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-eventclients-ps3.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-eventclients-wiiremote.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-eventclients-xbmc-send.txt.in create mode 100644 cmake/cpack/deb/packages/kodi-tools-texturepacker.txt.in create mode 100644 cmake/cpack/deb/packages/kodi.txt.in create mode 100755 cmake/cpack/deb/postinst create mode 100755 cmake/cpack/deb/postrm create mode 100644 cmake/installdata/common/addons.txt create mode 100644 cmake/installdata/common/common.txt create mode 100644 cmake/installdata/ios/certificates.txt create mode 100644 cmake/installdata/ios/fontconfig.txt create mode 100644 cmake/installdata/ios/packaging.txt create mode 100644 cmake/installdata/ios/runtime.txt create mode 100644 cmake/installdata/linux/lirc.txt create mode 100644 cmake/installdata/osx/certificates.txt create mode 100644 cmake/installdata/osx/packaging.txt create mode 100644 cmake/installdata/osx/runtime.txt create mode 120000 cmake/installdata/rbpi/lirc.txt create mode 100644 cmake/installdata/test-reference-data.txt create mode 100644 cmake/installdata/windows/addons.txt create mode 100644 cmake/installdata/windows/dlls.txt create mode 100644 cmake/installdata/windows/irss.txt create mode 100644 cmake/installdata/windows/python.txt create mode 100644 cmake/modules/FindAML.cmake create mode 100644 cmake/modules/FindASS.cmake create mode 100644 cmake/modules/FindAlsa.cmake create mode 100644 cmake/modules/FindAvahi.cmake create mode 100644 cmake/modules/FindBluetooth.cmake create mode 100644 cmake/modules/FindBluray.cmake create mode 100644 cmake/modules/FindCAP.cmake create mode 100644 cmake/modules/FindCCache.cmake create mode 100644 cmake/modules/FindCEC.cmake create mode 100644 cmake/modules/FindCWiid.cmake create mode 100644 cmake/modules/FindCXX11.cmake create mode 100644 cmake/modules/FindCdio.cmake create mode 100644 cmake/modules/FindCpluff.cmake create mode 100644 cmake/modules/FindCrossGUID.cmake create mode 100644 cmake/modules/FindCurl.cmake create mode 100644 cmake/modules/FindD3DX11Effects.cmake create mode 100644 cmake/modules/FindDBus.cmake create mode 100644 cmake/modules/FindEGL.cmake create mode 100644 cmake/modules/FindEMBEDDED.cmake create mode 100644 cmake/modules/FindFFMPEG.cmake create mode 100644 cmake/modules/FindFmt.cmake create mode 100644 cmake/modules/FindFreeType.cmake create mode 100644 cmake/modules/FindFriBidi.cmake create mode 100644 cmake/modules/FindGIF.cmake create mode 100644 cmake/modules/FindGLX.cmake create mode 100644 cmake/modules/FindIMX.cmake create mode 100644 cmake/modules/FindJsonSchemaBuilder.cmake create mode 100644 cmake/modules/FindLCMS2.cmake create mode 100644 cmake/modules/FindLibDRM.cmake create mode 100644 cmake/modules/FindLibDvd.cmake create mode 100644 cmake/modules/FindLibUSB.cmake create mode 100644 cmake/modules/FindLibXml2.cmake create mode 100644 cmake/modules/FindLzo2.cmake create mode 100644 cmake/modules/FindMDNS.cmake create mode 100644 cmake/modules/FindMMAL.cmake create mode 100644 cmake/modules/FindMicroHttpd.cmake create mode 100644 cmake/modules/FindMir.cmake create mode 100644 cmake/modules/FindMySqlClient.cmake create mode 100644 cmake/modules/FindNFS.cmake create mode 100644 cmake/modules/FindOpenGLES.cmake create mode 100644 cmake/modules/FindOpenGl.cmake create mode 100644 cmake/modules/FindPCRE.cmake create mode 100644 cmake/modules/FindPlist.cmake create mode 100644 cmake/modules/FindPulseAudio.cmake create mode 100644 cmake/modules/FindPython.cmake create mode 100644 cmake/modules/FindRapidJSON.cmake create mode 100644 cmake/modules/FindSSE.cmake create mode 100644 cmake/modules/FindSSH.cmake create mode 100644 cmake/modules/FindSWIG.cmake create mode 100644 cmake/modules/FindSdl.cmake create mode 100644 cmake/modules/FindShairplay.cmake create mode 100644 cmake/modules/FindSmbClient.cmake create mode 100644 cmake/modules/FindSndio.cmake create mode 100644 cmake/modules/FindSqlite3.cmake create mode 100644 cmake/modules/FindTagLib.cmake create mode 100644 cmake/modules/FindTexturePacker.cmake create mode 100644 cmake/modules/FindTinyXML.cmake create mode 100644 cmake/modules/FindUDEV.cmake create mode 100644 cmake/modules/FindUUID.cmake create mode 100644 cmake/modules/FindVAAPI.cmake create mode 100644 cmake/modules/FindVDPAU.cmake create mode 100644 cmake/modules/FindX.cmake create mode 100644 cmake/modules/FindXRandR.cmake create mode 100644 cmake/modules/FindXSLT.cmake create mode 100644 cmake/modules/FindYajl.cmake create mode 100644 cmake/modules/FindZip.cmake create mode 100644 cmake/modules/LDGOLD.cmake create mode 100644 cmake/modules/extra/ECMEnableSanitizers.cmake create mode 100644 cmake/platform/android/android.cmake create mode 100644 cmake/platform/android/defines.txt create mode 100644 cmake/platform/freebsd/defines.txt create mode 100644 cmake/platform/ios/defines.txt create mode 100644 cmake/platform/ios/ios.cmake create mode 100644 cmake/platform/linux/aml.cmake create mode 100644 cmake/platform/linux/defines.txt create mode 100644 cmake/platform/linux/imx.cmake create mode 100644 cmake/platform/linux/mir.cmake create mode 100644 cmake/platform/linux/x11.cmake create mode 100644 cmake/platform/osx/defines.txt create mode 100644 cmake/platform/osx/osx.cmake create mode 100644 cmake/platform/rbpi/defines.txt create mode 100644 cmake/platform/rbpi/rbpi.cmake create mode 100644 cmake/platform/windows/defines.txt create mode 100644 cmake/platform/windows/windows.cmake create mode 100644 cmake/scripts/android/ArchSetup.cmake create mode 100644 cmake/scripts/android/Install.cmake create mode 120000 cmake/scripts/android/Macros.cmake create mode 100644 cmake/scripts/android/PathSetup.cmake create mode 100644 cmake/scripts/common/AddOptions.cmake create mode 100644 cmake/scripts/common/AddonHelpers.cmake create mode 100644 cmake/scripts/common/ArchSetup.cmake create mode 100644 cmake/scripts/common/CMakeHelpers.cmake create mode 100644 cmake/scripts/common/CheckCommits.cmake create mode 100644 cmake/scripts/common/CheckTargetPlatform.cmake create mode 100644 cmake/scripts/common/GenerateVersionedFiles.cmake create mode 100644 cmake/scripts/common/GeneratorSetup.cmake create mode 100644 cmake/scripts/common/HandleDepends.cmake create mode 100644 cmake/scripts/common/Macros.cmake create mode 100644 cmake/scripts/common/PrepareEnv.cmake create mode 100644 cmake/scripts/common/ProjectMacros.cmake create mode 100644 cmake/scripts/common/Uninstall.cmake create mode 100644 cmake/scripts/freebsd/ArchSetup.cmake create mode 120000 cmake/scripts/freebsd/Install.cmake create mode 120000 cmake/scripts/freebsd/Macros.cmake create mode 120000 cmake/scripts/freebsd/PathSetup.cmake create mode 100644 cmake/scripts/ios/ArchSetup.cmake create mode 100644 cmake/scripts/ios/Install.cmake create mode 120000 cmake/scripts/ios/Macros.cmake create mode 120000 cmake/scripts/ios/PathSetup.cmake create mode 100644 cmake/scripts/linux/ArchSetup.cmake create mode 100644 cmake/scripts/linux/CodeCoverage.cmake create mode 100644 cmake/scripts/linux/ExtraTargets.cmake create mode 100644 cmake/scripts/linux/Install.cmake create mode 100644 cmake/scripts/linux/Macros.cmake create mode 100644 cmake/scripts/linux/PathSetup.cmake create mode 100644 cmake/scripts/osx/ArchSetup.cmake create mode 100644 cmake/scripts/osx/ExtraTargets.cmake create mode 100644 cmake/scripts/osx/Install.cmake create mode 100644 cmake/scripts/osx/Macros.cmake create mode 100644 cmake/scripts/osx/PathSetup.cmake create mode 100644 cmake/scripts/rbpi/ArchSetup.cmake create mode 120000 cmake/scripts/rbpi/ExtraTargets.cmake create mode 120000 cmake/scripts/rbpi/Install.cmake create mode 120000 cmake/scripts/rbpi/Macros.cmake create mode 120000 cmake/scripts/rbpi/PathSetup.cmake create mode 100644 cmake/scripts/windows/ArchSetup.cmake create mode 100644 cmake/scripts/windows/CFlagOverrides.cmake create mode 100644 cmake/scripts/windows/CXXFlagOverrides.cmake create mode 100644 cmake/scripts/windows/Install.cmake create mode 100644 cmake/scripts/windows/Macros.cmake create mode 100644 cmake/scripts/windows/PathSetup.cmake create mode 100644 cmake/scripts/windows/tools/patch.cmake create mode 100644 cmake/treedata/android/subdirs.txt create mode 100644 cmake/treedata/common/addons.txt create mode 100644 cmake/treedata/common/cores.txt create mode 100644 cmake/treedata/common/events.txt create mode 100644 cmake/treedata/common/externals.txt create mode 100644 cmake/treedata/common/filesystem.txt create mode 100644 cmake/treedata/common/games.txt create mode 100644 cmake/treedata/common/interfaces.txt create mode 100644 cmake/treedata/common/music.txt create mode 100644 cmake/treedata/common/network.txt create mode 100644 cmake/treedata/common/peripherals.txt create mode 100644 cmake/treedata/common/profiles.txt create mode 100644 cmake/treedata/common/pvr.txt create mode 100644 cmake/treedata/common/settings.txt create mode 100644 cmake/treedata/common/subdirs.txt create mode 100644 cmake/treedata/common/tests.txt create mode 100644 cmake/treedata/common/video.txt create mode 100644 cmake/treedata/common/videoplayer.txt create mode 100644 cmake/treedata/freebsd/subdirs.txt create mode 100644 cmake/treedata/ios/subdirs.txt create mode 100644 cmake/treedata/linux/subdirs.txt create mode 100644 cmake/treedata/optional/common/X.txt create mode 100644 cmake/treedata/optional/common/aml.txt create mode 100644 cmake/treedata/optional/common/cdrip.txt create mode 100644 cmake/treedata/optional/common/dacp.txt create mode 100644 cmake/treedata/optional/common/mdns.txt create mode 100644 cmake/treedata/optional/common/mir.txt create mode 100644 cmake/treedata/optional/common/opengl.txt create mode 100644 cmake/treedata/optional/common/opengles.txt create mode 100644 cmake/treedata/optional/common/python.txt create mode 100644 cmake/treedata/optional/common/upnp.txt create mode 100644 cmake/treedata/optional/common/webserver.txt create mode 100644 cmake/treedata/osx/subdirs.txt create mode 100644 cmake/treedata/rbpi/omxplayer.txt create mode 100644 cmake/treedata/rbpi/subdirs.txt create mode 100644 cmake/treedata/windows/externals.txt create mode 100644 cmake/treedata/windows/subdirs.txt (limited to 'cmake') diff --git a/cmake/KodiConfig.cmake.in b/cmake/KodiConfig.cmake.in new file mode 100644 index 0000000..58dfc40 --- /dev/null +++ b/cmake/KodiConfig.cmake.in @@ -0,0 +1,35 @@ +set(APP_NAME @APP_NAME@) +set(APP_NAME_LC @APP_NAME_LC@) +set(APP_NAME_UC @APP_NAME_UC@) +set(APP_PACKAGE @APP_PACKAGE@) +set(APP_VERSION_MAJOR @APP_VERSION_MAJOR@) +set(APP_VERSION_MINOR @APP_VERSION_MINOR@) +if(NOT @APP_NAME_UC@_PREFIX) + set(@APP_NAME_UC@_PREFIX @APP_PREFIX@) +endif() +if(NOT @APP_NAME_UC@_INCLUDE_DIR) + set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@) +endif() +if(NOT @APP_NAME_UC@_LIB_DIR) + set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@) +endif() +if(NOT @APP_NAME_UC@_DATA_DIR) + set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@) +endif() +if(NOT WIN32) + set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@") +endif() +list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake) + +string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") +add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) + +if(NOT CORE_SYSTEM_NAME) + if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(CORE_SYSTEM_NAME "osx") + else() + string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) + endif() +endif() + +include(AddonHelpers) diff --git a/cmake/README.md b/cmake/README.md new file mode 100644 index 0000000..6d338a4 --- /dev/null +++ b/cmake/README.md @@ -0,0 +1,299 @@ +# Kodi CMake based buildsystem + +This files describes Kodi's CMake based buildsystem. CMake is a cross-platform +tool for generating makefiles as well as project files used by IDEs. + +The current version of the buildsystem is capable of building and packaging +Kodi for the following platforms: + +- Linux (GNU Makefiles, Ninja) +- Windows (NMake Makefiles, Visual Studio 14 (2015), Ninja) +- macOS and iOS (GNU Makefiles, Xcode, Ninja) +- Android (GNU Makefiles) +- FreeBSD (GNU Makefiles) + +Before building Kodi with CMake, please ensure that you have the platform +specific dependencies installed. + +While the legacy build systems typically used in-source builds it's recommended +to use out-of-source builds with CMake. The necessary runtime dependencies such +as dlls, skins and configuration files are copied over to the build directory +automatically. + +## Dependency installation + +### Linux + +The dependencies required to build on Linux can be found in +[docs/README.xxx](https://github.com/xbmc/xbmc/tree/master/docs). + +### Raspberry Pi + +The cross compilation environment for the Raspberry Pi as well as the +dependencies have to be installed as explained in +[docs/README.raspberrypi](https://github.com/xbmc/xbmc/tree/master/docs/README.raspberrypi). + +### Windows + +For Windows the dependencies can be found in the +[Wiki](http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows) (Step 1-4). If not already available on your pc, you should +install 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). + +On Windows, the CMake based buildsystem requires that the binary dependencies +are downloaded using `DownloadBuildDeps.bat` and `DownloadMingwBuildEnv.bat` +and that the mingw libs (ffmpeg, libdvd and others) are built using +`make-mingwlibs.bat`. + +### macOS + +For macOS the required dependencies can be found in +[docs/README.osx.md](https://github.com/xbmc/xbmc/tree/master/docs/README.osx.md). + +On macOS it is necessary to build the dependencies in `tools/depends` using +`./bootstrap && ./configure --host= && make`. The other steps such +as `make -C tools/depends/target/xbmc` and `make xcode_depends` are not needed +as these steps are covered already by the CMake project. + +### Android + +The dependencies needed to compile for Android can be found in +[docs/README.android](https://github.com/xbmc/xbmc/tree/master/docs/README.android) +. All described steps have to be executed (except 5.2 which is replaced by the +respective CMake command below). + +## Building Kodi + +This section lists the necessary commands for building Kodi with CMake. +CMake supports different generators that can be classified into two categories: +single- and multiconfiguration generators. + +A single configuration generator (GNU/NMake Makefiles) generates project files +for a single build type (e.g. Debug, Release) specified at configure time. +Multi configuration generators (Visual Studio, Xcode) allow to specify the +build type at compile time. + +All examples below are for out-of-source builds with Kodi checked out to +``: + +``` +mkdir kodi-build && cd kodi-build +``` + +### Linux with GNU Makefiles + +``` +cmake +cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) +./kodi.bin +``` + +`CMAKE_BUILD_TYPE` defaults to `Release`. + +#### Debian package generation +The 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`. +You should use CMake/CPack 3.6.0 or higher. Lower versions can generate the packages but package names will be mangled. + +The following optional variables (which can be passed to buildsystem when executing cmake with the -D`=` format) can be used to manipulate package type, name and version: + +- `DEBIAN_PACKAGE_TYPE` controls the name and version of generated packages. Accepted values are `stable`, `unstable` and `nightly` (default is `nightly`). +- `DEBIAN_PACKAGE_EPOCH` controls package epoch (default is `2`) +- `DEBIAN_PACKAGE_VERSION` controls package version (default is `0`) +- `DEBIAN_PACKAGE_REVISION` controls package revision (no default is set) + +Packages metadata can be changed simply by editing files present in the `cpack/deb` folder +A lot more variables are available (see cpack/CPackDebian.cmake file) but you shouldn't mess with them unless you know what you're doing. + +Generated packages can be found in /packages. + +### Raspberry Pi with GNU Makefiles + +``` +cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake +cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) +``` + +### Windows with Visual Studio project files + +``` +cmake -G "Visual Studio 14" +cmake --build . --config "Debug" # or: Build solution with Visual Studio +Debug\kodi.exe +``` + +#### Windows installer generation + +The script [project/Win32BuildSetup](https://github.com/xbmc/xbmc/blob/master/project/Win32BuildSetup/BuildSetup.bat) +builds an installable package for Windows. + +### Windows with NMake Makefiles + +``` +cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release +cmake --build . # or: nmake +kodi.exe +``` + +### macOS with GNU Makefiles + +``` +cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake +cmake --build . -- VERBOSE=1 -j$(sysctl -n hw.ncpu) # or: make VERBOSE=1 -j$(sysctl -n hw.ncpu) +./kodi.bin +``` + +### macOS with Xcode project files + +``` +cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake -G "Xcode" +cmake --build . --config "Release" -- -verbose -jobs $(sysctl -n hw.ncpu) # or: Build solution with Xcode +./Release/kodi.bin +``` + +#### macOS installer generation + +Afterwards an installable DMG for macOS can be built with the following command: + +``` +cmake --build . --config "Release" --target "dmg" # or: make dmg +``` + +#### iOS package generation + +Consequently an installable DEB for iOS can be built with the following command: + +``` +make deb +``` + +### Android with GNU Makefiles + +``` +cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake +cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) +``` + +#### Android package generation + +An installable APK for Android can be built with the following command: + +``` +make apk +``` + +## Options + +Kodi supports a number of build options that can enable or disable certain +functionality.i These options must be set when running CMake with +`-DENABLE_