summaryrefslogtreecommitdiffstats
path: root/cmake/modules
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules')
-rw-r--r--cmake/modules/FindAlsa.cmake2
-rw-r--r--cmake/modules/FindAvahi.cmake6
-rw-r--r--cmake/modules/FindBluray.cmake5
-rw-r--r--cmake/modules/FindCurl.cmake2
-rw-r--r--cmake/modules/FindD3DX11Effects.cmake27
-rw-r--r--cmake/modules/FindDBus.cmake4
-rw-r--r--cmake/modules/FindEGL.cmake8
-rw-r--r--cmake/modules/FindFFMPEG.cmake18
-rw-r--r--cmake/modules/FindFmt.cmake46
-rw-r--r--cmake/modules/FindIMX.cmake38
-rw-r--r--cmake/modules/FindIconv.cmake44
-rw-r--r--cmake/modules/FindJsonSchemaBuilder.cmake2
-rw-r--r--cmake/modules/FindLibDvd.cmake357
-rw-r--r--cmake/modules/FindMDNS.cmake8
-rw-r--r--cmake/modules/FindMicroHttpd.cmake2
-rw-r--r--cmake/modules/FindMySqlClient.cmake4
-rw-r--r--cmake/modules/FindNFS.cmake4
-rw-r--r--cmake/modules/FindOpenGLES.cmake26
-rw-r--r--cmake/modules/FindOpenGLES3.cmake24
-rw-r--r--cmake/modules/FindOpenGl.cmake2
-rw-r--r--cmake/modules/FindPlist.cmake4
-rw-r--r--cmake/modules/FindPulseAudio.cmake14
-rw-r--r--cmake/modules/FindRapidJSON.cmake6
-rw-r--r--cmake/modules/FindSSE.cmake45
-rw-r--r--cmake/modules/FindSSH.cmake4
-rw-r--r--cmake/modules/FindShairplay.cmake4
-rw-r--r--cmake/modules/FindSmbClient.cmake4
-rw-r--r--cmake/modules/FindSndio.cmake4
-rw-r--r--cmake/modules/FindTexturePacker.cmake2
29 files changed, 422 insertions, 294 deletions
diff --git a/cmake/modules/FindAlsa.cmake b/cmake/modules/FindAlsa.cmake
index c99f509..bed4faa 100644
--- a/cmake/modules/FindAlsa.cmake
+++ b/cmake/modules/FindAlsa.cmake
@@ -33,7 +33,7 @@ find_package_handle_standard_args(Alsa
33if(ALSA_FOUND) 33if(ALSA_FOUND)
34 set(ALSA_INCLUDE_DIRS "") # Don't want these added as 'timer.h' is a dangerous file 34 set(ALSA_INCLUDE_DIRS "") # Don't want these added as 'timer.h' is a dangerous file
35 set(ALSA_LIBRARIES ${ALSA_LIBRARY}) 35 set(ALSA_LIBRARIES ${ALSA_LIBRARY})
36 set(ALSA_DEFINITIONS -DHAVE_ALSA=1 -DUSE_ALSA=1) 36 set(ALSA_DEFINITIONS -DHAS_ALSA=1)
37 37
38 if(NOT TARGET ALSA::ALSA) 38 if(NOT TARGET ALSA::ALSA)
39 add_library(ALSA::ALSA UNKNOWN IMPORTED) 39 add_library(ALSA::ALSA UNKNOWN IMPORTED)
diff --git a/cmake/modules/FindAvahi.cmake b/cmake/modules/FindAvahi.cmake
index 77c3e4d..068b292 100644
--- a/cmake/modules/FindAvahi.cmake
+++ b/cmake/modules/FindAvahi.cmake
@@ -40,21 +40,21 @@ if(AVAHI_FOUND)
40 ${AVAHI_COMMON_INCLUDE_DIR}) 40 ${AVAHI_COMMON_INCLUDE_DIR})
41 set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY} 41 set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY}
42 ${AVAHI_COMMON_LIBRARY}) 42 ${AVAHI_COMMON_LIBRARY})
43 set(AVAHI_DEFINITIONS -DHAVE_LIBAVAHI_CLIENT=1 -DHAVE_LIBAVAHI_COMMON=1) 43 set(AVAHI_DEFINITIONS -DHAS_AVAHI=1 -DHAS_ZEROCONF=1)
44 44
45 if(NOT TARGET Avahi::Avahi) 45 if(NOT TARGET Avahi::Avahi)
46 add_library(Avahi::Avahi UNKNOWN IMPORTED) 46 add_library(Avahi::Avahi UNKNOWN IMPORTED)
47 set_target_properties(Avahi::Avahi PROPERTIES 47 set_target_properties(Avahi::Avahi PROPERTIES
48 IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}" 48 IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}"
49 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}" 49 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}"
50 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_CLIENT=1) 50 INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1)
51 endif() 51 endif()
52 if(NOT TARGET Avahi::AvahiCommon) 52 if(NOT TARGET Avahi::AvahiCommon)
53 add_library(Avahi::AvahiCommon UNKNOWN IMPORTED) 53 add_library(Avahi::AvahiCommon UNKNOWN IMPORTED)
54 set_target_properties(Avahi::AvahiCommon PROPERTIES 54 set_target_properties(Avahi::AvahiCommon PROPERTIES
55 IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}" 55 IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}"
56 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}" 56 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}"
57 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBAVAHI_COMMON=1 57 INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1
58 INTERFACE_LINK_LIBRARIES Avahi::Avahi) 58 INTERFACE_LINK_LIBRARIES Avahi::Avahi)
59 endif() 59 endif()
60endif() 60endif()
diff --git a/cmake/modules/FindBluray.cmake b/cmake/modules/FindBluray.cmake
index 010fdf1..3c29f54 100644
--- a/cmake/modules/FindBluray.cmake
+++ b/cmake/modules/FindBluray.cmake
@@ -50,6 +50,11 @@ if(BLURAY_FOUND)
50 set(BLURAY_INCLUDE_DIRS ${BLURAY_INCLUDE_DIR}) 50 set(BLURAY_INCLUDE_DIRS ${BLURAY_INCLUDE_DIR})
51 set(BLURAY_DEFINITIONS -DHAVE_LIBBLURAY=1) 51 set(BLURAY_DEFINITIONS -DHAVE_LIBBLURAY=1)
52 52
53 # todo: improve syntax
54 if (NOT CORE_PLATFORM_NAME_LC STREQUAL windowsstore)
55 list(APPEND BLURAY_DEFINITIONS -DHAVE_LIBBLURAY_BDJ=1)
56 endif()
57
53 if(NOT TARGET Bluray::Bluray) 58 if(NOT TARGET Bluray::Bluray)
54 add_library(Bluray::Bluray UNKNOWN IMPORTED) 59 add_library(Bluray::Bluray UNKNOWN IMPORTED)
55 if(BLURAY_LIBRARY) 60 if(BLURAY_LIBRARY)
diff --git a/cmake/modules/FindCurl.cmake b/cmake/modules/FindCurl.cmake
index ed4d81f..d0759a6 100644
--- a/cmake/modules/FindCurl.cmake
+++ b/cmake/modules/FindCurl.cmake
@@ -20,7 +20,7 @@ endif()
20 20
21find_path(CURL_INCLUDE_DIR NAMES curl/curl.h 21find_path(CURL_INCLUDE_DIR NAMES curl/curl.h
22 PATHS ${PC_CURL_INCLUDEDIR}) 22 PATHS ${PC_CURL_INCLUDEDIR})
23find_library(CURL_LIBRARY NAMES curl libcurl 23find_library(CURL_LIBRARY NAMES curl libcurl libcurl_imp
24 PATHS ${PC_CURL_LIBDIR}) 24 PATHS ${PC_CURL_LIBDIR})
25 25
26set(CURL_VERSION ${PC_CURL_VERSION}) 26set(CURL_VERSION ${PC_CURL_VERSION})
diff --git a/cmake/modules/FindD3DX11Effects.cmake b/cmake/modules/FindD3DX11Effects.cmake
index 3fdf7d7..9b1eb15 100644
--- a/cmake/modules/FindD3DX11Effects.cmake
+++ b/cmake/modules/FindD3DX11Effects.cmake
@@ -4,23 +4,26 @@
4# D3DCOMPILER_DLL - Path to the Direct3D Compiler 4# D3DCOMPILER_DLL - Path to the Direct3D Compiler
5# FXC - Path to the DirectX Effects Compiler (FXC) 5# FXC - Path to the DirectX Effects Compiler (FXC)
6 6
7find_file(D3DCOMPILER_DLL 7if(NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
8 NAMES d3dcompiler_47.dll d3dcompiler_46.dll 8 find_file(D3DCOMPILER_DLL
9 PATHS 9 NAMES d3dcompiler_47.dll d3dcompiler_46.dll
10 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}" 10 PATHS
11 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}" 11 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}"
12 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}" 12 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}"
13 "$ENV{WindowsSdkDir}Redist/d3d/${SDK_TARGET_ARCH}" 13 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/Redist/D3D/${SDK_TARGET_ARCH}"
14 NO_DEFAULT_PATH) 14 "$ENV{WindowsSdkDir}Redist/d3d/${SDK_TARGET_ARCH}"
15if(NOT D3DCOMPILER_DLL) 15 NO_DEFAULT_PATH)
16 message(WARNING "Could NOT find Direct3D Compiler") 16 if(NOT D3DCOMPILER_DLL)
17 message(WARNING "Could NOT find Direct3D Compiler")
18 endif()
19 mark_as_advanced(D3DCOMPILER_DLL)
20 copy_file_to_buildtree(${D3DCOMPILER_DLL} DIRECTORY .)
17endif() 21endif()
18mark_as_advanced(D3DCOMPILER_DLL)
19copy_file_to_buildtree(${D3DCOMPILER_DLL} DIRECTORY .)
20 22
21find_program(FXC fxc 23find_program(FXC fxc
22 PATHS 24 PATHS
23 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/bin/x86" 25 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/bin/x86"
26 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]/bin/[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;ProductVersion].0/x86"
24 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/bin/x86" 27 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.1;InstallationFolder]/bin/x86"
25 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/bin/x86" 28 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v8.0;InstallationFolder]/bin/x86"
26 "$ENV{WindowsSdkDir}bin/x86") 29 "$ENV{WindowsSdkDir}bin/x86")
diff --git a/cmake/modules/FindDBus.cmake b/cmake/modules/FindDBus.cmake
index 2d64af4..9ea4f8f 100644
--- a/cmake/modules/FindDBus.cmake
+++ b/cmake/modules/FindDBus.cmake
@@ -38,14 +38,14 @@ find_package_handle_standard_args(DBus
38if(DBUS_FOUND) 38if(DBUS_FOUND)
39 set(DBUS_LIBRARIES ${DBUS_LIBRARY}) 39 set(DBUS_LIBRARIES ${DBUS_LIBRARY})
40 set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR}) 40 set(DBUS_INCLUDE_DIRS ${DBUS_INCLUDE_DIR} ${DBUS_ARCH_INCLUDE_DIR})
41 set(DBUS_DEFINITIONS -DHAVE_DBUS=1) 41 set(DBUS_DEFINITIONS -DHAS_DBUS=1)
42 42
43 if(NOT TARGET DBus::DBus) 43 if(NOT TARGET DBus::DBus)
44 add_library(DBus::DBus UNKNOWN IMPORTED) 44 add_library(DBus::DBus UNKNOWN IMPORTED)
45 set_target_properties(DBus::DBus PROPERTIES 45 set_target_properties(DBus::DBus PROPERTIES
46 IMPORTED_LOCATION "${DBUS_LIBRARY}" 46 IMPORTED_LOCATION "${DBUS_LIBRARY}"
47 INTERFACE_INCLUDE_DIRECTORIES "${DBUS_INCLUDE_DIR}" 47 INTERFACE_INCLUDE_DIRECTORIES "${DBUS_INCLUDE_DIR}"
48 INTERFACE_COMPILE_DEFINITIONS HAVE_DBUS=1) 48 INTERFACE_COMPILE_DEFINITIONS HAS_DBUS=1)
49 endif() 49 endif()
50endif() 50endif()
51 51
diff --git a/cmake/modules/FindEGL.cmake b/cmake/modules/FindEGL.cmake
index 93fa530..331ac39 100644
--- a/cmake/modules/FindEGL.cmake
+++ b/cmake/modules/FindEGL.cmake
@@ -14,14 +14,18 @@
14# 14#
15# EGL::EGL - The EGL library 15# EGL::EGL - The EGL library
16 16
17if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
18 set(_brcmprefix brcm)
19endif()
20
17if(PKG_CONFIG_FOUND) 21if(PKG_CONFIG_FOUND)
18 pkg_check_modules(PC_EGL egl QUIET) 22 pkg_check_modules(PC_EGL ${_brcmprefix}egl QUIET)
19endif() 23endif()
20 24
21find_path(EGL_INCLUDE_DIR EGL/egl.h 25find_path(EGL_INCLUDE_DIR EGL/egl.h
22 PATHS ${PC_EGL_INCLUDEDIR}) 26 PATHS ${PC_EGL_INCLUDEDIR})
23 27
24find_library(EGL_LIBRARY NAMES EGL egl 28find_library(EGL_LIBRARY NAMES ${_brcmprefix}EGL egl
25 PATHS ${PC_EGL_LIBDIR}) 29 PATHS ${PC_EGL_LIBDIR})
26 30
27set(EGL_VERSION ${PC_EGL_VERSION}) 31set(EGL_VERSION ${PC_EGL_VERSION})
diff --git a/cmake/modules/FindFFMPEG.cmake b/cmake/modules/FindFFMPEG.cmake
index 02c8d28..689cf28 100644
--- a/cmake/modules/FindFFMPEG.cmake
+++ b/cmake/modules/FindFFMPEG.cmake
@@ -33,14 +33,14 @@
33# 33#
34 34
35# required ffmpeg library versions 35# required ffmpeg library versions
36set(REQUIRED_FFMPEG_VERSION 3.3) 36set(REQUIRED_FFMPEG_VERSION 3.4)
37set(_avcodec_ver ">=57.89.100") 37set(_avcodec_ver ">=57.107.100")
38set(_avfilter_ver ">=6.82.100") 38set(_avfilter_ver ">=6.107.100")
39set(_avformat_ver ">=57.71.100") 39set(_avformat_ver ">=57.83.100")
40set(_avutil_ver ">=55.58.100") 40set(_avutil_ver ">=55.78.100")
41set(_swscale_ver ">=4.6.100") 41set(_swscale_ver ">=4.8.100")
42set(_swresample_ver ">=2.7.100") 42set(_swresample_ver ">=2.9.100")
43set(_postproc_ver ">=54.5.100") 43set(_postproc_ver ">=54.7.100")
44 44
45 45
46# Allows building with external ffmpeg not found in system paths, 46# Allows building with external ffmpeg not found in system paths,
@@ -266,7 +266,7 @@ if(NOT FFMPEG_FOUND)
266 266
267 file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper 267 file(WRITE ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/ffmpeg/ffmpeg-link-wrapper
268"#!/bin/bash 268"#!/bin/bash
269if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]] 269if [[ $@ == *${APP_NAME_LC}.bin* || $@ == *${APP_NAME_LC}${APP_BINARY_SUFFIX}* || $@ == *${APP_NAME_LC}.so* || $@ == *${APP_NAME_LC}-test* ]]
270then 270then
271 avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec` 271 avformat=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavcodec`
272 avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat` 272 avcodec=`PKG_CONFIG_PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/pkgconfig ${PKG_CONFIG_EXECUTABLE} --libs --static libavformat`
diff --git a/cmake/modules/FindFmt.cmake b/cmake/modules/FindFmt.cmake
index 5473ed5..5e47509 100644
--- a/cmake/modules/FindFmt.cmake
+++ b/cmake/modules/FindFmt.cmake
@@ -12,6 +12,50 @@
12# 12#
13# Fmt::Fmt - The Fmt library 13# Fmt::Fmt - The Fmt library
14 14
15if(ENABLE_INTERNAL_FMT)
16 include(ExternalProject)
17 file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/libfmt/Makefile VER REGEX "^[ ]*VERSION[ ]*=.+$")
18 string(REGEX REPLACE "^[ ]*VERSION[ ]*=[ ]*" "" FMT_VERSION "${VER}")
19
20 # allow user to override the download URL with a local tarball
21 # needed for offline build envs
22 if(FMT_URL)
23 get_filename_component(FMT_URL "${FMT_URL}" ABSOLUTE)
24 else()
25 set(FMT_URL http://mirrors.kodi.tv/build-deps/sources/fmt-${FMT_VERSION}.tar.gz)
26 endif()
27 if(VERBOSE)
28 message(STATUS "FMT_URL: ${FMT_URL}")
29 endif()
30
31 if(APPLE)
32 set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")
33 endif()
34
35 set(FMT_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libfmt.a)
36 set(FMT_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
37 externalproject_add(fmt
38 URL ${FMT_URL}
39 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
40 PREFIX ${CORE_BUILD_DIR}/fmt
41 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
42 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
43 -DFMT_DOC=OFF
44 -DFMT_TEST=OFF
45 "${EXTRA_ARGS}"
46 BUILD_BYPRODUCTS ${FMT_LIBRARY})
47 set_target_properties(fmt PROPERTIES FOLDER "External Projects")
48
49 include(FindPackageHandleStandardArgs)
50 find_package_handle_standard_args(Fmt
51 REQUIRED_VARS FMT_LIBRARY FMT_INCLUDE_DIR
52 VERSION_VAR FMT_VERSION)
53
54 set(FMT_LIBRARIES ${FMT_LIBRARY})
55 set(FMT_INCLUDE_DIRS ${FMT_INCLUDE_DIR})
56
57else()
58
15if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore) 59if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore)
16 # TODO: fix windows fmt package to include fmt-config.cmake and fmt-config-version.cmake 60 # TODO: fix windows fmt package to include fmt-config.cmake and fmt-config-version.cmake
17 set(FMT_VERSION 3.0.1) 61 set(FMT_VERSION 3.0.1)
@@ -55,3 +99,5 @@ if(FMT_FOUND)
55endif() 99endif()
56 100
57mark_as_advanced(FMT_INCLUDE_DIR FMT_LIBRARY) 101mark_as_advanced(FMT_INCLUDE_DIR FMT_LIBRARY)
102
103endif()
diff --git a/cmake/modules/FindIMX.cmake b/cmake/modules/FindIMX.cmake
deleted file mode 100644
index 3689579..0000000
--- a/cmake/modules/FindIMX.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
1#.rst:
2# FindIMX
3# -------
4# Finds the IMX codec
5#
6# This will will define the following variables::
7#
8# IMX_FOUND - system has IMX
9# IMX_INCLUDE_DIRS - the IMX include directory
10# IMX_DEFINITIONS - the IMX definitions
11# IMX_LIBRARIES - the IMX libraries
12
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules(IMX fslvpuwrap QUIET)
15endif()
16
17find_path(IMX_INCLUDE_DIR NAMES vpu_wrapper.h
18 PATH_SUFFIXES imx-mm/vpu
19 PATHS ${PC_IMX_INCLUDEDIR})
20
21find_library(FSLVPUWRAP_LIBRARY NAMES fslvpuwrap
22 PATHS ${PC_IMX_LIBDIR})
23find_library(VPU_LIBRARY NAMES vpu
24 PATHS ${PC_IMX_LIBDIR})
25find_library(G2D_LIBRARY NAMES g2d
26 PATHS ${PC_IMX_LIBDIR})
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(IMX
30 REQUIRED_VARS IMX_INCLUDE_DIR FSLVPUWRAP_LIBRARY VPU_LIBRARY G2D_LIBRARY)
31
32if(IMX_FOUND)
33 set(IMX_INCLUDE_DIRS ${IMX_INCLUDE_DIR})
34 set(IMX_LIBRARIES ${FSLVPUWRAP_LIBRARY} ${VPU_LIBRARY} ${G2D_LIBRARY})
35 set(IMX_DEFINITIONS -DHAS_IMXVPU=1 -DLINUX -DEGL_API_FB)
36endif()
37
38mark_as_advanced(IMX_INCLUDE_DIR FSLVPUWRAP_LIBRARY VPU_LIBRARY G2D_LIBRARY)
diff --git a/cmake/modules/FindIconv.cmake b/cmake/modules/FindIconv.cmake
new file mode 100644
index 0000000..8ee01fb
--- /dev/null
+++ b/cmake/modules/FindIconv.cmake
@@ -0,0 +1,44 @@
1#.rst:
2# FindICONV
3# --------
4# Finds the ICONV library
5#
6# This will will define the following variables::
7#
8# ICONV_FOUND - system has ICONV
9# ICONV_INCLUDE_DIRS - the ICONV include directory
10# ICONV_LIBRARIES - the ICONV libraries
11#
12# and the following imported targets::
13#
14# ICONV::ICONV - The ICONV library
15
16find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
17
18find_library(ICONV_LIBRARY NAMES iconv libiconv c)
19
20set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARY})
21check_function_exists(iconv HAVE_ICONV_FUNCTION)
22if(NOT HAVE_ICONV_FUNCTION)
23 check_function_exists(libiconv HAVE_LIBICONV_FUNCTION2)
24 set(HAVE_ICONV_FUNCTION ${HAVE_LIBICONV_FUNCTION2})
25 unset(HAVE_LIBICONV_FUNCTION2)
26endif()
27
28include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(Iconv
30 REQUIRED_VARS ICONV_LIBRARY ICONV_INCLUDE_DIR HAVE_ICONV_FUNCTION)
31
32if(ICONV_FOUND)
33 set(ICONV_LIBRARIES ${ICONV_LIBRARY})
34 set(ICONV_INCLUDE_DIRS ${ICONV_INCLUDE_DIR})
35
36 if(NOT TARGET ICONV::ICONV)
37 add_library(ICONV::ICONV UNKNOWN IMPORTED)
38 set_target_properties(ICONV::ICONV PROPERTIES
39 IMPORTED_LOCATION "${ICONV_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${ICONV_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(ICONV_INCLUDE_DIR ICONV_LIBRARY HAVE_ICONV_FUNCTION)
diff --git a/cmake/modules/FindJsonSchemaBuilder.cmake b/cmake/modules/FindJsonSchemaBuilder.cmake
index 9a31dd5..14aa2f5 100644
--- a/cmake/modules/FindJsonSchemaBuilder.cmake
+++ b/cmake/modules/FindJsonSchemaBuilder.cmake
@@ -12,7 +12,7 @@ if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder)
12 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) 12 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
13 if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore) 13 if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore)
14 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES 14 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
15 IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/project/BuildDependencies/bin/json-rpc/JsonSchemaBuilder") 15 IMPORTED_LOCATION "${DEPENDENCIES_DIR}/bin/json-rpc/JsonSchemaBuilder")
16 else() 16 else()
17 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES 17 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
18 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") 18 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder")
diff --git a/cmake/modules/FindLibDvd.cmake b/cmake/modules/FindLibDvd.cmake
index 86af89c..5c72826 100644
--- a/cmake/modules/FindLibDvd.cmake
+++ b/cmake/modules/FindLibDvd.cmake
@@ -1,133 +1,146 @@
1if(NOT WIN32) 1if(KODI_DEPENDSBUILD)
2 if(KODI_DEPENDSBUILD) 2 set(_dvdlibs dvdread dvdnav)
3 set(_dvdlibs dvdread dvdnav) 3 set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY)
4 set(_handlevars LIBDVD_INCLUDE_DIRS DVDREAD_LIBRARY DVDNAV_LIBRARY) 4 if(ENABLE_DVDCSS)
5 if(ENABLE_DVDCSS) 5 list(APPEND _dvdlibs libdvdcss)
6 list(APPEND _dvdlibs libdvdcss) 6 list(APPEND _handlevars DVDCSS_LIBRARY)
7 list(APPEND _handlevars DVDCSS_LIBRARY) 7 endif()
8 endif()
9 8
10 if(PKG_CONFIG_FOUND) 9 if(PKG_CONFIG_FOUND)
11 pkg_check_modules(PC_DVD ${_dvdlibs} QUIET) 10 pkg_check_modules(PC_DVD ${_dvdlibs} QUIET)
12 endif() 11 endif()
13 12
14 find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS}) 13 find_path(LIBDVD_INCLUDE_DIRS dvdnav/dvdnav.h PATHS ${PC_DVD_INCLUDE_DIRS})
15 find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR}) 14 find_library(DVDREAD_LIBRARY NAMES dvdread libdvdread PATHS ${PC_DVD_dvdread_LIBDIR})
16 find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR}) 15 find_library(DVDNAV_LIBRARY NAMES dvdnav libdvdnav PATHS ${PC_DVD_dvdnav_LIBDIR})
16 if(ENABLE_DVDCSS)
17 find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR})
18 endif()
19
20 include(FindPackageHandleStandardArgs)
21 find_package_handle_standard_args(LibDvd REQUIRED_VARS ${_handlevars})
22 if(LIBDVD_FOUND)
23 add_library(dvdnav UNKNOWN IMPORTED)
24 set_target_properties(dvdnav PROPERTIES
25 FOLDER "External Projects"
26 IMPORTED_LOCATION "${DVDNAV_LIBRARY}")
27
28 add_library(dvdread UNKNOWN IMPORTED)
29 set_target_properties(dvdread PROPERTIES
30 FOLDER "External Projects"
31 IMPORTED_LOCATION "${DVDREAD_LIBRARY}")
32 add_library(dvdcss UNKNOWN IMPORTED)
33 set_target_properties(dvdcss PROPERTIES
34 FOLDER "External Projects"
35 IMPORTED_LOCATION "${DVDCSS_LIBRARY}")
36
37 set(_linklibs ${DVDREAD_LIBRARY})
17 if(ENABLE_DVDCSS) 38 if(ENABLE_DVDCSS)
18 find_library(DVDCSS_LIBRARY NAMES dvdcss libdvdcss PATHS ${PC_DVD_libdvdcss_LIBDIR}) 39 list(APPEND _linklibs ${DVDCSS_LIBRARY})
19 endif() 40 endif()
20 41 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}")
21 include(FindPackageHandleStandardArgs) 42 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY})
22 find_package_handle_standard_args(LibDvd REQUIRED_VARS ${_handlevars}) 43 mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES)
23 if(LIBDVD_FOUND) 44 endif()
24 add_library(dvdnav UNKNOWN IMPORTED) 45else()
25 set_target_properties(dvdnav PROPERTIES 46 set(dvdlibs libdvdread libdvdnav)
26 FOLDER "External Projects" 47 if(ENABLE_DVDCSS)
27 IMPORTED_LOCATION "${DVDNAV_LIBRARY}") 48 list(APPEND dvdlibs libdvdcss)
28 49 endif()
29 add_library(dvdread UNKNOWN IMPORTED) 50 set(DEPENDS_TARGETS_DIR ${CMAKE_SOURCE_DIR}/tools/depends/target)
30 set_target_properties(dvdread PROPERTIES 51 foreach(dvdlib ${dvdlibs})
31 FOLDER "External Projects" 52 file(GLOB VERSION_FILE ${DEPENDS_TARGETS_DIR}/${dvdlib}/DVD*-VERSION)
32 IMPORTED_LOCATION "${DVDREAD_LIBRARY}") 53 file(STRINGS ${VERSION_FILE} VER)
33 add_library(dvdcss UNKNOWN IMPORTED) 54 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
34 set_target_properties(dvdcss PROPERTIES 55 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
35 FOLDER "External Projects" 56 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
36 IMPORTED_LOCATION "${DVDCSS_LIBRARY}") 57 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
37 58 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
38 set(_linklibs ${DVDREAD_LIBRARY}) 59 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
39 if(ENABLE_DVDCSS) 60 string(TOUPPER ${dvdlib} DVDLIB)
40 list(APPEND _linklibs ${DVDCSS_LIBRARY}) 61
41 endif() 62 # allow user to override the download URL with a local tarball
42 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_linklibs}") 63 # needed for offline build envs
43 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY}) 64 # allow upper and lowercase var name
44 mark_as_advanced(LIBDVD_INCLUDE_DIRS LIBDVD_LIBRARIES) 65 if(${dvdlib}_URL)
66 set(${DVDLIB}_URL ${${dvdlib}_URL})
45 endif() 67 endif()
46 else() 68 if(${DVDLIB}_URL)
47 set(dvdlibs libdvdread libdvdnav) 69 get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE)
48 if(ENABLE_DVDCSS) 70 else()
49 list(APPEND dvdlibs libdvdcss) 71 set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz)
50 endif() 72 endif()
51 foreach(dvdlib ${dvdlibs}) 73 if(VERBOSE)
52 file(GLOB VERSION_FILE ${CMAKE_SOURCE_DIR}/tools/depends/target/${dvdlib}/DVD*-VERSION) 74 message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}")
53 file(STRINGS ${VERSION_FILE} VER)
54 string(REGEX MATCH "VERSION=[^ ]*$.*" ${dvdlib}_VER "${VER}")
55 list(GET ${dvdlib}_VER 0 ${dvdlib}_VER)
56 string(SUBSTRING "${${dvdlib}_VER}" 8 -1 ${dvdlib}_VER)
57 string(REGEX MATCH "BASE_URL=([^ ]*)" ${dvdlib}_BASE_URL "${VER}")
58 list(GET ${dvdlib}_BASE_URL 0 ${dvdlib}_BASE_URL)
59 string(SUBSTRING "${${dvdlib}_BASE_URL}" 9 -1 ${dvdlib}_BASE_URL)
60 string(TOUPPER ${dvdlib} DVDLIB)
61
62 # allow user to override the download URL with a local tarball
63 # needed for offline build envs
64 # allow upper and lowercase var name
65 if(${dvdlib}_URL)
66 set(${DVDLIB}_URL ${${dvdlib}_URL})
67 endif()
68 if(${DVDLIB}_URL)
69 get_filename_component(${DVDLIB}_URL "${${DVDLIB}_URL}" ABSOLUTE)
70 else()
71 set(${DVDLIB}_URL ${${dvdlib}_BASE_URL}/archive/${${dvdlib}_VER}.tar.gz)
72 endif()
73 if(VERBOSE)
74 message(STATUS "${DVDLIB}_URL: ${${DVDLIB}_URL}")
75 endif()
76 endforeach()
77
78 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
79 if(CMAKE_CROSSCOMPILING)
80 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
81 endif() 75 endif()
76 endforeach()
82 77
83 if(APPLE) 78 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
84 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation") 79 if(CMAKE_CROSSCOMPILING)
85 endif() 80 set(EXTRA_FLAGS "CC=${CMAKE_C_COMPILER}")
81 endif()
82
83 if(APPLE)
84 set(CMAKE_LD_FLAGS "-framework IOKit -framework CoreFoundation")
85 endif()
86 86
87 set(HOST_ARCH ${ARCH}) 87 set(HOST_ARCH ${ARCH})
88 if(CORE_SYSTEM_NAME STREQUAL android) 88 if(CORE_SYSTEM_NAME STREQUAL android)
89 if(ARCH STREQUAL arm) 89 if(ARCH STREQUAL arm)
90 set(HOST_ARCH arm-linux-androideabi) 90 set(HOST_ARCH arm-linux-androideabi)
91 elseif(ARCH STREQUAL aarch64) 91 elseif(ARCH STREQUAL aarch64)
92 set(HOST_ARCH aarch64-linux-android) 92 set(HOST_ARCH aarch64-linux-android)
93 elseif(ARCH STREQUAL i486-linux) 93 elseif(ARCH STREQUAL i486-linux)
94 set(HOST_ARCH i686-linux-android) 94 set(HOST_ARCH i686-linux-android)
95 endif()
96 endif() 95 endif()
96 elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
97 set(LIBDVD_ADDITIONAL_ARGS "-DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}" "-DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION}")
98 endif()
97 99
98 if(ENABLE_DVDCSS) 100 if(ENABLE_DVDCSS)
101 if(NOT CORE_SYSTEM_NAME MATCHES windows)
99 set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a) 102 set(DVDCSS_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdcss.a)
100 ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL} 103 ExternalProject_Add(dvdcss URL ${LIBDVDCSS_URL}
101 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz 104 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz
102 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download 105 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
103 PREFIX ${CORE_BUILD_DIR}/libdvd 106 PREFIX ${CORE_BUILD_DIR}/libdvd
104 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure 107 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
105 --target=${HOST_ARCH} 108 --target=${HOST_ARCH}
106 --host=${HOST_ARCH} 109 --host=${HOST_ARCH}
107 --disable-doc 110 --disable-doc
108 --enable-static 111 --enable-static
109 --disable-shared 112 --disable-shared
110 --with-pic 113 --with-pic
111 --prefix=<INSTALL_DIR> 114 --prefix=<INSTALL_DIR>
112 --libdir=<INSTALL_DIR>/lib 115 --libdir=<INSTALL_DIR>/lib
113 "${EXTRA_FLAGS}" 116 "${EXTRA_FLAGS}"
114 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" 117 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
115 "LDFLAGS=${CMAKE_LD_FLAGS}" 118 "LDFLAGS=${CMAKE_LD_FLAGS}"
116 BUILD_BYPRODUCTS ${DVDCSS_LIBRARY}) 119 BUILD_BYPRODUCTS ${DVDCSS_LIBRARY})
117 ExternalProject_Add_Step(dvdcss autoreconf 120 ExternalProject_Add_Step(dvdcss autoreconf
118 DEPENDEES download update patch 121 DEPENDEES download update patch
119 DEPENDERS configure 122 DEPENDERS configure
120 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 123 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
121 WORKING_DIRECTORY <SOURCE_DIR>) 124 WORKING_DIRECTORY <SOURCE_DIR>)
122 125 else()
123 set_target_properties(dvdcss PROPERTIES FOLDER "External Projects") 126 ExternalProject_Add(dvdcss
127 URL ${LIBDVDCSS_URL}
128 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
129 DOWNLOAD_NAME libdvdcss-${libdvdcss_VER}.tar.gz
130 CMAKE_ARGS
131 ${LIBDVD_ADDITIONAL_ARGS}
132 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
133 )
124 endif() 134 endif()
135 set_target_properties(dvdcss PROPERTIES FOLDER "External Projects")
136 endif()
125 137
126 set(DVDREAD_CFLAGS "-D_XBMC -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include") 138 set(DVDREAD_CFLAGS "-D_XBMC -I${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include")
127 if(ENABLE_DVDCSS) 139 if(ENABLE_DVDCSS)
128 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H") 140 set(DVDREAD_CFLAGS "${DVDREAD_CFLAGS} -DHAVE_DVDCSS_DVDCSS_H")
129 endif() 141 endif()
130 142
143 if(NOT CORE_SYSTEM_NAME MATCHES windows)
131 set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a) 144 set(DVDREAD_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.a)
132 ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL} 145 ExternalProject_Add(dvdread URL ${LIBDVDREAD_URL}
133 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz 146 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz
@@ -146,74 +159,90 @@ if(NOT WIN32)
146 "LDFLAGS=${CMAKE_LD_FLAGS}" 159 "LDFLAGS=${CMAKE_LD_FLAGS}"
147 BUILD_BYPRODUCTS ${DVDREAD_LIBRARY}) 160 BUILD_BYPRODUCTS ${DVDREAD_LIBRARY})
148 ExternalProject_Add_Step(dvdread autoreconf 161 ExternalProject_Add_Step(dvdread autoreconf
149 DEPENDEES download update patch 162 DEPENDEES download update patch
150 DEPENDERS configure 163 DEPENDERS configure
151 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 164 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
152 WORKING_DIRECTORY <SOURCE_DIR>) 165 WORKING_DIRECTORY <SOURCE_DIR>)
153 if(ENABLE_DVDCSS) 166 else()
154 add_dependencies(dvdread dvdcss) 167 ExternalProject_Add(dvdread
155 endif() 168 URL ${LIBDVDREAD_URL}
169 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
170 DOWNLOAD_NAME libdvdread-${libdvdread_VER}.tar.gz
171 CMAKE_ARGS
172 ${LIBDVD_ADDITIONAL_ARGS}
173 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
174 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
175 )
176 endif()
177 if(ENABLE_DVDCSS)
178 add_dependencies(dvdread dvdcss)
179 endif()
156 180
157 set_target_properties(dvdread PROPERTIES FOLDER "External Projects") 181 set_target_properties(dvdread PROPERTIES FOLDER "External Projects")
158 182
159 if(ENABLE_DVDCSS) 183 if(ENABLE_DVDCSS)
160 set(DVDNAV_LIBS -ldvdcss) 184 set(DVDNAV_LIBS -ldvdcss)
161 endif() 185 endif()
162 186
187 if(NOT CORE_SYSTEM_NAME MATCHES windows)
163 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a) 188 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.a)
164 ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL} 189 ExternalProject_Add(dvdnav URL ${LIBDVDNAV_URL}
165 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz 190 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz
166 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download 191 DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/download
167 PREFIX ${CORE_BUILD_DIR}/libdvd 192 PREFIX ${CORE_BUILD_DIR}/libdvd
168 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure 193 CONFIGURE_COMMAND ac_cv_path_GIT= <SOURCE_DIR>/configure
169 --target=${HOST_ARCH} 194 --target=${HOST_ARCH}
170 --host=${HOST_ARCH} 195 --host=${HOST_ARCH}
171 --enable-static 196 --enable-static
172 --disable-shared 197 --disable-shared
173 --with-pic 198 --with-pic
174 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd 199 --prefix=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
175 --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib 200 --libdir=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib
176 "${EXTRA_FLAGS}" 201 "${EXTRA_FLAGS}"
177 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib" 202 "LDFLAGS=${CMAKE_LD_FLAGS} -L${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib"
178 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}" 203 "CFLAGS=${CMAKE_C_FLAGS} ${DVDREAD_CFLAGS}"
179 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}" 204 "DVDREAD_CFLAGS=${DVDREAD_CFLAGS}"
180 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la" 205 "DVDREAD_LIBS=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdread.la"
181 "LIBS=${DVDNAV_LIBS}" 206 "LIBS=${DVDNAV_LIBS}"
182 BUILD_BYPRODUCTS ${DVDNAV_LIBRARY}) 207 BUILD_BYPRODUCTS ${DVDNAV_LIBRARY})
183 ExternalProject_Add_Step(dvdnav autoreconf 208 ExternalProject_Add_Step(dvdnav autoreconf
184 DEPENDEES download update patch 209 DEPENDEES download update patch
185 DEPENDERS configure 210 DEPENDERS configure
186 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif 211 COMMAND PATH=${NATIVEPREFIX}/bin:$ENV{PATH} autoreconf -vif
187 WORKING_DIRECTORY <SOURCE_DIR>) 212 WORKING_DIRECTORY <SOURCE_DIR>)
188 add_dependencies(dvdnav dvdread) 213 else()
189 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects") 214 set(DVDNAV_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/lib/libdvdnav.lib)
215 ExternalProject_Add(dvdnav
216 URL ${LIBDVDNAV_URL}
217 DOWNLOAD_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/downloads
218 DOWNLOAD_NAME libdvdnav-${libdvdnav_VER}.tar.gz
219 CMAKE_ARGS
220 ${LIBDVD_ADDITIONAL_ARGS}
221 -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
222 -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd
223 )
224 endif()
225 add_dependencies(dvdnav dvdread)
226 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
190 227
191 set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY}) 228 set(_dvdlibs ${DVDREAD_LIBRARY} ${DVDCSS_LIBRARY})
229 if(NOT CORE_SYSTEM_NAME MATCHES windows)
192 # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well 230 # link a shared dvdnav library that includes the whole archives of dvdread and dvdcss as well
193 # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically 231 # the quotes around _dvdlibs are on purpose, since we want to pass a list to the function that will be unpacked automatically
194 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}") 232 core_link_library(${DVDNAV_LIBRARY} system/players/VideoPlayer/libdvdnav dvdnav archives "${_dvdlibs}")
195 233 else()
196 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include) 234 set(LIBDVD_TARGET_DIR .)
197 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY}) 235 if(CORE_SYSTEM_NAME STREQUAL windowsstore)
198 if(ENABLE_DVDCSS) 236 set(LIBDVD_TARGET_DIR dlls)
199 list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY})
200 endif()
201 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
202 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
203 endif() 237 endif()
204else() 238 copy_file_to_buildtree(${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/bin/libdvdnav.dll DIRECTORY ${LIBDVD_TARGET_DIR})
205 # Dynamically loaded on Windows
206 find_path(LIBDVD_INCLUDE_DIR dvdcss/dvdcss.h)
207
208 include(FindPackageHandleStandardArgs)
209 find_package_handle_standard_args(LibDvd REQUIRED_VARS LIBDVD_INCLUDE_DIR)
210
211 if(LIBDVD_FOUND)
212 set(LIBDVD_INCLUDE_DIRS ${LIBDVD_INCLUDE_DIR})
213
214 add_custom_target(dvdnav)
215 set_target_properties(dvdnav PROPERTIES FOLDER "External Projects")
216 endif() 239 endif()
217 240
218 mark_as_advanced(LIBDVD_INCLUDE_DIR) 241 set(LIBDVD_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/libdvd/include)
219endif() 242 set(LIBDVD_LIBRARIES ${DVDNAV_LIBRARY} ${DVDREAD_LIBRARY})
243 if(ENABLE_DVDCSS)
244 list(APPEND LIBDVD_LIBRARIES ${DVDCSS_LIBRARY})
245 endif()
246 set(LIBDVD_LIBRARIES ${LIBDVD_LIBRARIES} CACHE STRING "libdvd libraries" FORCE)
247 set(LIBDVD_FOUND 1 CACHE BOOL "libdvd found" FORCE)
248endif() \ No newline at end of file
diff --git a/cmake/modules/FindMDNS.cmake b/cmake/modules/FindMDNS.cmake
index c001f7b..9294708 100644
--- a/cmake/modules/FindMDNS.cmake
+++ b/cmake/modules/FindMDNS.cmake
@@ -26,9 +26,9 @@ find_package_handle_standard_args(MDNS
26if(MDNS_FOUND) 26if(MDNS_FOUND)
27 set(MDNS_INCLUDE_DIRS ${MDNS_INCLUDE_DIR}) 27 set(MDNS_INCLUDE_DIRS ${MDNS_INCLUDE_DIR})
28 set(MDNS_LIBRARIES ${MDNS_LIBRARY}) 28 set(MDNS_LIBRARIES ${MDNS_LIBRARY})
29 set(MDNS_DEFINITIONS -DHAVE_LIBMDNS=1) 29 set(MDNS_DEFINITIONS -DHAS_MDNS=1 -DHAS_ZEROCONF=1)
30 if(MDNS_EMBEDDED_INCLUDE_DIR) 30 if(MDNS_EMBEDDED_INCLUDE_DIR)
31 list(APPEND MDNS_DEFINITIONS -DHAVE_LIBMDNSEMBEDDED=1) 31 list(APPEND MDNS_DEFINITIONS -DHAS_MDNS_EMBEDDED=1)
32 endif() 32 endif()
33 33
34 if(NOT TARGET MDNS::MDNS) 34 if(NOT TARGET MDNS::MDNS)
@@ -36,10 +36,10 @@ if(MDNS_FOUND)
36 set_target_properties(MDNS::MDNS PROPERTIES 36 set_target_properties(MDNS::MDNS PROPERTIES
37 IMPORTED_LOCATION "${MDNS_LIBRARY}" 37 IMPORTED_LOCATION "${MDNS_LIBRARY}"
38 INTERFACE_INCLUDE_DIRECTORIES "${MDNS_INCLUDE_DIR}" 38 INTERFACE_INCLUDE_DIRECTORIES "${MDNS_INCLUDE_DIR}"
39 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBMDNS=1) 39 INTERFACE_COMPILE_DEFINITIONS HAS_MDNS=1)
40 if(MDNS_EMBEDDED_INCLUDE_DIR) 40 if(MDNS_EMBEDDED_INCLUDE_DIR)
41 set_target_properties(MDNS::MDNS PROPERTIES 41 set_target_properties(MDNS::MDNS PROPERTIES
42 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBMDNSEMBEDDED=1) 42 INTERFACE_COMPILE_DEFINITIONS HAS_MDNS_EMBEDDED=1)
43 endif() 43 endif()
44 endif() 44 endif()
45endif() 45endif()
diff --git a/cmake/modules/FindMicroHttpd.cmake b/cmake/modules/FindMicroHttpd.cmake
index 8eecbc4..232f8e5 100644
--- a/cmake/modules/FindMicroHttpd.cmake
+++ b/cmake/modules/FindMicroHttpd.cmake
@@ -33,7 +33,7 @@ find_package_handle_standard_args(MicroHttpd
33if(MICROHTTPD_FOUND) 33if(MICROHTTPD_FOUND)
34 set(MICROHTTPD_LIBRARIES ${MICROHTTPD_LIBRARY}) 34 set(MICROHTTPD_LIBRARIES ${MICROHTTPD_LIBRARY})
35 set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR}) 35 set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR})
36 set(MICROHTTPD_DEFINITIONS -DHAVE_LIBMICROHTTPD=1) 36 set(MICROHTTPD_DEFINITIONS -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1)
37 37
38 if(KODI_DEPENDSBUILD AND NOT WIN32) 38 if(KODI_DEPENDSBUILD AND NOT WIN32)
39 find_library(GCRYPT_LIBRARY gcrypt) 39 find_library(GCRYPT_LIBRARY gcrypt)
diff --git a/cmake/modules/FindMySqlClient.cmake b/cmake/modules/FindMySqlClient.cmake
index 7b48577..50db582 100644
--- a/cmake/modules/FindMySqlClient.cmake
+++ b/cmake/modules/FindMySqlClient.cmake
@@ -46,7 +46,7 @@ find_package_handle_standard_args(MySqlClient
46if(MYSQLCLIENT_FOUND) 46if(MYSQLCLIENT_FOUND)
47 set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY}) 47 set(MYSQLCLIENT_LIBRARIES ${MYSQLCLIENT_LIBRARY})
48 set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR}) 48 set(MYSQLCLIENT_INCLUDE_DIRS ${MYSQLCLIENT_INCLUDE_DIR})
49 set(MYSQLCLIENT_DEFINITIONS -DHAVE_MYSQL=1) 49 set(MYSQLCLIENT_DEFINITIONS -DHAS_MYSQL=1)
50 50
51 if(NOT TARGET MySqlClient::MySqlClient) 51 if(NOT TARGET MySqlClient::MySqlClient)
52 add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED) 52 add_library(MySqlClient::MySqlClient UNKNOWN IMPORTED)
@@ -62,7 +62,7 @@ if(MYSQLCLIENT_FOUND)
62 endif() 62 endif()
63 set_target_properties(MySqlClient::MySqlClient PROPERTIES 63 set_target_properties(MySqlClient::MySqlClient PROPERTIES
64 INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}" 64 INTERFACE_INCLUDE_DIRECTORIES "${MYSQLCLIENT_INCLUDE_DIR}"
65 INTERFACE_COMPILE_DEFINITIONS HAVE_MYSQL=1) 65 INTERFACE_COMPILE_DEFINITIONS HAS_MYSQL=1)
66 endif() 66 endif()
67endif() 67endif()
68 68
diff --git a/cmake/modules/FindNFS.cmake b/cmake/modules/FindNFS.cmake
index 646ee33..b304bf3 100644
--- a/cmake/modules/FindNFS.cmake
+++ b/cmake/modules/FindNFS.cmake
@@ -41,7 +41,7 @@ endif()
41if(NFS_FOUND) 41if(NFS_FOUND)
42 set(NFS_LIBRARIES ${NFS_LIBRARY}) 42 set(NFS_LIBRARIES ${NFS_LIBRARY})
43 set(NFS_INCLUDE_DIRS ${NFS_INCLUDE_DIR}) 43 set(NFS_INCLUDE_DIRS ${NFS_INCLUDE_DIR})
44 set(NFS_DEFINITIONS -DHAVE_LIBNFS=1) 44 set(NFS_DEFINITIONS -DHAS_FILESYSTEM_NFS=1)
45 45
46 if(NOT TARGET NFS::NFS) 46 if(NOT TARGET NFS::NFS)
47 add_library(NFS::NFS UNKNOWN IMPORTED) 47 add_library(NFS::NFS UNKNOWN IMPORTED)
@@ -51,7 +51,7 @@ if(NFS_FOUND)
51 endif() 51 endif()
52 set_target_properties(NFS::NFS PROPERTIES 52 set_target_properties(NFS::NFS PROPERTIES
53 INTERFACE_INCLUDE_DIRECTORIES "${NFS_INCLUDE_DIR}" 53 INTERFACE_INCLUDE_DIRECTORIES "${NFS_INCLUDE_DIR}"
54 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBNFS=1) 54 INTERFACE_COMPILE_DEFINITIONS HAS_FILESYSTEM_NFS=1)
55 endif() 55 endif()
56endif() 56endif()
57 57
diff --git a/cmake/modules/FindOpenGLES.cmake b/cmake/modules/FindOpenGLES.cmake
index 4333a69..fac21bc 100644
--- a/cmake/modules/FindOpenGLES.cmake
+++ b/cmake/modules/FindOpenGLES.cmake
@@ -10,14 +10,18 @@
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
13if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
14 set(_brcmprefix brcm)
15endif()
16
13if(PKG_CONFIG_FOUND) 17if(PKG_CONFIG_FOUND)
14 pkg_check_modules(PC_OPENGLES glesv2 QUIET) 18 pkg_check_modules(PC_OPENGLES ${_brcmprefix}glesv2 QUIET)
15endif() 19endif()
16 20
17if(NOT CORE_SYSTEM_NAME STREQUAL ios) 21if(NOT CORE_SYSTEM_NAME STREQUAL ios)
18 find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h 22 find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h
19 PATHS ${PC_OPENGLES_INCLUDEDIR}) 23 PATHS ${PC_OPENGLES_INCLUDEDIR})
20 find_library(OPENGLES_gl_LIBRARY NAMES GLESv2 24 find_library(OPENGLES_gl_LIBRARY NAMES ${_brcmprefix}GLESv2
21 PATHS ${PC_OPENGLES_LIBDIR}) 25 PATHS ${PC_OPENGLES_LIBDIR})
22else() 26else()
23 find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES 27 find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES
@@ -27,14 +31,24 @@ else()
27 set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers) 31 set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers)
28endif() 32endif()
29 33
34find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h)
35
30include(FindPackageHandleStandardArgs) 36include(FindPackageHandleStandardArgs)
31find_package_handle_standard_args(OpenGLES 37find_package_handle_standard_args(OpenGLES
32 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR) 38 REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
33 39
40find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h
41 PATHS ${PC_OPENGLES_INCLUDEDIR})
42
34if(OPENGLES_FOUND) 43if(OPENGLES_FOUND)
35 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
36 set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY}) 44 set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY})
37 set(OPENGLES_DEFINITIONS -DHAVE_LIBGLESV2) 45 if(OPENGLES3_INCLUDE_DIR)
46 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR} ${OPENGLES3_INCLUDE_DIR})
47 set(OPENGLES_DEFINITIONS -DHAS_GLES=3)
48 mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES3_INCLUDE_DIR OPENGLES_gl_LIBRARY)
49 else()
50 set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
51 set(OPENGLES_DEFINITIONS -DHAS_GLES=2)
52 mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY)
53 endif()
38endif() 54endif()
39
40mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY)
diff --git a/cmake/modules/FindOpenGLES3.cmake b/cmake/modules/FindOpenGLES3.cmake
deleted file mode 100644
index 394328d..0000000
--- a/cmake/modules/FindOpenGLES3.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
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/FindOpenGl.cmake b/cmake/modules/FindOpenGl.cmake
index b8cff79..af1c433 100644
--- a/cmake/modules/FindOpenGl.cmake
+++ b/cmake/modules/FindOpenGl.cmake
@@ -37,7 +37,7 @@ find_package_handle_standard_args(OpenGl
37if(OPENGL_FOUND) 37if(OPENGL_FOUND)
38 set(OPENGL_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) 38 set(OPENGL_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR})
39 set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) 39 set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY})
40 set(OPENGL_DEFINITIONS -DHAVE_LIBGL=1) 40 set(OPENGL_DEFINITIONS -DHAS_GL=1)
41endif() 41endif()
42 42
43mark_as_advanced(OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY) 43mark_as_advanced(OPENGL_INCLUDE_DIR OPENGL_gl_LIBRARY OPENGL_glu_LIBRARY)
diff --git a/cmake/modules/FindPlist.cmake b/cmake/modules/FindPlist.cmake
index 862da46..0664c10 100644
--- a/cmake/modules/FindPlist.cmake
+++ b/cmake/modules/FindPlist.cmake
@@ -41,7 +41,7 @@ endif()
41if(PLIST_FOUND) 41if(PLIST_FOUND)
42 set(PLIST_LIBRARIES ${PLIST_LIBRARY}) 42 set(PLIST_LIBRARIES ${PLIST_LIBRARY})
43 set(PLIST_INCLUDE_DIRS ${PLIST_INCLUDE_DIR}) 43 set(PLIST_INCLUDE_DIRS ${PLIST_INCLUDE_DIR})
44 set(PLIST_DEFINITIONS -DHAVE_LIBPLIST=1) 44 set(PLIST_DEFINITIONS -DHAS_AIRPLAY=1)
45 45
46 if(NOT TARGET Plist::Plist) 46 if(NOT TARGET Plist::Plist)
47 add_library(Plist::Plist UNKNOWN IMPORTED) 47 add_library(Plist::Plist UNKNOWN IMPORTED)
@@ -51,7 +51,7 @@ if(PLIST_FOUND)
51 endif() 51 endif()
52 set_target_properties(Plist::Plist PROPERTIES 52 set_target_properties(Plist::Plist PROPERTIES
53 INTERFACE_INCLUDE_DIRECTORIES "${PLIST_INCLUDE_DIR}" 53 INTERFACE_INCLUDE_DIRECTORIES "${PLIST_INCLUDE_DIR}"
54 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPLIST=1) 54 INTERFACE_COMPILE_DEFINITIONS HAS_AIRPLAY=1)
55 endif() 55 endif()
56endif() 56endif()
57 57
diff --git a/cmake/modules/FindPulseAudio.cmake b/cmake/modules/FindPulseAudio.cmake
index 5761005..2ef7910 100644
--- a/cmake/modules/FindPulseAudio.cmake
+++ b/cmake/modules/FindPulseAudio.cmake
@@ -21,14 +21,18 @@ endif()
21if(PKG_CONFIG_FOUND) 21if(PKG_CONFIG_FOUND)
22 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET) 22 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET)
23 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET) 23 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET)
24 pkg_check_modules(PC_PULSEAUDIO_SIMPLE libpulse-simple QUIET)
24endif() 25endif()
25 26
26find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h 27find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h pulse/simple.h
27 PATHS ${PC_PULSEAUDIO_INCLUDEDIR} ${PC_PULSEAUDIO_INCLUDE_DIRS}) 28 PATHS ${PC_PULSEAUDIO_INCLUDEDIR} ${PC_PULSEAUDIO_INCLUDE_DIRS})
28 29
29find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse 30find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
30 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS}) 31 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
31 32
33find_library(PULSEAUDIO_SIMPLE_LIBRARY NAMES pulse-simple libpulse-simple
34 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
35
32find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib 36find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
33 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS}) 37 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
34 38
@@ -42,13 +46,13 @@ endif()
42 46
43include(FindPackageHandleStandardArgs) 47include(FindPackageHandleStandardArgs)
44find_package_handle_standard_args(PulseAudio 48find_package_handle_standard_args(PulseAudio
45 REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_INCLUDE_DIR 49 REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_SIMPLE_LIBRARY PULSEAUDIO_INCLUDE_DIR
46 VERSION_VAR PULSEAUDIO_VERSION_STRING) 50 VERSION_VAR PULSEAUDIO_VERSION_STRING)
47 51
48if(PULSEAUDIO_FOUND) 52if(PULSEAUDIO_FOUND)
49 set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR}) 53 set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR})
50 set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY}) 54 set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY} ${PULSEAUDIO_SIMPLE_LIBRARY})
51 set(PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1) 55 set(PULSEAUDIO_DEFINITIONS -DHAS_PULSEAUDIO=1)
52 56
53 if(NOT TARGET PulseAudio::PulseAudioMainloop) 57 if(NOT TARGET PulseAudio::PulseAudioMainloop)
54 add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED) 58 add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED)
@@ -65,4 +69,4 @@ if(PULSEAUDIO_FOUND)
65 endif() 69 endif()
66endif() 70endif()
67 71
68mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) 72mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_SIMPLE_LIBRARY)
diff --git a/cmake/modules/FindRapidJSON.cmake b/cmake/modules/FindRapidJSON.cmake
index 3c3dc3f..a21ed0b 100644
--- a/cmake/modules/FindRapidJSON.cmake
+++ b/cmake/modules/FindRapidJSON.cmake
@@ -10,7 +10,7 @@
10# 10#
11if(ENABLE_INTERNAL_RapidJSON) 11if(ENABLE_INTERNAL_RapidJSON)
12 include(ExternalProject) 12 include(ExternalProject)
13 file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/rapidjson/Makefile VER REGEX MATCH "^[ ]*VERSION[ ]*=.+$") 13 file(STRINGS ${CMAKE_SOURCE_DIR}/tools/depends/target/rapidjson/Makefile VER REGEX "^[ ]*VERSION[ ]*=.+$")
14 string(REGEX REPLACE "^[ ]*VERSION[ ]*=[ ]*" "" RJSON_VER "${VER}") 14 string(REGEX REPLACE "^[ ]*VERSION[ ]*=[ ]*" "" RJSON_VER "${VER}")
15 15
16 # allow user to override the download URL with a local tarball 16 # allow user to override the download URL with a local tarball
@@ -36,6 +36,10 @@ if(ENABLE_INTERNAL_RapidJSON)
36 PREFIX ${CORE_BUILD_DIR}/rapidjson 36 PREFIX ${CORE_BUILD_DIR}/rapidjson
37 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} 37 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
38 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 38 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
39 -DRAPIDJSON_BUILD_DOC=OFF
40 -DRAPIDJSON_BUILD_EXAMPLES=OFF
41 -DRAPIDJSON_BUILD_TESTS=OFF
42 -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF
39 "${EXTRA_ARGS}" 43 "${EXTRA_ARGS}"
40 PATCH_COMMAND patch -p1 < ${CORE_SOURCE_DIR}/tools/depends/target/rapidjson/0001-remove_custom_cxx_flags.patch 44 PATCH_COMMAND patch -p1 < ${CORE_SOURCE_DIR}/tools/depends/target/rapidjson/0001-remove_custom_cxx_flags.patch
41 BUILD_BYPRODUCTS ${RapidJSON_LIBRARY}) 45 BUILD_BYPRODUCTS ${RapidJSON_LIBRARY})
diff --git a/cmake/modules/FindSSE.cmake b/cmake/modules/FindSSE.cmake
index d001b03..b860dca 100644
--- a/cmake/modules/FindSSE.cmake
+++ b/cmake/modules/FindSSE.cmake
@@ -40,6 +40,41 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
40 string(COMPARE EQUAL "avx2" "${_SSE_THERE}" _AVX2_TRUE) 40 string(COMPARE EQUAL "avx2" "${_SSE_THERE}" _AVX2_TRUE)
41 CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK) 41 CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK)
42 endif() 42 endif()
43elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
44 if(CPU MATCHES "amd64" OR CPU MATCHES "i.86")
45 exec_program(cat ARGS "/var/run/dmesg.boot | grep Features" OUTPUT_VARIABLE CPUINFO)
46
47 string(REGEX REPLACE "^.*(SSE).*$" "\\1" _SSE_THERE ${CPUINFO})
48 string(COMPARE EQUAL "SSE" "${_SSE_THERE}" _SSE_TRUE)
49 CHECK_CXX_ACCEPTS_FLAG("-msse" _SSE_OK)
50
51 string(REGEX REPLACE "^.*(SSE2).*$" "\\1" _SSE_THERE ${CPUINFO})
52 string(COMPARE EQUAL "SSE2" "${_SSE_THERE}" _SSE2_TRUE)
53 CHECK_CXX_ACCEPTS_FLAG("-msse2" _SSE2_OK)
54
55 string(REGEX REPLACE "^.*(SSE3).*$" "\\1" _SSE_THERE ${CPUINFO})
56 string(COMPARE EQUAL "SSE3" "${_SSE_THERE}" _SSE3_TRUE)
57 CHECK_CXX_ACCEPTS_FLAG("-msse3" _SSE3_OK)
58
59 string(REGEX REPLACE "^.*(SSSE3).*$" "\\1" _SSE_THERE ${CPUINFO})
60 string(COMPARE EQUAL "SSSE3" "${_SSE_THERE}" _SSSE3_TRUE)
61 CHECK_CXX_ACCEPTS_FLAG("-mssse3" _SSSE3_OK)
62
63 string(REGEX REPLACE "^.*(SSE4.1).*$" "\\1" _SSE_THERE ${CPUINFO})
64 string(COMPARE EQUAL "SSE4.1" "${_SSE_THERE}" _SSE41_TRUE)
65 CHECK_CXX_ACCEPTS_FLAG("-msse4.1" _SSE41_OK)
66 string(REGEX REPLACE "^.*(SSE4.2).*$" "\\1" _SSE_THERE ${CPUINFO})
67 string(COMPARE EQUAL "SSE4.2" "${_SSE_THERE}" _SSE42_TRUE)
68 CHECK_CXX_ACCEPTS_FLAG("-msse4.2" _SSE42_OK)
69
70 string(REGEX REPLACE "^.*(AVX).*$" "\\1" _SSE_THERE ${CPUINFO})
71 string(COMPARE EQUAL "AVX" "${_SSE_THERE}" _AVX_TRUE)
72 CHECK_CXX_ACCEPTS_FLAG("-mavx" _AVX_OK)
73
74 string(REGEX REPLACE "^.*(AVX2).*$" "\\1" _SSE_THERE ${CPUINFO})
75 string(COMPARE EQUAL "AVX2" "${_SSE_THERE}" _AVX2_TRUE)
76 CHECK_CXX_ACCEPTS_FLAG("-mavx2" _AVX2_OK)
77 endif()
43elseif(CMAKE_SYSTEM_NAME MATCHES "Android") 78elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
44 if(CPU MATCHES "x86_64" OR CPU MATCHES "i.86") 79 if(CPU MATCHES "x86_64" OR CPU MATCHES "i.86")
45 set(_SSE_TRUE TRUE) 80 set(_SSE_TRUE TRUE)
@@ -94,10 +129,12 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
94 endif() 129 endif()
95elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") 130elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
96 # TODO 131 # TODO
97 set(_SSE_TRUE true) 132 if(ARCH STREQUAL win32 OR ARCH STREQUAL x64)
98 set(_SSE_OK true) 133 set(_SSE_TRUE true)
99 set(_SSE2_TRUE true) 134 set(_SSE_OK true)
100 set(_SSE2_OK true) 135 set(_SSE2_TRUE true)
136 set(_SSE2_OK true)
137 endif()
101endif() 138endif()
102 139
103include(FindPackageHandleStandardArgs) 140include(FindPackageHandleStandardArgs)
diff --git a/cmake/modules/FindSSH.cmake b/cmake/modules/FindSSH.cmake
index 538c699..ee65210 100644
--- a/cmake/modules/FindSSH.cmake
+++ b/cmake/modules/FindSSH.cmake
@@ -33,14 +33,14 @@ find_package_handle_standard_args(SSH
33if(SSH_FOUND) 33if(SSH_FOUND)
34 set(SSH_LIBRARIES ${SSH_LIBRARY}) 34 set(SSH_LIBRARIES ${SSH_LIBRARY})
35 set(SSH_INCLUDE_DIRS ${SSH_INCLUDE_DIR}) 35 set(SSH_INCLUDE_DIRS ${SSH_INCLUDE_DIR})
36 set(SSH_DEFINITIONS -DHAVE_LIBSSH=1) 36 set(SSH_DEFINITIONS -DHAS_FILESYSTEM_SFTP=1)
37 37
38 if(NOT TARGET SSH::SSH) 38 if(NOT TARGET SSH::SSH)
39 add_library(SSH::SSH UNKNOWN IMPORTED) 39 add_library(SSH::SSH UNKNOWN IMPORTED)
40 set_target_properties(SSH::SSH PROPERTIES 40 set_target_properties(SSH::SSH PROPERTIES
41 IMPORTED_LOCATION "${SSH_LIBRARY}" 41 IMPORTED_LOCATION "${SSH_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${SSH_INCLUDE_DIR}" 42 INTERFACE_INCLUDE_DIRECTORIES "${SSH_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSSH=1) 43 INTERFACE_COMPILE_DEFINITIONS HAS_FILESYSTEM_SFTP=1)
44 endif() 44 endif()
45endif() 45endif()
46 46
diff --git a/cmake/modules/FindShairplay.cmake b/cmake/modules/FindShairplay.cmake
index 87d3107..699fb7a 100644
--- a/cmake/modules/FindShairplay.cmake
+++ b/cmake/modules/FindShairplay.cmake
@@ -46,7 +46,7 @@ endif()
46if(SHAIRPLAY_FOUND) 46if(SHAIRPLAY_FOUND)
47 set(SHAIRPLAY_LIBRARIES ${SHAIRPLAY_LIBRARY}) 47 set(SHAIRPLAY_LIBRARIES ${SHAIRPLAY_LIBRARY})
48 set(SHAIRPLAY_INCLUDE_DIRS ${SHAIRPLAY_INCLUDE_DIR}) 48 set(SHAIRPLAY_INCLUDE_DIRS ${SHAIRPLAY_INCLUDE_DIR})
49 set(SHAIRPLAY_DEFINITIONS -DHAVE_LIBSHAIRPLAY=1) 49 set(SHAIRPLAY_DEFINITIONS -DHAS_AIRTUNES=1)
50 50
51 if(NOT TARGET Shairplay::Shairplay) 51 if(NOT TARGET Shairplay::Shairplay)
52 add_library(Shairplay::Shairplay UNKNOWN IMPORTED) 52 add_library(Shairplay::Shairplay UNKNOWN IMPORTED)
@@ -56,7 +56,7 @@ if(SHAIRPLAY_FOUND)
56 endif() 56 endif()
57 set_target_properties(Shairplay::Shairplay PROPERTIES 57 set_target_properties(Shairplay::Shairplay PROPERTIES
58 INTERFACE_INCLUDE_DIRECTORIES "${SHAIRPLAY_INCLUDE_DIR}" 58 INTERFACE_INCLUDE_DIRECTORIES "${SHAIRPLAY_INCLUDE_DIR}"
59 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSHAIRPLAY=1) 59 INTERFACE_COMPILE_DEFINITIONS HAS_AIRTUNES=1)
60 endif() 60 endif()
61endif() 61endif()
62 62
diff --git a/cmake/modules/FindSmbClient.cmake b/cmake/modules/FindSmbClient.cmake
index 6455cce..9a8b197 100644
--- a/cmake/modules/FindSmbClient.cmake
+++ b/cmake/modules/FindSmbClient.cmake
@@ -33,14 +33,14 @@ find_package_handle_standard_args(SmbClient
33if(SMBCLIENT_FOUND) 33if(SMBCLIENT_FOUND)
34 set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY}) 34 set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY})
35 set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR}) 35 set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR})
36 set(SMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1) 36 set(SMBCLIENT_DEFINITIONS -DHAS_FILESYSTEM_SMB=1)
37 37
38 if(NOT TARGET SmbClient::SmbClient) 38 if(NOT TARGET SmbClient::SmbClient)
39 add_library(SmbClient::SmbClient UNKNOWN IMPORTED) 39 add_library(SmbClient::SmbClient UNKNOWN IMPORTED)
40 set_target_properties(SmbClient::SmbClient PROPERTIES 40 set_target_properties(SmbClient::SmbClient PROPERTIES
41 IMPORTED_LOCATION "${SMBCLIENT_LIBRARY}" 41 IMPORTED_LOCATION "${SMBCLIENT_LIBRARY}"
42 INTERFACE_INCLUDE_DIRECTORIES "${SMBCLIENT_INCLUDE_DIR}" 42 INTERFACE_INCLUDE_DIRECTORIES "${SMBCLIENT_INCLUDE_DIR}"
43 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBSMBCLIENT=1) 43 INTERFACE_COMPILE_DEFINITIONS HAS_FILESYSTEM_SMB=1)
44 endif() 44 endif()
45endif() 45endif()
46 46
diff --git a/cmake/modules/FindSndio.cmake b/cmake/modules/FindSndio.cmake
index 3dd53d9..5f08acd 100644
--- a/cmake/modules/FindSndio.cmake
+++ b/cmake/modules/FindSndio.cmake
@@ -25,7 +25,7 @@ find_package_handle_standard_args(Sndio
25if(SNDIO_FOUND) 25if(SNDIO_FOUND)
26 set(SNDIO_INCLUDE_DIRS ${SNDIO_INCLUDE_DIR}) 26 set(SNDIO_INCLUDE_DIRS ${SNDIO_INCLUDE_DIR})
27 set(SNDIO_LIBRARIES ${SNDIO_LIBRARY}) 27 set(SNDIO_LIBRARIES ${SNDIO_LIBRARY})
28 set(SNDIO_DEFINITIONS -DHAVE_SNDIO=1) 28 set(SNDIO_DEFINITIONS -DHAS_SNDIO=1)
29 29
30 if(NOT TARGET Sndio::Sndio) 30 if(NOT TARGET Sndio::Sndio)
31 add_library(Sndio::Sndio UNKNOWN IMPORTED) 31 add_library(Sndio::Sndio UNKNOWN IMPORTED)
@@ -33,7 +33,7 @@ if(SNDIO_FOUND)
33 IMPORTED_LOCATION "${SNDIO_LIBRARY}" 33 IMPORTED_LOCATION "${SNDIO_LIBRARY}"
34 INTERFACE_INCLUDE_DIRECTORIES "${SNDIO_INCLUDE_DIR}") 34 INTERFACE_INCLUDE_DIRECTORIES "${SNDIO_INCLUDE_DIR}")
35 set_target_properties(Sndio::Sndio PROPERTIES 35 set_target_properties(Sndio::Sndio PROPERTIES
36 INTERFACE_COMPILE_DEFINITIONS -DHAVE_SNDIO=1) 36 INTERFACE_COMPILE_DEFINITIONS -DHAS_SNDIO=1)
37 endif() 37 endif()
38endif() 38endif()
39 39
diff --git a/cmake/modules/FindTexturePacker.cmake b/cmake/modules/FindTexturePacker.cmake
index aa6fd3a..874a8f6 100644
--- a/cmake/modules/FindTexturePacker.cmake
+++ b/cmake/modules/FindTexturePacker.cmake
@@ -19,7 +19,7 @@ if(NOT TARGET TexturePacker::TexturePacker)
19 elseif(WIN32) 19 elseif(WIN32)
20 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL) 20 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL)
21 set_target_properties(TexturePacker::TexturePacker PROPERTIES 21 set_target_properties(TexturePacker::TexturePacker PROPERTIES
22 IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe") 22 IMPORTED_LOCATION "${DEPENDENCIES_DIR}/tools/TexturePacker/TexturePacker.exe")
23 else() 23 else()
24 if(WITH_TEXTUREPACKER) 24 if(WITH_TEXTUREPACKER)
25 get_filename_component(_tppath ${WITH_TEXTUREPACKER} ABSOLUTE) 25 get_filename_component(_tppath ${WITH_TEXTUREPACKER} ABSOLUTE)