summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/README.md15
-rw-r--r--cmake/installdata/common/addons.txt5
-rw-r--r--cmake/installdata/windows/dlls.txt3
-rw-r--r--cmake/installdata/windows/python.txt1
-rw-r--r--cmake/modules/FindBluray.cmake2
-rw-r--r--cmake/modules/FindEMBEDDED.cmake16
-rw-r--r--cmake/modules/FindFFMPEG.cmake2
-rw-r--r--cmake/modules/FindGBM.cmake44
-rw-r--r--cmake/modules/FindLibDvd.cmake2
-rw-r--r--cmake/modules/FindOpenGLES.cmake18
-rw-r--r--cmake/modules/FindOpenGLES3.cmake24
-rw-r--r--cmake/modules/FindSndio.cmake59
-rw-r--r--cmake/modules/FindVAAPI.cmake52
-rw-r--r--cmake/platform/android/android.cmake2
-rw-r--r--cmake/platform/linux/gbm.cmake2
-rw-r--r--cmake/platform/linux/rbpi.cmake (renamed from cmake/platform/rbpi/rbpi.cmake)0
-rw-r--r--cmake/platform/rbpi/defines.txt1
-rw-r--r--cmake/scripts/android/Install.cmake5
-rw-r--r--cmake/scripts/common/AddonHelpers.cmake15
-rw-r--r--cmake/scripts/common/ArchSetup.cmake3
-rw-r--r--cmake/scripts/common/Macros.cmake10
-rw-r--r--cmake/scripts/common/Platform.cmake32
-rw-r--r--cmake/scripts/common/PrepareEnv.cmake2
-rw-r--r--cmake/scripts/linux/ArchSetup.cmake21
-rw-r--r--cmake/scripts/linux/Install.cmake5
-rw-r--r--cmake/scripts/rbpi/ArchSetup.cmake35
l---------cmake/scripts/rbpi/ExtraTargets.cmake1
l---------cmake/scripts/rbpi/Install.cmake1
l---------cmake/scripts/rbpi/Macros.cmake1
l---------cmake/scripts/rbpi/PathSetup.cmake1
-rw-r--r--cmake/scripts/windows/ArchSetup.cmake14
-rw-r--r--cmake/treedata/android/subdirs.txt2
-rw-r--r--cmake/treedata/common/games.txt1
-rw-r--r--cmake/treedata/common/subdirs.txt6
-rw-r--r--cmake/treedata/ios/subdirs.txt1
-rw-r--r--cmake/treedata/linux/subdirs.txt2
-rw-r--r--cmake/treedata/optional/common/X.txt1
-rw-r--r--cmake/treedata/optional/common/gbm.txt1
-rw-r--r--cmake/treedata/osx/subdirs.txt1
-rw-r--r--cmake/treedata/rbpi/omxplayer.txt1
-rw-r--r--cmake/treedata/rbpi/subdirs.txt12
-rw-r--r--cmake/treedata/windows/subdirs.txt1
42 files changed, 240 insertions, 183 deletions
diff --git a/cmake/README.md b/cmake/README.md
index 6d338a4..81c0517 100644
--- a/cmake/README.md
+++ b/cmake/README.md
@@ -40,7 +40,7 @@ For Windows the dependencies can be found in the
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). 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 41
42On Windows, the CMake based buildsystem requires that the binary dependencies 42On Windows, the CMake based buildsystem requires that the binary dependencies
43are downloaded using `DownloadBuildDeps.bat` and `DownloadMingwBuildEnv.bat` 43are downloaded using `download-dependencies.bat` and `download-msys2.bat`
44and that the mingw libs (ffmpeg, libdvd and others) are built using 44and that the mingw libs (ffmpeg, libdvd and others) are built using
45`make-mingwlibs.bat`. 45`make-mingwlibs.bat`.
46 46
@@ -113,17 +113,24 @@ cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc)
113``` 113```
114 114
115### Windows with Visual Studio project files 115### Windows with Visual Studio project files
116 116#### Build for win32
117``` 117```
118cmake -G "Visual Studio 14" <KODI_SRC> 118cmake -G "Visual Studio 14" <KODI_SRC>
119cmake --build . --config "Debug" # or: Build solution with Visual Studio 119cmake --build . --config "Debug" # or: Build solution with Visual Studio
120Debug\kodi.exe 120Debug\kodi.exe
121``` 121```
122#### Build for x64
123```
124cmake -G "Visual Studio 14 Win64" <KODI_SRC>
125cmake --build . --config "Debug" # or: Build solution with Visual Studio
126Debug\kodi.exe
127```
128You can always check ``cmake --help` to see which generators are available and how to call those.
122 129
123#### Windows installer generation 130#### Windows installer generation
124 131
125The script [project/Win32BuildSetup](https://github.com/xbmc/xbmc/blob/master/project/Win32BuildSetup/BuildSetup.bat) 132The script [project/Win32BuildSetup](https://github.com/xbmc/xbmc/blob/master/tools/buildsteps/windows/win32/BuildSetup.bat) or [project/Win64BuildSetup](https://github.com/xbmc/xbmc/blob/master/tools/buildsteps/windows/x64/BuildSetup.bat)
126builds an installable package for Windows. 133builds an installable package for Windows. Choose either 32bit or 64bit, depending on what your trying to build.
127 134
128### Windows with NMake Makefiles 135### Windows with NMake Makefiles
129 136
diff --git a/cmake/installdata/common/addons.txt b/cmake/installdata/common/addons.txt
index 0c8f296..9efba38 100644
--- a/cmake/installdata/common/addons.txt
+++ b/cmake/installdata/common/addons.txt
@@ -1,6 +1,5 @@
1addons/audioencoder.xbmc.builtin.aac/* 1addons/audioencoder.kodi.builtin.aac/*
2addons/audioencoder.xbmc.builtin.wav/* 2addons/audioencoder.kodi.builtin.wma/*
3addons/audioencoder.xbmc.builtin.wma/*
4addons/game.controller.default/* 3addons/game.controller.default/*
5addons/kodi.adsp/* 4addons/kodi.adsp/*
6addons/kodi.audiodecoder/* 5addons/kodi.audiodecoder/*
diff --git a/cmake/installdata/windows/dlls.txt b/cmake/installdata/windows/dlls.txt
index de82a86..25c6500 100644
--- a/cmake/installdata/windows/dlls.txt
+++ b/cmake/installdata/windows/dlls.txt
@@ -1,3 +1,4 @@
1system/*.dll . 1system/*.dll .
2project/Win32BuildSetup/dependencies/python27.dll . 2project/BuildDependencies/${ARCH}/bin/libbluray*.jar .
3project/BuildDependencies/${ARCH}/bin/*.dll . 3project/BuildDependencies/${ARCH}/bin/*.dll .
4project/BuildDependencies/mingwlibs/${ARCH}/bin/*.dll .
diff --git a/cmake/installdata/windows/python.txt b/cmake/installdata/windows/python.txt
index e487e3f..5606628 100644
--- a/cmake/installdata/windows/python.txt
+++ b/cmake/installdata/windows/python.txt
@@ -1,2 +1 @@
1system/python/*
2project/BuildDependencies/${ARCH}/bin/Python KEEP_DIR_STRUCTURE system project/BuildDependencies/${ARCH}/bin/Python KEEP_DIR_STRUCTURE system
diff --git a/cmake/modules/FindBluray.cmake b/cmake/modules/FindBluray.cmake
index 0bba128..9e5bf08 100644
--- a/cmake/modules/FindBluray.cmake
+++ b/cmake/modules/FindBluray.cmake
@@ -15,7 +15,7 @@
15# Bluray::Bluray - The libbluray library 15# Bluray::Bluray - The libbluray library
16 16
17if(PKG_CONFIG_FOUND) 17if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_BLURAY libbluray>=0.7.0 QUIET) 18 pkg_check_modules(PC_BLURAY libbluray>=0.9.3 QUIET)
19endif() 19endif()
20 20
21find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h 21find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h
diff --git a/cmake/modules/FindEMBEDDED.cmake b/cmake/modules/FindEMBEDDED.cmake
deleted file mode 100644
index 8034c4e..0000000
--- a/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 KODI_DEPENDSBUILD AND NOT TARGET_ARCH_ARM)
13 return()
14endif()
15
16find_path(EMBEDDED_FOUND NAMES include/linux/mxcfb.h include/bcm_host.h PATHS /opt/vc)
diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
index 63505a5..dbeb444 100644
--- a/cmake/modules/FindFFMPEG.cmake
+++ b/cmake/modules/FindFFMPEG.cmake
@@ -224,7 +224,7 @@ if(NOT FFMPEG_FOUND)
224 if(FFMPEG_URL) 224 if(FFMPEG_URL)
225 get_filename_component(FFMPEG_URL "${FFMPEG_URL}" ABSOLUTE) 225 get_filename_component(FFMPEG_URL "${FFMPEG_URL}" ABSOLUTE)
226 else() 226 else()
227 set(FFMPEG_URL ${FFMPEG_BASE_URL}/${FFMPEG_VER}.tar.gz) 227 set(FFMPEG_URL ${FFMPEG_BASE_URL}/archive/${FFMPEG_VER}.tar.gz)
228 endif() 228 endif()
229 if(VERBOSE) 229 if(VERBOSE)
230 message(STATUS "FFMPEG_URL: ${FFMPEG_URL}") 230 message(STATUS "FFMPEG_URL: ${FFMPEG_URL}")
diff --git a/cmake/modules/FindGBM.cmake b/cmake/modules/FindGBM.cmake
new file mode 100644
index 0000000..ac95241
--- /dev/null
+++ b/cmake/modules/FindGBM.cmake
@@ -0,0 +1,44 @@
1# FindGBM
2# ----------
3# Finds the GBM library
4#
5# This will will define the following variables::
6#
7# GBM_FOUND - system has GBM
8# GBM_INCLUDE_DIRS - the GBM include directory
9# GBM_LIBRARIES - the GBM libraries
10# GBM_DEFINITIONS - the GBM definitions
11#
12# and the following imported targets::
13#
14# GBM::GBM - The GBM library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_GBM gbm QUIET)
18endif()
19
20find_path(GBM_INCLUDE_DIR NAMES gbm.h
21 PATHS ${PC_GBM_INCLUDEDIR})
22find_library(GBM_LIBRARY NAMES gbm
23 PATHS ${PC_GBM_LIBDIR})
24
25set(GBM_VERSION ${PC_GBM_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(GBM
29 REQUIRED_VARS GBM_LIBRARY GBM_INCLUDE_DIR
30 VERSION_VAR GBM_VERSION)
31
32if(GBM_FOUND)
33 set(GBM_LIBRARIES ${GBM_LIBRARY})
34 set(GBM_INCLUDE_DIRS ${GBM_INCLUDE_DIR})
35 set(GBM_DEFINITIONS -DHAVE_GBM=1)
36 if(NOT TARGET GBM::GBM)
37 add_library(GBM::GBM UNKNOWN IMPORTED)
38 set_target_properties(GBM::GBM PROPERTIES
39 IMPORTED_LOCATION "${GBM_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${GBM_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(GBM_INCLUDE_DIR GBM_LIBRARY)
diff --git a/cmake/modules/FindLibDvd.cmake b/cmake/modules/FindLibDvd.cmake
index eeb416c..86af89c 100644
--- a/cmake/modules/FindLibDvd.cmake
+++ b/cmake/modules/FindLibDvd.cmake
@@ -203,7 +203,7 @@ if(NOT WIN32)
203 endif() 203 endif()
204else() 204else()
205 # Dynamically loaded on Windows 205 # Dynamically loaded on Windows
206 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h PATHS ${CMAKE_SOURCE_DIR}/lib/libdvd/include) 206 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h)
207 207
208 include(FindPackageHandleStandardArgs) 208 include(FindPackageHandleStandardArgs)
209 find_package_handle_standard_args(LibDvd REQUIRED_VARS LIBDVD_INCLUDE_DIR) 209 find_package_handle_standard_args(LibDvd REQUIRED_VARS LIBDVD_INCLUDE_DIR)
diff --git a/cmake/modules/FindOpenGLES.cmake b/cmake/modules/FindOpenGLES.cmake
index ab06f96..4333a69 100644
--- a/cmake/modules/FindOpenGLES.cmake
+++ b/cmake/modules/FindOpenGLES.cmake
@@ -10,13 +10,8 @@
10# OPENGLES_LIBRARIES - the OpenGLES libraries 10# OPENGLES_LIBRARIES - the OpenGLES libraries
11# OPENGLES_DEFINITIONS - the OpenGLES definitions 11# OPENGLES_DEFINITIONS - the OpenGLES definitions
12 12
13find_package(EMBEDDED) 13if(PKG_CONFIG_FOUND)
14
15if(PKG_CONFIG_FOUND AND NOT PLATFORM STREQUAL "raspberry-pi")
16 pkg_check_modules(PC_OPENGLES glesv2 QUIET) 14 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() 15endif()
21 16
22if(NOT CORE_SYSTEM_NAME STREQUAL ios) 17if(NOT CORE_SYSTEM_NAME STREQUAL ios)
@@ -24,25 +19,22 @@ if(NOT CORE_SYSTEM_NAME STREQUAL ios)
24 PATHS ${PC_OPENGLES_INCLUDEDIR}) 19 PATHS ${PC_OPENGLES_INCLUDEDIR})
25 find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 20 find_library(OPENGLES_gl_LIBRARY NAMES GLESv2
26 PATHS ${PC_OPENGLES_LIBDIR}) 21 PATHS ${PC_OPENGLES_LIBDIR})
27 find_library(OPENGLES_egl_LIBRARY NAMES EGL
28 PATHS ${PC_OPENGLES_LIBDIR})
29else() 22else()
30 find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES 23 find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES
31 PATHS ${CMAKE_OSX_SYSROOT}/System/Library 24 PATHS ${CMAKE_OSX_SYSROOT}/System/Library
32 PATH_SUFFIXES Frameworks 25 PATH_SUFFIXES Frameworks
33 NO_DEFAULT_PATH) 26 NO_DEFAULT_PATH)
34 set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers) 27 set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers)
35 set(OPENGLES_egl_LIBRARY ${OPENGLES_gl_LIBRARY})
36endif() 28endif()
37 29
38include(FindPackageHandleStandardArgs) 30include(FindPackageHandleStandardArgs)
39find_package_handle_standard_args(OpenGLES 31find_package_handle_standard_args(OpenGLES
40 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY OPENGLES_INCLUDE_DIR) 32 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
41 33
42if(OPENGLES_FOUND) 34if(OPENGLES_FOUND)
43 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR}) 35 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
44 set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY} ${OPENGLES_egl_LIBRARY}) 36 set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY})
45 set(OPENGLES_DEFINITIONS -DHAVE_LIBGLESV2 -DHAVE_LIBEGL=1) 37 set(OPENGLES_DEFINITIONS -DHAVE_LIBGLESV2)
46endif() 38endif()
47 39
48mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY OPENGLES_egl_LIBRARY) 40mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY)
diff --git a/cmake/modules/FindOpenGLES3.cmake b/cmake/modules/FindOpenGLES3.cmake
new file mode 100644
index 0000000..394328d
--- /dev/null
+++ b/cmake/modules/FindOpenGLES3.cmake
@@ -0,0 +1,24 @@
1#.rst:
2# FindOpenGLES3
3# ------------
4# Finds the OpenGLES3 library
5#
6# This will will define the following variables::
7#
8# OPENGLES3_FOUND - system has OpenGLES3
9# OPENGLES3_INCLUDE_DIRS - the OpenGLES3 include directory
10# OPENGLES3_DEFINITIONS - the OpenGLES3 definitions
11
12
13find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h)
14
15include(FindPackageHandleStandardArgs)
16find_package_handle_standard_args(OpenGLES3
17 REQUIRED_VARS OPENGLES3_INCLUDE_DIR)
18
19if(OPENGLES3_FOUND)
20 set(OPENGLES3_INCLUDE_DIRS ${OPENGLES3_INCLUDE_DIR})
21 set(OPENGLES3_DEFINITIONS -DHAVE_LIBGLESV3)
22endif()
23
24mark_as_advanced(OPENGLES3_INCLUDE_DIR)
diff --git a/cmake/modules/FindSndio.cmake b/cmake/modules/FindSndio.cmake
index 4e66a4b..3dd53d9 100644
--- a/cmake/modules/FindSndio.cmake
+++ b/cmake/modules/FindSndio.cmake
@@ -1,34 +1,41 @@
1# sndio check, based on FindAlsa.cmake
2# 1#
3 2# FindSndio
4# Copyright (c) 2006, David Faure, <faure@kde.org> 3# ---------
5# Copyright (c) 2007, Matthias Kretz <kretz@kde.org> 4# Finds the Sndio Library
6# Copyright (c) 2009, Jacob Meuser <jakemsr@sdf.lonestar.org> 5#
6# This will will define the following variables:
7#
8# SNDIO_FOUND - system has sndio
9# SNDIO_INCLUDE_DIRS - sndio include directory
10# SNDIO_DEFINITIONS - sndio definitions
11#
12# and the following imported targets::
13#
14# Sndio::Sndio - the sndio library
7# 15#
8# Redistribution and use is allowed according to the terms of the BSD license.
9# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
10
11include(CheckIncludeFiles)
12include(CheckIncludeFileCXX)
13include(CheckLibraryExists)
14 16
15# Already done by toplevel 17find_path(SNDIO_INCLUDE_DIR sndio.h)
16find_library(SNDIO_LIBRARY sndio) 18find_library(SNDIO_LIBRARY sndio)
17set(SNDIO_LIBRARY_DIR "")
18if(SNDIO_LIBRARY)
19 get_filename_component(SNDIO_LIBRARY_DIR ${SNDIO_LIBRARY} PATH)
20endif(SNDIO_LIBRARY)
21 19
22check_library_exists(sndio sio_open "${SNDIO_LIBRARY_DIR}" HAVE_SNDIO) 20
23if(HAVE_SNDIO) 21include(FindPackageHandleStandardArgs)
24 message(STATUS "Found sndio: ${SNDIO_LIBRARY}") 22find_package_handle_standard_args(Sndio
25 set(SNDIO_DEFINITIONS -DHAVE_SNDIO=1) 23 REQUIRED_VARS SNDIO_LIBRARY SNDIO_INCLUDE_DIR)
24
25if(SNDIO_FOUND)
26 set(SNDIO_INCLUDE_DIRS ${SNDIO_INCLUDE_DIR})
26 set(SNDIO_LIBRARIES ${SNDIO_LIBRARY}) 27 set(SNDIO_LIBRARIES ${SNDIO_LIBRARY})
27else(HAVE_SNDIO) 28 set(SNDIO_DEFINITIONS -DHAVE_SNDIO=1)
28 message(STATUS "sndio not found") 29
29endif(HAVE_SNDIO) 30 if(NOT TARGET Sndio::Sndio)
30set(SNDIO_FOUND ${HAVE_SNDIO}) 31 add_library(Sndio::Sndio UNKNOWN IMPORTED)
32 set_target_properties(Sndio::Sndio PROPERTIES
33 IMPORTED_LOCATION "${SNDIO_LIBRARY}"
34 INTERFACE_INCLUDE_DIRECTORIES "${SNDIO_INCLUDE_DIR}")
35 set_target_properties(Sndio::Sndio PROPERTIES
36 INTERFACE_COMPILE_DEFINITIONS -DHAVE_SNDIO=1)
37 endif()
38endif()
31 39
32find_path(SNDIO_INCLUDES sndio.h)
33 40
34mark_as_advanced(SNDIO_INCLUDES SNDIO_LIBRARY) 41mark_as_advanced(SNDIO_INCLUDE_DIR SNDIO_LIBRARY)
diff --git a/cmake/modules/FindVAAPI.cmake b/cmake/modules/FindVAAPI.cmake
index 49f74d8..5b57d23 100644
--- a/cmake/modules/FindVAAPI.cmake
+++ b/cmake/modules/FindVAAPI.cmake
@@ -9,23 +9,29 @@
9# VAAPI_INCLUDE_DIRS - the VAAPI include directory 9# VAAPI_INCLUDE_DIRS - the VAAPI include directory
10# VAAPI_LIBRARIES - the VAAPI libraries 10# VAAPI_LIBRARIES - the VAAPI libraries
11# VAAPI_DEFINITIONS - the VAAPI definitions 11# VAAPI_DEFINITIONS - the VAAPI definitions
12#
13# and the following imported targets::
14#
15# VAAPI::VAAPI - The VAAPI library
16 12
17if(PKG_CONFIG_FOUND) 13if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_VAAPI libva libva-x11 QUIET) 14 pkg_check_modules(PC_VAAPI libva libva-drm libva-x11 QUIET)
19endif() 15endif()
20 16
21find_path(VAAPI_INCLUDE_DIR va/va.h 17set(REQUIRED_VARS "VAAPI_libva_LIBRARY" "VAAPI_libva-drm_LIBRARY" "VAAPI_libva_INCLUDE_DIR" "VAAPI_libva-drm_INCLUDE_DIR")
18
19find_path(VAAPI_libva_INCLUDE_DIR va/va.h
22 PATHS ${PC_VAAPI_libva_INCLUDEDIR}) 20 PATHS ${PC_VAAPI_libva_INCLUDEDIR})
23find_library(VAAPI_libva_LIBRARY NAMES va 21find_library(VAAPI_libva_LIBRARY NAMES va
24 PATHS ${PC_VAAPI_libva_LIBDIR}) 22 PATHS ${PC_VAAPI_libva_LIBDIR})
25find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 23find_path(VAAPI_libva-drm_INCLUDE_DIR va/va_drm.h
26 PATHS ${PC_VAAPI_libva_LIBDIR}) 24 PATHS ${PC_VAAPI_libva-drm_INCLUDEDIR})
27find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm 25find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm
28 PATHS ${PC_VAAPI_libva_LIBDIR}) 26 PATHS ${PC_VAAPI_libva-drm_LIBDIR})
27
28if(CORE_PLATFORM_NAME_LC STREQUAL "x11")
29 find_path(VAAPI_libva-x11_INCLUDE_DIR va/va_x11.h
30 PATHS ${PC_VAAPI_libva-x11_INCLUDEDIR})
31 find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11
32 PATHS ${PC_VAAPI_libva-x11_LIBDIR})
33 list(APPEND REQUIRED_VARS "VAAPI_libva-x11_INCLUDE_DIR" "VAAPI_libva-x11_LIBRARY")
34endif()
29 35
30if(PC_VAAPI_libva_VERSION) 36if(PC_VAAPI_libva_VERSION)
31 set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION}) 37 set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION})
@@ -41,32 +47,14 @@ endif()
41 47
42include(FindPackageHandleStandardArgs) 48include(FindPackageHandleStandardArgs)
43find_package_handle_standard_args(VAAPI 49find_package_handle_standard_args(VAAPI
44 REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_INCLUDE_DIR 50 REQUIRED_VARS ${REQUIRED_VARS}
45 VERSION_VAR VAAPI_VERSION_STRING) 51 VERSION_VAR VAAPI_VERSION_STRING)
46 52
47if(VAAPI_FOUND) 53if(VAAPI_FOUND)
48 set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) 54 set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR} ${VAAPI_DRM_INCLUDE_DIR} ${VAAPI_X11_INCLUDE_DIR})
49 set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY} ${VAAPI_libva-drm_LIBRARY}) 55 set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-drm_LIBRARY} ${VAAPI_libva-x11_LIBRARY})
50 set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) 56 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() 57endif()
71 58
72mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY) 59mark_as_advanced(VAAPI_libva_INCLUDE_DIR VAAPI_libva-drm_INCLUDE_DIR VAAPI_libva-x11_INCLUDE_DIR
60 VAAPI_libva_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_libva-x11_LIBRARY)
diff --git a/cmake/platform/android/android.cmake b/cmake/platform/android/android.cmake
index ab0f361..bfa003b 100644
--- a/cmake/platform/android/android.cmake
+++ b/cmake/platform/android/android.cmake
@@ -1 +1 @@
set(PLATFORM_REQUIRED_DEPS OpenGLES) set(PLATFORM_REQUIRED_DEPS OpenGLES EGL)
diff --git a/cmake/platform/linux/gbm.cmake b/cmake/platform/linux/gbm.cmake
new file mode 100644
index 0000000..616cefb
--- /dev/null
+++ b/cmake/platform/linux/gbm.cmake
@@ -0,0 +1,2 @@
1set(PLATFORM_REQUIRED_DEPS OpenGLES EGL GBM LibDRM)
2set(PLATFORM_OPTIONAL_DEPS VAAPI OpenGLES3)
diff --git a/cmake/platform/rbpi/rbpi.cmake b/cmake/platform/linux/rbpi.cmake
index 4899857..4899857 100644
--- a/cmake/platform/rbpi/rbpi.cmake
+++ b/cmake/platform/linux/rbpi.cmake
diff --git a/cmake/platform/rbpi/defines.txt b/cmake/platform/rbpi/defines.txt
deleted file mode 100644
index 08fe4cb..0000000
--- a/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/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake
index 0ab7dbd..4065fc3 100644
--- a/cmake/scripts/android/Install.cmake
+++ b/cmake/scripts/android/Install.cmake
@@ -41,13 +41,13 @@ set(package_files strings.xml
41 src/org/xbmc/kodi/XBMCInputDeviceListener.java 41 src/org/xbmc/kodi/XBMCInputDeviceListener.java
42 src/org/xbmc/kodi/XBMCJsonRPC.java 42 src/org/xbmc/kodi/XBMCJsonRPC.java
43 src/org/xbmc/kodi/XBMCMediaContentProvider.java 43 src/org/xbmc/kodi/XBMCMediaContentProvider.java
44 src/org/xbmc/kodi/XBMCOnAudioFocusChangeListener.java
45 src/org/xbmc/kodi/XBMCOnFrameAvailableListener.java
46 src/org/xbmc/kodi/XBMCRecommendationBuilder.java 44 src/org/xbmc/kodi/XBMCRecommendationBuilder.java
47 src/org/xbmc/kodi/XBMCSearchableActivity.java 45 src/org/xbmc/kodi/XBMCSearchableActivity.java
48 src/org/xbmc/kodi/XBMCSettingsContentObserver.java 46 src/org/xbmc/kodi/XBMCSettingsContentObserver.java
49 src/org/xbmc/kodi/XBMCProperties.java 47 src/org/xbmc/kodi/XBMCProperties.java
50 src/org/xbmc/kodi/XBMCVideoView.java 48 src/org/xbmc/kodi/XBMCVideoView.java
49 src/org/xbmc/kodi/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java
50 src/org/xbmc/kodi/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java
51 ) 51 )
52foreach(file IN LISTS package_files) 52foreach(file IN LISTS package_files)
53 configure_file(${CMAKE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in 53 configure_file(${CMAKE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in
@@ -121,6 +121,7 @@ foreach(target apk obb apk-unsigned apk-obb apk-obb-unsigned apk-noobb apk-clean
121 CPU=${CPU} 121 CPU=${CPU}
122 ARCH=${ARCH} 122 ARCH=${ARCH}
123 PREFIX=${prefix} 123 PREFIX=${prefix}
124 DEPENDS_PATH=${DEPENDS_PATH}
124 NDKROOT=${NDKROOT} 125 NDKROOT=${NDKROOT}
125 SDKROOT=${SDKROOT} 126 SDKROOT=${SDKROOT}
126 SDK_PLATFORM=${SDK_PLATFORM} 127 SDK_PLATFORM=${SDK_PLATFORM}
diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake
index 8772057..abb79ff 100644
--- a/cmake/scripts/common/AddonHelpers.cmake
+++ b/cmake/scripts/common/AddonHelpers.cmake
@@ -228,7 +228,7 @@ macro (build_addon target prefix libs)
228 set(CPACK_COMPONENTS_IGNORE_GROUPS 1) 228 set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
229 list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION}) 229 list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION})
230 # Pack files together to create an archive 230 # Pack files together to create an archive
231 install(DIRECTORY ${target} DESTINATION ./ COMPONENT ${target}-${${prefix}_VERSION} PATTERN "xml.in" EXCLUDE) 231 install(DIRECTORY ${target} DESTINATION ./ COMPONENT ${target}-${${prefix}_VERSION} PATTERN "*.xml.in" EXCLUDE)
232 if(WIN32) 232 if(WIN32)
233 if(NOT CPACK_PACKAGE_DIRECTORY) 233 if(NOT CPACK_PACKAGE_DIRECTORY)
234 # determine the temporary path 234 # determine the temporary path
@@ -266,6 +266,9 @@ macro (build_addon target prefix libs)
266 if(${prefix}_CUSTOM_DATA) 266 if(${prefix}_CUSTOM_DATA)
267 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) 267 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources)
268 endif() 268 endif()
269 if(${prefix}_ADDITIONAL_BINARY)
270 install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target})
271 endif()
269 else() # NOT WIN32 272 else() # NOT WIN32
270 if(NOT CPACK_PACKAGE_DIRECTORY) 273 if(NOT CPACK_PACKAGE_DIRECTORY)
271 set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}) 274 set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR})
@@ -281,10 +284,13 @@ macro (build_addon target prefix libs)
281 if(${prefix}_CUSTOM_DATA) 284 if(${prefix}_CUSTOM_DATA)
282 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) 285 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources)
283 endif() 286 endif()
287 if(${prefix}_ADDITIONAL_BINARY)
288 install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target})
289 endif()
284 endif() 290 endif()
285 add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext}) 291 add_cpack_workaround(${target} ${${prefix}_VERSION} ${ext})
286 else() 292 else()
287 if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi OR CORE_SYSTEM_NAME STREQUAL freebsd) 293 if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
288 if(NOT OVERRIDE_PATHS) 294 if(NOT OVERRIDE_PATHS)
289 if(CMAKE_INSTALL_PREFIX AND NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT CMAKE_INSTALL_PREFIX STREQUAL "${${APP_NAME_UC}_PREFIX}") 295 if(CMAKE_INSTALL_PREFIX AND NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND NOT CMAKE_INSTALL_PREFIX STREQUAL "${${APP_NAME_UC}_PREFIX}")
290 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") 296 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")
@@ -316,10 +322,13 @@ macro (build_addon target prefix libs)
316 if (${prefix}_CUSTOM_BINARY) 322 if (${prefix}_CUSTOM_BINARY)
317 install(FILES ${LIBRARY_LOCATION} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target} RENAME ${LIBRARY_FILENAME}) 323 install(FILES ${LIBRARY_LOCATION} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target} RENAME ${LIBRARY_FILENAME})
318 endif() 324 endif()
319 install(DIRECTORY ${target} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons PATTERN "xml.in" EXCLUDE) 325 install(DIRECTORY ${target} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons PATTERN "*.xml.in" EXCLUDE)
320 if(${prefix}_CUSTOM_DATA) 326 if(${prefix}_CUSTOM_DATA)
321 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons/${target}/resources) 327 install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/addons/${target}/resources)
322 endif() 328 endif()
329 if(${prefix}_ADDITIONAL_BINARY)
330 install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${CMAKE_INSTALL_LIBDIR}/addons/${target})
331 endif()
323 endif() 332 endif()
324 if(${APP_NAME_UC}_BUILD_DIR) 333 if(${APP_NAME_UC}_BUILD_DIR)
325 file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*) 334 file(GLOB_RECURSE files ${CMAKE_CURRENT_SOURCE_DIR}/${target}/*)
diff --git a/cmake/scripts/common/ArchSetup.cmake b/cmake/scripts/common/ArchSetup.cmake
index 8d5dba8..357c14c 100644
--- a/cmake/scripts/common/ArchSetup.cmake
+++ b/cmake/scripts/common/ArchSetup.cmake
@@ -54,9 +54,6 @@ endmacro()
54 54
55# -------- Main script --------- 55# -------- Main script ---------
56message(STATUS "System type: ${CMAKE_SYSTEM_NAME}") 56message(STATUS "System type: ${CMAKE_SYSTEM_NAME}")
57if(NOT CORE_SYSTEM_NAME)
58 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
59endif()
60 57
61if(WITH_CPU) 58if(WITH_CPU)
62 set(CPU ${WITH_CPU}) 59 set(CPU ${WITH_CPU})
diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake
index 4b6f890..8bee3da 100644
--- a/cmake/scripts/common/Macros.cmake
+++ b/cmake/scripts/common/Macros.cmake
@@ -706,13 +706,13 @@ macro(find_addon_xml_in_files)
706 foreach(loop_var ${ADDON_FILES}) 706 foreach(loop_var ${ADDON_FILES})
707 if(loop_var MATCHES "addon.xml.in") 707 if(loop_var MATCHES "addon.xml.in")
708 string(REPLACE "addon.xml.in" "addon.xml" loop_var ${loop_var}) 708 string(REPLACE "addon.xml.in" "addon.xml" loop_var ${loop_var})
709 endif()
710 709
711 list(GET loop_var 0 file_name) 710 list(GET loop_var 0 file_name)
712 string(REPLACE "${CORE_SOURCE_DIR}/" "" file_name ${file_name}) 711 string(REPLACE "${CORE_SOURCE_DIR}/" "" file_name ${file_name})
713 list(APPEND ADDON_INSTALL_DATA "${file_name}") 712 list(APPEND ADDON_INSTALL_DATA "${file_name}")
714 713
715 unset(file_name) 714 unset(file_name)
715 endif()
716 endforeach() 716 endforeach()
717 unset(xml_name) 717 unset(xml_name)
718 endforeach() 718 endforeach()
diff --git a/cmake/scripts/common/Platform.cmake b/cmake/scripts/common/Platform.cmake
new file mode 100644
index 0000000..b19b7e5
--- /dev/null
+++ b/cmake/scripts/common/Platform.cmake
@@ -0,0 +1,32 @@
1if(NOT CORE_SYSTEM_NAME)
2 string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME)
3endif()
4
5if(CORE_SYSTEM_NAME STREQUAL linux)
6 # Set default CORE_PLATFORM_NAME to X11
7 # This is overridden by user setting -DCORE_PLATFORM_NAME=<platform>
8 set(_DEFAULT_PLATFORM X11)
9else()
10 string(TOLOWER ${CORE_SYSTEM_NAME} _DEFAULT_PLATFORM)
11endif()
12
13#
14# Note: please do not use CORE_PLATFORM_NAME in any checks,
15# use the normalized to lower case CORE_PLATFORM_NAME_LC (see below) instead
16#
17if(NOT CORE_PLATFORM_NAME)
18 set(CORE_PLATFORM_NAME ${_DEFAULT_PLATFORM} CACHE STRING "Platform port to build")
19endif()
20unset(_DEFAULT_PLATFORM)
21string(TOLOWER ${CORE_PLATFORM_NAME} CORE_PLATFORM_NAME_LC)
22
23list(APPEND final_message "Platform: ${CORE_PLATFORM_NAME}")
24if(EXISTS ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake)
25 include(${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/${CORE_PLATFORM_NAME_LC}.cmake)
26else()
27 file(GLOB _platformnames RELATIVE ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/
28 ${CMAKE_SOURCE_DIR}/cmake/platform/${CORE_SYSTEM_NAME}/*.cmake)
29 string(REPLACE ".cmake" " " _platformnames ${_platformnames})
30 message(FATAL_ERROR "invalid CORE_PLATFORM_NAME: ${CORE_PLATFORM_NAME_LC}\nValid platforms: ${_platformnames}")
31endif()
32
diff --git a/cmake/scripts/common/PrepareEnv.cmake b/cmake/scripts/common/PrepareEnv.cmake
index 4dc8698..5a6066b 100644
--- a/cmake/scripts/common/PrepareEnv.cmake
+++ b/cmake/scripts/common/PrepareEnv.cmake
@@ -42,7 +42,7 @@ file(COPY ${CORE_SOURCE_DIR}/cmake/scripts/common/AddonHelpers.cmake
42 42
43# copy standard add-on include files 43# copy standard add-on include files
44file(COPY ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ 44file(COPY ${CORE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/
45 DESTINATION ${APP_INCLUDE_DIR}) 45 DESTINATION ${APP_INCLUDE_DIR} REGEX ".txt" EXCLUDE)
46 46
47### copy all the addon binding header files to include/kodi 47### copy all the addon binding header files to include/kodi
48# parse addon-bindings.mk to get the list of header files to copy 48# parse addon-bindings.mk to get the list of header files to copy
diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake
index c31becd..bf32fe0 100644
--- a/cmake/scripts/linux/ArchSetup.cmake
+++ b/cmake/scripts/linux/ArchSetup.cmake
@@ -1,6 +1,10 @@
1set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_LINUX) 1set(ARCH_DEFINES -D_LINUX -DTARGET_POSIX -DTARGET_LINUX)
2set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_LARGEFILE64_SOURCE 2# temp until further cleanup is done
3 -D_FILE_OFFSET_BITS=64) 3if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
4 list(APPEND ARCH_DEFINES -D_ARMEL -DTARGET_RASPBERRY_PI)
5endif()
6set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
7 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
4set(PLATFORM_DIR linux) 8set(PLATFORM_DIR linux)
5set(CMAKE_SYSTEM_NAME Linux) 9set(CMAKE_SYSTEM_NAME Linux)
6if(WITH_ARCH) 10if(WITH_ARCH)
@@ -13,6 +17,14 @@ else()
13 set(ARCH i486-linux) 17 set(ARCH i486-linux)
14 set(NEON False) 18 set(NEON False)
15 add_options(CXX ALL_BUILDS "-msse") 19 add_options(CXX ALL_BUILDS "-msse")
20 elseif(CPU STREQUAL arm1176jzf-s)
21 set(ARCH arm)
22 set(NEON False)
23 set(NEON_FLAGS "-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp")
24 elseif(CPU MATCHES "cortex-a7" OR CPU MATCHES "cortex-a53")
25 set(ARCH arm)
26 set(NEON True)
27 set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad")
16 elseif(CPU MATCHES arm) 28 elseif(CPU MATCHES arm)
17 set(ARCH arm) 29 set(ARCH arm)
18 set(NEON True) 30 set(NEON True)
@@ -44,3 +56,8 @@ endif()
44if(ENABLE_MIR) 56if(ENABLE_MIR)
45 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU since no Mir support" FORCE) 57 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU since no Mir support" FORCE)
46endif() 58endif()
59
60if(ENABLE_GBM)
61 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU" FORCE)
62 set(ENABLE_VAAPI OFF CACHE BOOL "Disabling VAAPI" FORCE)
63endif()
diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake
index 613a989..7a2705b 100644
--- a/cmake/scripts/linux/Install.cmake
+++ b/cmake/scripts/linux/Install.cmake
@@ -148,7 +148,8 @@ endif()
148# Install kodi-addon-dev headers 148# Install kodi-addon-dev headers
149install(DIRECTORY ${CMAKE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ 149install(DIRECTORY ${CMAKE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/
150 DESTINATION ${includedir}/${APP_NAME_LC} 150 DESTINATION ${includedir}/${APP_NAME_LC}
151 COMPONENT kodi-addon-dev) 151 COMPONENT kodi-addon-dev
152 REGEX ".txt" EXCLUDE)
152 153
153install(FILES ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h 154install(FILES ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h
154 ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxCrypto.h 155 ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxCrypto.h
@@ -301,7 +302,7 @@ endforeach()
301 302
302# generate packages? yes please, if everything checks out 303# generate packages? yes please, if everything checks out
303if(CPACK_GENERATOR) 304if(CPACK_GENERATOR)
304 if(CPACK_GENERATOR STREQUAL DEB AND ( CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL rbpi ) ) 305 if(CPACK_GENERATOR STREQUAL DEB AND CORE_SYSTEM_NAME STREQUAL linux)
305 if(CMAKE_BUILD_TYPE STREQUAL Debug) 306 if(CMAKE_BUILD_TYPE STREQUAL Debug)
306 message(STATUS "DEB Generator: Build type is set to 'Debug'. Packaged binaries will be unstripped.") 307 message(STATUS "DEB Generator: Build type is set to 'Debug'. Packaged binaries will be unstripped.")
307 endif() 308 endif()
diff --git a/cmake/scripts/rbpi/ArchSetup.cmake b/cmake/scripts/rbpi/ArchSetup.cmake
deleted file mode 100644
index 6fc2c21..0000000
--- a/cmake/scripts/rbpi/ArchSetup.cmake
+++ /dev/null
@@ -1,35 +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_LARGEFILE64_SOURCE
4 -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)
15 set(NEON False)
16 set(NEON_FLAGS "-mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp")
17 elseif(CPU MATCHES "cortex-a7" OR CPU MATCHES "cortex-a53")
18 set(ARCH arm)
19 set(NEON True)
20 set(NEON_FLAGS "-fPIC -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -mvectorize-with-neon-quad")
21 else()
22 message(SEND_ERROR "Unknown CPU: ${CPU}")
23 endif()
24endif()
25
26# Make sure we strip binaries in Release build
27if(CMAKE_BUILD_TYPE STREQUAL Release AND CMAKE_COMPILER_IS_GNUCXX)
28 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
29endif()
30
31find_package(CXX11 REQUIRED)
32
33set(MMAL_FOUND 1 CACHE INTERNAL "MMAL")
34set(OMX_FOUND 1 CACHE INTERNAL "OMX")
35set(OMXLIB_FOUND 1 CACHE INTERNAL "OMX")
diff --git a/cmake/scripts/rbpi/ExtraTargets.cmake b/cmake/scripts/rbpi/ExtraTargets.cmake
deleted file mode 120000
index e757c60..0000000
--- a/cmake/scripts/rbpi/ExtraTargets.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/ExtraTargets.cmake \ No newline at end of file
diff --git a/cmake/scripts/rbpi/Install.cmake b/cmake/scripts/rbpi/Install.cmake
deleted file mode 120000
index 28ce012..0000000
--- a/cmake/scripts/rbpi/Install.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Install.cmake \ No newline at end of file
diff --git a/cmake/scripts/rbpi/Macros.cmake b/cmake/scripts/rbpi/Macros.cmake
deleted file mode 120000
index 2fdbb25..0000000
--- a/cmake/scripts/rbpi/Macros.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/Macros.cmake \ No newline at end of file
diff --git a/cmake/scripts/rbpi/PathSetup.cmake b/cmake/scripts/rbpi/PathSetup.cmake
deleted file mode 120000
index 6786c1c..0000000
--- a/cmake/scripts/rbpi/PathSetup.cmake
+++ /dev/null
@@ -1 +0,0 @@
1../linux/PathSetup.cmake \ No newline at end of file
diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake
index 11c45cf..9634b3a 100644
--- a/cmake/scripts/windows/ArchSetup.cmake
+++ b/cmake/scripts/windows/ArchSetup.cmake
@@ -13,21 +13,17 @@ endif()
13 13
14set(PLATFORM_DIR platform/win32) 14set(PLATFORM_DIR platform/win32)
15 15
16set(CORE_MAIN_SOURCE ${CMAKE_SOURCE_DIR}/xbmc/platform/win32/WinMain.cpp)
17
16# Precompiled headers fail with per target output directory. (needs CMake 3.1) 18# Precompiled headers fail with per target output directory. (needs CMake 3.1)
17set(PRECOMPILEDHEADER_DIR ${PROJECT_BINARY_DIR}/${CORE_BUILD_CONFIG}/objs) 19set(PRECOMPILEDHEADER_DIR ${PROJECT_BINARY_DIR}/${CORE_BUILD_CONFIG}/objs)
18 20
19set(CMAKE_SYSTEM_NAME Windows) 21set(CMAKE_SYSTEM_NAME Windows)
20list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/lib/win32) 22list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/mingwlibs/${ARCH})
21list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/lib/win32/ffmpeg) 23list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/mingwlibs/${ARCH}/bin)
22list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/lib/win32/ffmpeg/bin)
23list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}) 24list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH})
24list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies) 25list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SOURCE_DIR}/project/BuildDependencies)
25 26set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}/include/python)
26if(${ARCH} STREQUAL win32)
27 set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/include/python)
28else()
29 set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}/include/python)
30endif()
31 27
32 28
33# -------- Compiler options --------- 29# -------- Compiler options ---------
diff --git a/cmake/treedata/android/subdirs.txt b/cmake/treedata/android/subdirs.txt
index e175b6d..0733201 100644
--- a/cmake/treedata/android/subdirs.txt
+++ b/cmake/treedata/android/subdirs.txt
@@ -2,6 +2,7 @@ xbmc/linux linuxsupport
2xbmc/input/touch input/touch 2xbmc/input/touch input/touch
3xbmc/input/touch/generic input/touch/generic 3xbmc/input/touch/generic input/touch/generic
4xbmc/network/linux network/linux 4xbmc/network/linux network/linux
5xbmc/network/android network/android
5xbmc/peripherals/bus/linux peripherals/bus/linux 6xbmc/peripherals/bus/linux peripherals/bus/linux
6xbmc/peripherals/bus/android peripherals/bus/android 7xbmc/peripherals/bus/android peripherals/bus/android
7xbmc/powermanagement/android powermanagement/android 8xbmc/powermanagement/android powermanagement/android
@@ -12,4 +13,3 @@ xbmc/windowing/android windowing/android
12xbmc/platform/posix posix 13xbmc/platform/posix posix
13xbmc/platform/android/activity android_activity 14xbmc/platform/android/activity android_activity
14xbmc/platform/android/bionic_supplement android_bionicsupplement 15xbmc/platform/android/bionic_supplement android_bionicsupplement
15xbmc/platform/android/loader android_loader
diff --git a/cmake/treedata/common/games.txt b/cmake/treedata/common/games.txt
index 03d42bc..b2faead 100644
--- a/cmake/treedata/common/games.txt
+++ b/cmake/treedata/common/games.txt
@@ -7,6 +7,7 @@ xbmc/games/controllers/dialogs games/controllers/dialogs
7xbmc/games/controllers/guicontrols games/controllers/guicontrols 7xbmc/games/controllers/guicontrols games/controllers/guicontrols
8xbmc/games/controllers/windows games/controllers/windows 8xbmc/games/controllers/windows games/controllers/windows
9xbmc/games/dialogs games/dialogs 9xbmc/games/dialogs games/dialogs
10xbmc/games/dialogs/osd games/dialogs/osd
10xbmc/games/ports games/ports 11xbmc/games/ports games/ports
11xbmc/games/tags games/tags 12xbmc/games/tags games/tags
12xbmc/games/windows games/windows 13xbmc/games/windows games/windows
diff --git a/cmake/treedata/common/subdirs.txt b/cmake/treedata/common/subdirs.txt
index 5a25afe..ee4e83c 100644
--- a/cmake/treedata/common/subdirs.txt
+++ b/cmake/treedata/common/subdirs.txt
@@ -1,8 +1,11 @@
1xbmc xbmc 1xbmc xbmc
2xbmc/addons addons 2xbmc/addons addons
3xbmc/addons/binary-addons addons_binary-addons
3xbmc/addons/interfaces addonsBinaryInterfaces 4xbmc/addons/interfaces addonsBinaryInterfaces
4xbmc/addons/interfaces/Addon addonCallbacks_Addon 5xbmc/addons/interfaces/Addon addonCallbacks_Addon
5xbmc/addons/interfaces/GUI addonCallbacks_GUI 6xbmc/addons/interfaces/GUI addons_interfaces_gui
7xbmc/addons/interfaces/GUI/controls addons_interfaces_gui_controls
8xbmc/addons/interfaces/GUI/dialogs addons_interfaces_gui_dialogs
6xbmc/addons/settings addonsSettings 9xbmc/addons/settings addonsSettings
7xbmc/commons commons 10xbmc/commons commons
8xbmc/dbwrappers dbwrappers 11xbmc/dbwrappers dbwrappers
@@ -13,6 +16,7 @@ xbmc/input input
13xbmc/input/joysticks input/joysticks 16xbmc/input/joysticks input/joysticks
14xbmc/input/joysticks/dialogs input/joysticks/dialogs 17xbmc/input/joysticks/dialogs input/joysticks/dialogs
15xbmc/input/joysticks/generic input/joysticks/generic 18xbmc/input/joysticks/generic input/joysticks/generic
19xbmc/input/joysticks/keymaps input/joysticks/keymaps
16xbmc/input/keyboard input/keyboard 20xbmc/input/keyboard input/keyboard
17xbmc/input/keyboard/generic input/keyboard/generic 21xbmc/input/keyboard/generic input/keyboard/generic
18xbmc/input/mouse input/mouse 22xbmc/input/mouse input/mouse
diff --git a/cmake/treedata/ios/subdirs.txt b/cmake/treedata/ios/subdirs.txt
index b681ed5..4bbeeb1 100644
--- a/cmake/treedata/ios/subdirs.txt
+++ b/cmake/treedata/ios/subdirs.txt
@@ -13,3 +13,4 @@ xbmc/platform/darwin/ios-common platform_ios-common
13xbmc/filesystem/posix filesystem/posix 13xbmc/filesystem/posix filesystem/posix
14xbmc/utils/posix utils_posix 14xbmc/utils/posix utils_posix
15xbmc/windowing/osx windowing/osx 15xbmc/windowing/osx windowing/osx
16xbmc/cores/VideoPlayer/Process/ios cores/VideoPlayer/Process/ios
diff --git a/cmake/treedata/linux/subdirs.txt b/cmake/treedata/linux/subdirs.txt
index 2dc8045..1ed11f5 100644
--- a/cmake/treedata/linux/subdirs.txt
+++ b/cmake/treedata/linux/subdirs.txt
@@ -1,5 +1,4 @@
1xbmc/linux linuxsupport 1xbmc/linux linuxsupport
2xbmc/linux/sse4 sse4
3xbmc/input/linux input/linux 2xbmc/input/linux input/linux
4xbmc/input/touch input/touch 3xbmc/input/touch input/touch
5xbmc/input/touch/generic input/touch/generic 4xbmc/input/touch/generic input/touch/generic
@@ -11,3 +10,4 @@ xbmc/filesystem/posix filesystem/posix
11xbmc/utils/posix utils_posix 10xbmc/utils/posix utils_posix
12xbmc/windowing/egl windowing/egl 11xbmc/windowing/egl windowing/egl
13xbmc/platform/posix posix 12xbmc/platform/posix posix
13xbmc/cores/VideoPlayer/Process/rbpi cores/VideoPlayer/Process/rbpi
diff --git a/cmake/treedata/optional/common/X.txt b/cmake/treedata/optional/common/X.txt
index 617ff40..26b8a90 100644
--- a/cmake/treedata/optional/common/X.txt
+++ b/cmake/treedata/optional/common/X.txt
@@ -1 +1,2 @@
1xbmc/windowing/X11 windowing/X11 # X 1xbmc/windowing/X11 windowing/X11 # X
2xbmc/cores/VideoPlayer/Process/X11 cores/VideoPlayer/Process/X11 # X
diff --git a/cmake/treedata/optional/common/gbm.txt b/cmake/treedata/optional/common/gbm.txt
new file mode 100644
index 0000000..1adde93
--- /dev/null
+++ b/cmake/treedata/optional/common/gbm.txt
@@ -0,0 +1 @@
xbmc/windowing/gbm windowing/gbm # GBM
diff --git a/cmake/treedata/osx/subdirs.txt b/cmake/treedata/osx/subdirs.txt
index f0fc5c5..a520243 100644
--- a/cmake/treedata/osx/subdirs.txt
+++ b/cmake/treedata/osx/subdirs.txt
@@ -10,3 +10,4 @@ xbmc/platform/darwin/osx platform_osx
10xbmc/filesystem/posix filesystem/posix 10xbmc/filesystem/posix filesystem/posix
11xbmc/utils/posix utils_posix 11xbmc/utils/posix utils_posix
12xbmc/windowing/osx windowing/osx 12xbmc/windowing/osx windowing/osx
13xbmc/cores/VideoPlayer/Process/osx cores/VideoPlayer/Process/osx
diff --git a/cmake/treedata/rbpi/omxplayer.txt b/cmake/treedata/rbpi/omxplayer.txt
deleted file mode 100644
index d56f1df..0000000
--- a/cmake/treedata/rbpi/omxplayer.txt
+++ /dev/null
@@ -1 +0,0 @@
1xbmc/cores/omxplayer cores/omxplayer
diff --git a/cmake/treedata/rbpi/subdirs.txt b/cmake/treedata/rbpi/subdirs.txt
deleted file mode 100644
index c98652a..0000000
--- a/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/rpi windowing/rpi # EGL
diff --git a/cmake/treedata/windows/subdirs.txt b/cmake/treedata/windows/subdirs.txt
index e52d2f6..bdbbe1d 100644
--- a/cmake/treedata/windows/subdirs.txt
+++ b/cmake/treedata/windows/subdirs.txt
@@ -12,3 +12,4 @@ xbmc/utils/win32 utils_win32
12xbmc/rendering/dx rendering_dx 12xbmc/rendering/dx rendering_dx
13xbmc/threads/platform/win threads_win 13xbmc/threads/platform/win threads_win
14xbmc/windowing/windows windowing/windows 14xbmc/windowing/windows windowing/windows
15xbmc/cores/VideoPlayer/Process/windows cores/VideoPlayer/Process/windows