summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2021-03-04 23:36:40 +0100
committermanuel <manuel@mausz.at>2021-03-04 23:36:40 +0100
commit3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f (patch)
tree921f4829b32126f80f9113c124f2e14c0ebce8d9 /cmake
parentbe933ef2241d79558f91796cc5b3a161f72ebf9c (diff)
downloadkodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.tar.gz
kodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.tar.bz2
kodi-pvr-build-3cb8aa05f8cee9e860cf83531682ff0ed4af6a4f.zip
sync with upstreamMatrix
Diffstat (limited to 'cmake')
-rw-r--r--cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt2
-rw-r--r--cmake/installdata/common/addons.txt2
-rw-r--r--cmake/modules/FindCCache.cmake4
-rw-r--r--cmake/modules/FindCdio.cmake12
-rw-r--r--cmake/modules/FindIso9660pp.cmake8
-rw-r--r--cmake/modules/FindPulseAudio.cmake10
-rw-r--r--cmake/modules/FindPython.cmake4
-rw-r--r--cmake/modules/FindVAAPI.cmake4
-rw-r--r--cmake/modules/FindWaylandpp.cmake9
-rw-r--r--cmake/platform/freebsd/x11.cmake5
-rw-r--r--cmake/platform/linux/gbm.cmake17
-rw-r--r--cmake/platform/linux/wayland.cmake17
-rw-r--r--cmake/platform/linux/x11.cmake16
-rw-r--r--cmake/scripts/android/Install.cmake1
-rw-r--r--cmake/scripts/common/Macros.cmake16
-rw-r--r--cmake/scripts/common/Platform.cmake50
-rw-r--r--cmake/scripts/darwin_embedded/Install.cmake5
-rw-r--r--cmake/scripts/linux/ExtraTargets.cmake2
-rw-r--r--cmake/scripts/osx/ArchSetup.cmake2
-rw-r--r--cmake/scripts/osx/Install.cmake1
-rw-r--r--cmake/scripts/windows/ArchSetup.cmake4
-rw-r--r--cmake/scripts/windowsstore/ArchSetup.cmake2
-rw-r--r--cmake/treedata/common/subdirs.txt2
23 files changed, 108 insertions, 87 deletions
diff --git a/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt b/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt
index db25aa2..a346242 100644
--- a/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt
+++ b/cmake/addons/addons/pvr.dvbviewer/pvr.dvbviewer.txt
@@ -1 +1 @@
pvr.dvbviewer https://github.com/manuelm/pvr.dvbviewer master \ No newline at end of file pvr.dvbviewer https://github.com/manuelm/pvr.dvbviewer Matrix \ No newline at end of file
diff --git a/cmake/installdata/common/addons.txt b/cmake/installdata/common/addons.txt
index 897420f..5a9aef2 100644
--- a/cmake/installdata/common/addons.txt
+++ b/cmake/installdata/common/addons.txt
@@ -42,5 +42,7 @@ addons/metadata.common.themoviedb.org/*
42addons/metadata.generic.albums/* 42addons/metadata.generic.albums/*
43addons/metadata.generic.artists/* 43addons/metadata.generic.artists/*
44addons/metadata.themoviedb.org/* 44addons/metadata.themoviedb.org/*
45addons/metadata.themoviedb.org.python/*
45addons/metadata.tvshows.themoviedb.org/* 46addons/metadata.tvshows.themoviedb.org/*
47addons/metadata.tvshows.themoviedb.org.python/*
46addons/kodi.vfs/* 48addons/kodi.vfs/*
diff --git a/cmake/modules/FindCCache.cmake b/cmake/modules/FindCCache.cmake
index a18d4e0..0f6463b 100644
--- a/cmake/modules/FindCCache.cmake
+++ b/cmake/modules/FindCCache.cmake
@@ -16,8 +16,8 @@ if(CCACHE_FOUND)
16 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") 16 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
17 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") 17 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}")
18 18
19 file(WRITE "${CMAKE_BINARY_DIR}/launch-c" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_C_COMPILER}\" \"$@\"\n") 19 file(WRITE "${CMAKE_BINARY_DIR}/launch-c" "#!/bin/sh\nexec \"${CCACHE_PROGRAM}\" \"${CMAKE_C_COMPILER}\" \"$@\"\n")
20 file(WRITE "${CMAKE_BINARY_DIR}/launch-cxx" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"\n") 20 file(WRITE "${CMAKE_BINARY_DIR}/launch-cxx" "#!/bin/sh\nexec \"${CCACHE_PROGRAM}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"\n")
21 execute_process(COMMAND chmod +x "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx") 21 execute_process(COMMAND chmod +x "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
22 22
23 set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE) 23 set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE)
diff --git a/cmake/modules/FindCdio.cmake b/cmake/modules/FindCdio.cmake
index 465ecc6..3a10b06 100644
--- a/cmake/modules/FindCdio.cmake
+++ b/cmake/modules/FindCdio.cmake
@@ -11,6 +11,7 @@
11 11
12if(PKG_CONFIG_FOUND) 12if(PKG_CONFIG_FOUND)
13 pkg_check_modules(PC_CDIO libcdio>=0.80 QUIET) 13 pkg_check_modules(PC_CDIO libcdio>=0.80 QUIET)
14 pkg_check_modules(PC_CDIOPP libcdio++>=2.1.0 QUIET)
14endif() 15endif()
15 16
16find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h 17find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h
@@ -19,7 +20,14 @@ find_path(CDIO_INCLUDE_DIR NAMES cdio/cdio.h
19find_library(CDIO_LIBRARY NAMES cdio libcdio 20find_library(CDIO_LIBRARY NAMES cdio libcdio
20 PATHS ${PC_CDIO_LIBDIR}) 21 PATHS ${PC_CDIO_LIBDIR})
21 22
22set(CDIO_VERSION ${PC_CDIO_VERSION}) 23if(DEFINED PC_CDIO_VERSION AND DEFINED PC_CDIOPP_VERSION AND NOT "${PC_CDIO_VERSION}" VERSION_EQUAL "${PC_CDIOPP_VERSION}")
24 message(WARNING "Detected libcdio (${PC_CDIO_VERSION}) and libcdio++ (${PC_CDIOPP_VERSION}) version mismatch. libcdio++ will not be used.")
25else()
26 find_path(CDIOPP_INCLUDE_DIR NAMES cdio++/cdio.hpp
27 PATHS ${PC_CDIOPP_INCLUDEDIR} ${CDIO_INCLUDE_DIR})
28
29 set(CDIO_VERSION ${PC_CDIO_VERSION})
30endif()
23 31
24include(FindPackageHandleStandardArgs) 32include(FindPackageHandleStandardArgs)
25find_package_handle_standard_args(Cdio 33find_package_handle_standard_args(Cdio
@@ -31,4 +39,4 @@ if(CDIO_FOUND)
31 set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR}) 39 set(CDIO_INCLUDE_DIRS ${CDIO_INCLUDE_DIR})
32endif() 40endif()
33 41
34mark_as_advanced(CDIO_INCLUDE_DIR CDIO_LIBRARY) 42mark_as_advanced(CDIO_INCLUDE_DIR CDIOPP_INCLUDE_DIR CDIO_LIBRARY)
diff --git a/cmake/modules/FindIso9660pp.cmake b/cmake/modules/FindIso9660pp.cmake
index 5f84b55..f98273b 100644
--- a/cmake/modules/FindIso9660pp.cmake
+++ b/cmake/modules/FindIso9660pp.cmake
@@ -15,6 +15,8 @@ if(PKG_CONFIG_FOUND)
15 pkg_check_modules(PC_ISO9660 libiso9660>=2.1.0 QUIET) 15 pkg_check_modules(PC_ISO9660 libiso9660>=2.1.0 QUIET)
16endif() 16endif()
17 17
18find_package(Cdio)
19
18find_path(ISO9660PP_INCLUDE_DIR NAMES cdio++/iso9660.hpp 20find_path(ISO9660PP_INCLUDE_DIR NAMES cdio++/iso9660.hpp
19 PATHS ${PC_ISO9660PP_INCLUDEDIR}) 21 PATHS ${PC_ISO9660PP_INCLUDEDIR})
20 22
@@ -31,12 +33,12 @@ set(ISO9660PP_VERSION ${PC_ISO9660PP_VERSION})
31 33
32include(FindPackageHandleStandardArgs) 34include(FindPackageHandleStandardArgs)
33find_package_handle_standard_args(Iso9660pp 35find_package_handle_standard_args(Iso9660pp
34 REQUIRED_VARS ISO9660PP_LIBRARY ISO9660PP_INCLUDE_DIR ISO9660_LIBRARY ISO9660_INCLUDE_DIR 36 REQUIRED_VARS ISO9660PP_LIBRARY ISO9660PP_INCLUDE_DIR ISO9660_LIBRARY ISO9660_INCLUDE_DIR CDIO_LIBRARY CDIO_INCLUDE_DIR CDIOPP_INCLUDE_DIR
35 VERSION_VAR ISO9660PP_VERSION) 37 VERSION_VAR ISO9660PP_VERSION)
36 38
37if(ISO9660PP_FOUND) 39if(ISO9660PP_FOUND)
38 set(ISO9660PP_LIBRARIES ${ISO9660PP_LIBRARY} ${ISO9660_LIBRARY}) 40 set(ISO9660PP_LIBRARIES ${ISO9660PP_LIBRARY} ${ISO9660_LIBRARY} ${CDIO_LIBRARY})
39 set(ISO9660PP_INCLUDE_DIRS ${ISO9660PP_INCLUDE_DIR} ${ISO9660_INCLUDE_DIR}) 41 set(ISO9660PP_INCLUDE_DIRS ${CDIO_INCLUDE_DIR} ${CDIOPP_INCLUDE_DIR} ${ISO9660_INCLUDE_DIR} ${ISO9660PP_INCLUDE_DIR})
40 set(ISO9660PP_DEFINITIONS -DHAS_ISO9660PP=1) 42 set(ISO9660PP_DEFINITIONS -DHAS_ISO9660PP=1)
41endif() 43endif()
42 44
diff --git a/cmake/modules/FindPulseAudio.cmake b/cmake/modules/FindPulseAudio.cmake
index 2ef7910..829a2d8 100644
--- a/cmake/modules/FindPulseAudio.cmake
+++ b/cmake/modules/FindPulseAudio.cmake
@@ -14,14 +14,10 @@
14# 14#
15# PulseAudio::PulseAudio - The PulseAudio library 15# PulseAudio::PulseAudio - The PulseAudio library
16 16
17if(NOT PulseAudio_FIND_VERSION)
18 set(PulseAudio_FIND_VERSION 2.0.0)
19endif()
20
21if(PKG_CONFIG_FOUND) 17if(PKG_CONFIG_FOUND)
22 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET) 18 pkg_check_modules(PC_PULSEAUDIO libpulse>=11.0.0 QUIET)
23 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET) 19 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib>=11.0.0 QUIET)
24 pkg_check_modules(PC_PULSEAUDIO_SIMPLE libpulse-simple QUIET) 20 pkg_check_modules(PC_PULSEAUDIO_SIMPLE libpulse-simple>=11.0.0 QUIET)
25endif() 21endif()
26 22
27find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h pulse/simple.h 23find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h pulse/simple.h
diff --git a/cmake/modules/FindPython.cmake b/cmake/modules/FindPython.cmake
index e39d4e5..7bbda13 100644
--- a/cmake/modules/FindPython.cmake
+++ b/cmake/modules/FindPython.cmake
@@ -10,8 +10,8 @@ if(PKG_CONFIG_FOUND)
10endif() 10endif()
11 11
12find_program(PYTHON_EXECUTABLE python3 ONLY_CMAKE_FIND_ROOT_PATH) 12find_program(PYTHON_EXECUTABLE python3 ONLY_CMAKE_FIND_ROOT_PATH)
13find_library(PYTHON_LIBRARY NAMES python3.8 python3.7 python3.6 python3.5 PATHS ${PC_PYTHON_LIBDIR}) 13find_library(PYTHON_LIBRARY NAMES python3.9 python3.8 python3.7 python3.6 python3.5 PATHS ${PC_PYTHON_LIBDIR})
14find_path(PYTHON_INCLUDE_DIR NAMES Python.h PATHS ${PC_PYTHON_INCLUDE_DIRS} PATH_SUFFIXES python3.8 python3.7 python3.6 python3.5) 14find_path(PYTHON_INCLUDE_DIR NAMES Python.h PATHS ${PC_PYTHON_INCLUDE_DIRS} PATH_SUFFIXES python3.9 python3.8 python3.7 python3.6 python3.5)
15 15
16if(KODI_DEPENDSBUILD) 16if(KODI_DEPENDSBUILD)
17 find_library(FFI_LIBRARY ffi REQUIRED) 17 find_library(FFI_LIBRARY ffi REQUIRED)
diff --git a/cmake/modules/FindVAAPI.cmake b/cmake/modules/FindVAAPI.cmake
index 2111e4f..f0a5d05 100644
--- a/cmake/modules/FindVAAPI.cmake
+++ b/cmake/modules/FindVAAPI.cmake
@@ -24,14 +24,14 @@ find_path(VAAPI_libva-drm_INCLUDE_DIR va/va_drm.h
24 PATHS ${PC_VAAPI_libva-drm_INCLUDEDIR}) 24 PATHS ${PC_VAAPI_libva-drm_INCLUDEDIR})
25find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm 25find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm
26 PATHS ${PC_VAAPI_libva-drm_LIBDIR}) 26 PATHS ${PC_VAAPI_libva-drm_LIBDIR})
27if(CORE_PLATFORM_NAME_LC STREQUAL "wayland") 27if("wayland" IN_LIST CORE_PLATFORM_NAME_LC)
28 find_path(VAAPI_libva-wayland_INCLUDE_DIR va/va_wayland.h 28 find_path(VAAPI_libva-wayland_INCLUDE_DIR va/va_wayland.h
29 PATHS ${PC_VAAPI_libva-wayland_INCLUDEDIR}) 29 PATHS ${PC_VAAPI_libva-wayland_INCLUDEDIR})
30 find_library(VAAPI_libva-wayland_LIBRARY NAMES va-wayland 30 find_library(VAAPI_libva-wayland_LIBRARY NAMES va-wayland
31 PATHS ${PC_VAAPI_libva-wayland_LIBDIR}) 31 PATHS ${PC_VAAPI_libva-wayland_LIBDIR})
32 list(APPEND REQUIRED_VARS "VAAPI_libva-wayland_INCLUDE_DIR" "VAAPI_libva-wayland_LIBRARY") 32 list(APPEND REQUIRED_VARS "VAAPI_libva-wayland_INCLUDE_DIR" "VAAPI_libva-wayland_LIBRARY")
33endif() 33endif()
34if(CORE_PLATFORM_NAME_LC STREQUAL "x11") 34if("x11" IN_LIST CORE_PLATFORM_NAME_LC)
35 find_path(VAAPI_libva-x11_INCLUDE_DIR va/va_x11.h 35 find_path(VAAPI_libva-x11_INCLUDE_DIR va/va_x11.h
36 PATHS ${PC_VAAPI_libva-x11_INCLUDEDIR}) 36 PATHS ${PC_VAAPI_libva-x11_INCLUDEDIR})
37 find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 37 find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11
diff --git a/cmake/modules/FindWaylandpp.cmake b/cmake/modules/FindWaylandpp.cmake
index 3cfc282..ba229d7 100644
--- a/cmake/modules/FindWaylandpp.cmake
+++ b/cmake/modules/FindWaylandpp.cmake
@@ -11,12 +11,19 @@
11# WAYLANDPP_SCANNER - path to wayland-scanner++ 11# WAYLANDPP_SCANNER - path to wayland-scanner++
12 12
13pkg_check_modules(PC_WAYLANDPP wayland-client++ wayland-egl++ wayland-cursor++ QUIET) 13pkg_check_modules(PC_WAYLANDPP wayland-client++ wayland-egl++ wayland-cursor++ QUIET)
14pkg_check_modules(PC_WAYLANDPP_SCANNER wayland-scanner++ QUIET) 14
15if(PC_WAYLANDPP_FOUND) 15if(PC_WAYLANDPP_FOUND)
16 pkg_get_variable(PC_WAYLANDPP_PKGDATADIR wayland-client++ pkgdatadir) 16 pkg_get_variable(PC_WAYLANDPP_PKGDATADIR wayland-client++ pkgdatadir)
17else()
18 message(SEND_ERROR "wayland-client++ not found via pkg-config")
17endif() 19endif()
20
21pkg_check_modules(PC_WAYLANDPP_SCANNER wayland-scanner++ QUIET)
22
18if(PC_WAYLANDPP_SCANNER_FOUND) 23if(PC_WAYLANDPP_SCANNER_FOUND)
19 pkg_get_variable(PC_WAYLANDPP_SCANNER wayland-scanner++ wayland_scannerpp) 24 pkg_get_variable(PC_WAYLANDPP_SCANNER wayland-scanner++ wayland_scannerpp)
25else()
26 message(SEND_ERROR "wayland-scanner++ not found via pkg-config")
20endif() 27endif()
21 28
22find_path(WAYLANDPP_INCLUDE_DIR wayland-client.hpp PATHS ${PC_WAYLANDPP_INCLUDEDIR}) 29find_path(WAYLANDPP_INCLUDE_DIR wayland-client.hpp PATHS ${PC_WAYLANDPP_INCLUDEDIR})
diff --git a/cmake/platform/freebsd/x11.cmake b/cmake/platform/freebsd/x11.cmake
index 09cebde..307dac3 100644
--- a/cmake/platform/freebsd/x11.cmake
+++ b/cmake/platform/freebsd/x11.cmake
@@ -1,3 +1,2 @@
1set(PLATFORM_REQUIRED_DEPS OpenGl EGL X XRandR LibDRM) 1list(APPEND PLATFORM_REQUIRED_DEPS OpenGl EGL X XRandR LibDRM)
2set(PLATFORM_OPTIONAL_DEPS VAAPI VDPAU GLX) 2list(APPEND PLATFORM_OPTIONAL_DEPS VAAPI VDPAU GLX)
3set(APP_RENDER_SYSTEM gl)
diff --git a/cmake/platform/linux/gbm.cmake b/cmake/platform/linux/gbm.cmake
index 75b23f3..8f17ef6 100644
--- a/cmake/platform/linux/gbm.cmake
+++ b/cmake/platform/linux/gbm.cmake
@@ -1,17 +1,8 @@
1set(PLATFORM_REQUIRED_DEPS EGL GBM LibDRM LibInput Xkbcommon) 1list(APPEND PLATFORM_REQUIRED_DEPS EGL GBM LibDRM LibInput Xkbcommon)
2set(PLATFORM_OPTIONAL_DEPS VAAPI) 2list(APPEND PLATFORM_OPTIONAL_DEPS VAAPI)
3 3
4set(GBM_RENDER_SYSTEM "" CACHE STRING "Render system to use with GBM: \"gl\" or \"gles\"") 4if(APP_RENDER_SYSTEM STREQUAL "gl")
5
6if(GBM_RENDER_SYSTEM STREQUAL "gl")
7 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl) 5 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl)
8 set(APP_RENDER_SYSTEM gl) 6elseif(APP_RENDER_SYSTEM STREQUAL "gles")
9elseif(GBM_RENDER_SYSTEM STREQUAL "gles")
10 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES) 7 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES)
11 set(APP_RENDER_SYSTEM gles)
12else()
13 message(SEND_ERROR "You need to decide whether you want to use GL- or GLES-based rendering in combination with the GBM windowing system. Please set GBM_RENDER_SYSTEM to either \"gl\" or \"gles\". For normal desktop systems, you will usually want to use \"gl\".")
14endif() 8endif()
15
16# __GBM__ is needed by eglplatform.h in case it is included before gbm.h
17list(APPEND PLATFORM_DEFINES -DMESA_EGL_NO_X11_HEADERS -DEGL_NO_X11 -D__GBM__=1 -DPLATFORM_SETTINGS_FILE=gbm.xml)
diff --git a/cmake/platform/linux/wayland.cmake b/cmake/platform/linux/wayland.cmake
index 916b578..1adcd8f 100644
--- a/cmake/platform/linux/wayland.cmake
+++ b/cmake/platform/linux/wayland.cmake
@@ -1,21 +1,14 @@
1set(PLATFORM_REQUIRED_DEPS WaylandProtocols>=1.7 Waylandpp>=0.2.2 LibDRM Xkbcommon>=0.4.1) 1list(APPEND PLATFORM_REQUIRED_DEPS WaylandProtocols>=1.7 Waylandpp>=0.2.2 LibDRM Xkbcommon>=0.4.1)
2set(PLATFORM_OPTIONAL_DEPS VAAPI) 2list(APPEND PLATFORM_OPTIONAL_DEPS VAAPI)
3 3
4set(WAYLAND_RENDER_SYSTEM "" CACHE STRING "Render system to use with Wayland: \"gl\" or \"gles\"") 4if(APP_RENDER_SYSTEM STREQUAL "gl")
5
6if(WAYLAND_RENDER_SYSTEM STREQUAL "gl")
7 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl EGL) 5 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl EGL)
8 set(APP_RENDER_SYSTEM gl) 6elseif(APP_RENDER_SYSTEM STREQUAL "gles")
9elseif(WAYLAND_RENDER_SYSTEM STREQUAL "gles")
10 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES EGL) 7 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES EGL)
11 set(APP_RENDER_SYSTEM gles)
12else()
13 message(SEND_ERROR "You need to decide whether you want to use GL- or GLES-based rendering in combination with the Wayland windowing system. Please set WAYLAND_RENDER_SYSTEM to either \"gl\" or \"gles\". For normal desktop systems, you will usually want to use \"gl\".")
14endif() 8endif()
15 9
16set(PLATFORM_GLOBAL_TARGET_DEPS generate-wayland-extra-protocols) 10set(PLATFORM_GLOBAL_TARGET_DEPS generate-wayland-extra-protocols)
17set(WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}") 11set(WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}")
18# WL_EGL_PLATFORM is needed by eglplatform.h in case it is included before wayland-egl.h 12
19list(APPEND PLATFORM_DEFINES -DWL_EGL_PLATFORM=1 -DPLATFORM_SETTINGS_FILE=wayland.xml)
20# for wayland-extra-protocols.hpp 13# for wayland-extra-protocols.hpp
21include_directories("${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}") 14include_directories("${WAYLAND_EXTRA_PROTOCOL_GENERATED_DIR}")
diff --git a/cmake/platform/linux/x11.cmake b/cmake/platform/linux/x11.cmake
index 5d7f3d4..5f5b8c2 100644
--- a/cmake/platform/linux/x11.cmake
+++ b/cmake/platform/linux/x11.cmake
@@ -1,17 +1,9 @@
1set(PLATFORM_REQUIRED_DEPS EGL X XRandR LibDRM) 1list(APPEND PLATFORM_REQUIRED_DEPS EGL X XRandR LibDRM)
2set(PLATFORM_OPTIONAL_DEPS VAAPI) 2list(APPEND PLATFORM_OPTIONAL_DEPS VAAPI)
3 3
4set(X11_RENDER_SYSTEM "" CACHE STRING "Render system to use with X11: \"gl\" or \"gles\"") 4if(APP_RENDER_SYSTEM STREQUAL "gl")
5
6if(X11_RENDER_SYSTEM STREQUAL "gl")
7 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl) 5 list(APPEND PLATFORM_REQUIRED_DEPS OpenGl)
8 list(APPEND PLATFORM_OPTIONAL_DEPS GLX VDPAU) 6 list(APPEND PLATFORM_OPTIONAL_DEPS GLX VDPAU)
9 set(APP_RENDER_SYSTEM gl) 7elseif(APP_RENDER_SYSTEM STREQUAL "gles")
10elseif(X11_RENDER_SYSTEM STREQUAL "gles")
11 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES) 8 list(APPEND PLATFORM_REQUIRED_DEPS OpenGLES)
12 set(APP_RENDER_SYSTEM gles)
13else()
14 message(SEND_ERROR "You need to decide whether you want to use GL- or GLES-based rendering in combination with the X11 windowing system. Please set X11_RENDER_SYSTEM to either \"gl\" or \"gles\". For normal desktop systems, you will usually want to use \"gl\".")
15endif() 9endif()
16
17list(APPEND PLATFORM_DEFINES -DPLATFORM_SETTINGS_FILE=x11.xml) \ No newline at end of file
diff --git a/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake
index 5b7b411..1dc33af 100644
--- a/cmake/scripts/android/Install.cmake
+++ b/cmake/scripts/android/Install.cmake
@@ -70,6 +70,7 @@ set(package_files strings.xml
70 src/XBMCProperties.java 70 src/XBMCProperties.java
71 src/XBMCVideoView.java 71 src/XBMCVideoView.java
72 src/XBMCFile.java 72 src/XBMCFile.java
73 src/XBMCURIUtils.java
73 src/channels/SyncChannelJobService.java 74 src/channels/SyncChannelJobService.java
74 src/channels/SyncProgramsJobService.java 75 src/channels/SyncProgramsJobService.java
75 src/channels/model/XBMCDatabase.java 76 src/channels/model/XBMCDatabase.java
diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake
index d896651..757d3ee 100644
--- a/cmake/scripts/common/Macros.cmake
+++ b/cmake/scripts/common/Macros.cmake
@@ -221,11 +221,19 @@ function(copy_file_to_buildtree file)
221 endif() 221 endif()
222 222
223 if(NOT file STREQUAL ${CMAKE_BINARY_DIR}/${outfile}) 223 if(NOT file STREQUAL ${CMAKE_BINARY_DIR}/${outfile})
224 if(VERBOSE) 224 if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" OR NOT IS_SYMLINK "${file}")
225 message(STATUS "copy_file_to_buildtree - copying file: ${file} -> ${CMAKE_BINARY_DIR}/${outfile}") 225 if(VERBOSE)
226 message(STATUS "copy_file_to_buildtree - copying file: ${file} -> ${CMAKE_BINARY_DIR}/${outfile}")
227 endif()
228 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake
229 "file(COPY \"${file}\" DESTINATION \"${CMAKE_BINARY_DIR}/${outdir}\")\n" )
230 else()
231 if(VERBOSE)
232 message(STATUS "copy_file_to_buildtree - copying symlinked file: ${file} -> ${CMAKE_BINARY_DIR}/${outfile}")
233 endif()
234 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake
235 "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy_if_different \"${file}\" \"${CMAKE_BINARY_DIR}/${outfile}\")\n")
226 endif() 236 endif()
227 file(APPEND ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ExportFiles.cmake
228 "file(COPY \"${file}\" DESTINATION \"${CMAKE_BINARY_DIR}/${outdir}\")\n")
229 endif() 237 endif()
230 238
231 if(NOT arg_NO_INSTALL) 239 if(NOT arg_NO_INSTALL)
diff --git a/cmake/scripts/common/Platform.cmake b/cmake/scripts/common/Platform.cmake
index 5ac233a..397d8d4 100644
--- a/cmake/scripts/common/Platform.cmake
+++ b/cmake/scripts/common/Platform.cmake
@@ -3,10 +3,13 @@ if(NOT CORE_SYSTEM_NAME)
3endif() 3endif()
4 4
5if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd) 5if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
6 # Set default CORE_PLATFORM_NAME to X11 6 # Set default CORE_PLATFORM_NAME to X11 WAYLAND GBM
7 # This is overridden by user setting -DCORE_PLATFORM_NAME=<platform> 7 # This is overridden by user setting -DCORE_PLATFORM_NAME=<platform>
8 set(_DEFAULT_PLATFORM X11) 8 set(_DEFAULT_PLATFORM X11 WAYLAND GBM)
9 option(ENABLE_APP_AUTONAME "Enable renaming the binary according to windowing?" ON) 9
10 if(NOT APP_RENDER_SYSTEM)
11 message(SEND_ERROR "You need to decide whether you want to use GL- or GLES-based rendering. Please set APP_RENDER_SYSTEM to either \"gl\" or \"gles\". For normal desktop systems, you will usually want to use \"gl\".")
12 endif()
10else() 13else()
11 string(TOLOWER ${CORE_SYSTEM_NAME} _DEFAULT_PLATFORM) 14 string(TOLOWER ${CORE_SYSTEM_NAME} _DEFAULT_PLATFORM)
12endif() 15endif()
@@ -18,20 +21,37 @@ set(APP_BINARY_SUFFIX ".bin")
18# use the normalized to lower case CORE_PLATFORM_NAME_LC (see below) instead 21# use the normalized to lower case CORE_PLATFORM_NAME_LC (see below) instead
19# 22#
20if(NOT CORE_PLATFORM_NAME) 23if(NOT CORE_PLATFORM_NAME)
21 set(CORE_PLATFORM_NAME ${_DEFAULT_PLATFORM} CACHE STRING "Platform port to build") 24 set(CORE_PLATFORM_NAME ${_DEFAULT_PLATFORM})
22endif() 25endif()
26set(CORE_PLATFORM_NAME ${CORE_PLATFORM_NAME} CACHE STRING "Platform port to build" FORCE)
23unset(_DEFAULT_PLATFORM) 27unset(_DEFAULT_PLATFORM)
24string(TOLOWER ${CORE_PLATFORM_NAME} CORE_PLATFORM_NAME_LC)
25 28
26list(APPEND final_message "Platform: ${CORE_PLATFORM_NAME}") 29string(REPLACE " " ";" CORE_PLATFORM_NAME "${CORE_PLATFORM_NAME}")
27if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake) 30foreach(platform IN LISTS CORE_PLATFORM_NAME)
28 include(${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake) 31 string(TOLOWER ${platform} platform)
29 if(ENABLE_APP_AUTONAME) 32 list(APPEND CORE_PLATFORM_NAME_LC ${platform})
30 set(APP_BINARY_SUFFIX "-${CORE_PLATFORM_NAME_LC}") 33endforeach()
34
35string(REPLACE ";" " " CORE_PLATFORM_STRING "${CORE_PLATFORM_NAME_LC}")
36list(APPEND final_message "Platforms: ${CORE_PLATFORM_STRING}")
37
38if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
39 list(LENGTH CORE_PLATFORM_NAME_LC PLATFORM_COUNT)
40 if(PLATFORM_COUNT EQUAL 1)
41 option(ENABLE_APP_AUTONAME "Enable renaming the binary according to windowing?" ON)
42 if(ENABLE_APP_AUTONAME)
43 set(APP_BINARY_SUFFIX "-${CORE_PLATFORM_NAME_LC}")
44 endif()
31 endif() 45 endif()
32else()
33 file(GLOB _platformnames RELATIVE ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/
34 ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/*.cmake)
35 string(REPLACE ".cmake" " " _platformnames ${_platformnames})
36 message(FATAL_ERROR "invalid CORE_PLATFORM_NAME: ${CORE_PLATFORM_NAME_LC}\nValid platforms: ${_platformnames}")
37endif() 46endif()
47
48foreach(CORE_PLATFORM_LC IN LISTS CORE_PLATFORM_NAME_LC)
49 if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_LC}.cmake)
50 include(${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_LC}.cmake)
51 else()
52 file(GLOB _platformnames RELATIVE ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/
53 ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/*.cmake)
54 string(REPLACE ".cmake" " " _platformnames ${_platformnames})
55 message(FATAL_ERROR "invalid CORE_PLATFORM_NAME: ${CORE_PLATFORM_NAME_LC}\nValid platforms: ${_platformnames}")
56 endif()
57endforeach()
diff --git a/cmake/scripts/darwin_embedded/Install.cmake b/cmake/scripts/darwin_embedded/Install.cmake
index af18277..02464ee 100644
--- a/cmake/scripts/darwin_embedded/Install.cmake
+++ b/cmake/scripts/darwin_embedded/Install.cmake
@@ -122,11 +122,6 @@ endif()
122set(DEPENDS_ROOT_FOR_XCODE ${NATIVEPREFIX}/..) 122set(DEPENDS_ROOT_FOR_XCODE ${NATIVEPREFIX}/..)
123configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh.in 123configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh.in
124 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh @ONLY) 124 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/darwin_embedded/mkdeb-darwin_embedded.sh @ONLY)
125
126if(CORE_PLATFORM_NAME_LC STREQUAL ios)
127 configure_file(${CMAKE_SOURCE_DIR}/tools/darwin/packaging/darwin_embedded/migrate_to_kodi.sh.in
128 ${CMAKE_BINARY_DIR}/tools/darwin/packaging/darwin_embedded/migrate_to_kodi.sh @ONLY)
129endif()
130 125
131add_custom_target(deb 126add_custom_target(deb
132 COMMAND sh ./mkdeb-darwin_embedded.sh ${CORE_BUILD_CONFIG} 127 COMMAND sh ./mkdeb-darwin_embedded.sh ${CORE_BUILD_CONFIG}
diff --git a/cmake/scripts/linux/ExtraTargets.cmake b/cmake/scripts/linux/ExtraTargets.cmake
index 37d196a..61c76a8 100644
--- a/cmake/scripts/linux/ExtraTargets.cmake
+++ b/cmake/scripts/linux/ExtraTargets.cmake
@@ -14,7 +14,7 @@ if(ENABLE_EVENTCLIENTS AND BLUETOOTH_FOUND)
14 endif() 14 endif()
15endif() 15endif()
16 16
17if(CORE_PLATFORM_NAME_LC STREQUAL "wayland") 17if("wayland" IN_LIST CORE_PLATFORM_NAME_LC)
18 # This cannot go into wayland.cmake since it requires the Wayland dependencies 18 # This cannot go into wayland.cmake since it requires the Wayland dependencies
19 # to already be resolved 19 # to already be resolved
20 set(PROTOCOL_XMLS "${WAYLANDPP_PROTOCOLS_DIR}/presentation-time.xml" 20 set(PROTOCOL_XMLS "${WAYLANDPP_PROTOCOLS_DIR}/presentation-time.xml"
diff --git a/cmake/scripts/osx/ArchSetup.cmake b/cmake/scripts/osx/ArchSetup.cmake
index 7d8f58b..f723aa2 100644
--- a/cmake/scripts/osx/ArchSetup.cmake
+++ b/cmake/scripts/osx/ArchSetup.cmake
@@ -23,6 +23,8 @@ else()
23 endif() 23 endif()
24endif() 24endif()
25 25
26set(CMAKE_OSX_ARCHITECTURES ${CPU})
27
26# Additional SYSTEM_DEFINES 28# Additional SYSTEM_DEFINES
27list(APPEND SYSTEM_DEFINES -DHAS_POSIX_NETWORK -DHAS_OSX_NETWORK -DHAS_SDL -DHAS_ZEROCONF) 29list(APPEND SYSTEM_DEFINES -DHAS_POSIX_NETWORK -DHAS_OSX_NETWORK -DHAS_SDL -DHAS_ZEROCONF)
28 30
diff --git a/cmake/scripts/osx/Install.cmake b/cmake/scripts/osx/Install.cmake
index 629bc09..2ae41f5 100644
--- a/cmake/scripts/osx/Install.cmake
+++ b/cmake/scripts/osx/Install.cmake
@@ -52,6 +52,7 @@ add_custom_target(dmg
52 "DEV_TEAM=${DEV_TEAM}" 52 "DEV_TEAM=${DEV_TEAM}"
53 "EXPANDED_CODE_SIGN_IDENTITY_NAME=${CODE_SIGN_IDENTITY}" 53 "EXPANDED_CODE_SIGN_IDENTITY_NAME=${CODE_SIGN_IDENTITY}"
54 "PLATFORM_NAME=${PLATFORM}" 54 "PLATFORM_NAME=${PLATFORM}"
55 "XCODE_BUILDTYPE=${CMAKE_CFG_INTDIR}"
55 ./mkdmg-osx.sh ${CORE_BUILD_CONFIG_LOWERCASED} 56 ./mkdmg-osx.sh ${CORE_BUILD_CONFIG_LOWERCASED}
56 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx) 57 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/tools/darwin/packaging/osx)
57set_target_properties(dmg PROPERTIES FOLDER "Build Utilities") 58set_target_properties(dmg PROPERTIES FOLDER "Build Utilities")
diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake
index f3628f2..9c382da 100644
--- a/cmake/scripts/windows/ArchSetup.cmake
+++ b/cmake/scripts/windows/ArchSetup.cmake
@@ -32,9 +32,11 @@ set(DEPS_FOLDER_RELATIVE project/BuildDependencies)
32set(DEPENDENCIES_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/${ARCH}) 32set(DEPENDENCIES_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/${ARCH})
33set(MINGW_LIBS_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/mingwlibs/${ARCH}) 33set(MINGW_LIBS_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/mingwlibs/${ARCH})
34 34
35# mingw libs
35list(APPEND CMAKE_PREFIX_PATH ${MINGW_LIBS_DIR}) 36list(APPEND CMAKE_PREFIX_PATH ${MINGW_LIBS_DIR})
36list(APPEND CMAKE_LIBRARY_PATH ${MINGW_LIBS_DIR}/bin) 37list(APPEND CMAKE_LIBRARY_PATH ${MINGW_LIBS_DIR}/bin)
37list(APPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR}) 38# dependencies
39list(PREPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR})
38 40
39# -------- Compiler options --------- 41# -------- Compiler options ---------
40 42
diff --git a/cmake/scripts/windowsstore/ArchSetup.cmake b/cmake/scripts/windowsstore/ArchSetup.cmake
index ad55a01..5a90683 100644
--- a/cmake/scripts/windowsstore/ArchSetup.cmake
+++ b/cmake/scripts/windowsstore/ArchSetup.cmake
@@ -52,7 +52,7 @@ set(MINGW_LIBS_DIR ${CMAKE_SOURCE_DIR}/${DEPS_FOLDER_RELATIVE}/mingwlibs/win10-$
52list(APPEND CMAKE_PREFIX_PATH ${MINGW_LIBS_DIR}) 52list(APPEND CMAKE_PREFIX_PATH ${MINGW_LIBS_DIR})
53list(APPEND CMAKE_LIBRARY_PATH ${MINGW_LIBS_DIR}/bin) 53list(APPEND CMAKE_LIBRARY_PATH ${MINGW_LIBS_DIR}/bin)
54# dependencies 54# dependencies
55list(APPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR}) 55list(PREPEND CMAKE_PREFIX_PATH ${DEPENDENCIES_DIR})
56 56
57 57
58# -------- Compiler options --------- 58# -------- Compiler options ---------
diff --git a/cmake/treedata/common/subdirs.txt b/cmake/treedata/common/subdirs.txt
index 1988d5b..ac1ee12 100644
--- a/cmake/treedata/common/subdirs.txt
+++ b/cmake/treedata/common/subdirs.txt
@@ -9,10 +9,12 @@ xbmc/addons/interfaces/gui/controls addons_interfaces_gui_controls
9xbmc/addons/interfaces/gui/dialogs addons_interfaces_gui_dialogs 9xbmc/addons/interfaces/gui/dialogs addons_interfaces_gui_dialogs
10xbmc/addons/kodi-dev-kit/include/kodi addons_kodi-dev-kit_include_kodi 10xbmc/addons/kodi-dev-kit/include/kodi addons_kodi-dev-kit_include_kodi
11xbmc/addons/kodi-dev-kit/include/kodi/addon-instance addons_kodi-dev-kit_include_kodi_addon-instance 11xbmc/addons/kodi-dev-kit/include/kodi/addon-instance addons_kodi-dev-kit_include_kodi_addon-instance
12xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/inputstream addons_kodi-dev-kit_include_kodi_addon-instance_inputstream
12xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/peripheral addons_kodi-dev-kit_include_kodi_addon-instance_peripheral 13xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/peripheral addons_kodi-dev-kit_include_kodi_addon-instance_peripheral
13xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr addons_kodi-dev-kit_include_kodi_addon-instance_pvr 14xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr addons_kodi-dev-kit_include_kodi_addon-instance_pvr
14xbmc/addons/kodi-dev-kit/include/kodi/c-api addons_kodi-dev-kit_include_kodi_c-api 15xbmc/addons/kodi-dev-kit/include/kodi/c-api addons_kodi-dev-kit_include_kodi_c-api
15xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance addons_kodi-dev-kit_include_kodi_c-api_addon-instance 16xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance addons_kodi-dev-kit_include_kodi_c-api_addon-instance
17xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/inputstream addons_kodi-dev-kit_include_kodi_c-api_addon-instance_inputstream
16xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/pvr addons_kodi-dev-kit_include_kodi_c-api_addon-instance_pvr 18xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon-instance/pvr addons_kodi-dev-kit_include_kodi_c-api_addon-instance_pvr
17xbmc/addons/kodi-dev-kit/include/kodi/c-api/gui addons_kodi-dev-kit_include_kodi_c-api_gui 19xbmc/addons/kodi-dev-kit/include/kodi/c-api/gui addons_kodi-dev-kit_include_kodi_c-api_gui
18xbmc/addons/kodi-dev-kit/include/kodi/c-api/gui/controls addons_kodi-dev-kit_include_kodi_c-api_gui_controls 20xbmc/addons/kodi-dev-kit/include/kodi/c-api/gui/controls addons_kodi-dev-kit_include_kodi_c-api_gui_controls