summaryrefslogtreecommitdiffstats
path: root/cmake/modules
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules')
-rw-r--r--cmake/modules/FindCCache.cmake11
-rw-r--r--cmake/modules/FindCXX11.cmake18
-rw-r--r--cmake/modules/FindCurl.cmake19
-rw-r--r--cmake/modules/FindFmt.cmake1
-rw-r--r--cmake/modules/FindFreeType.cmake3
-rw-r--r--cmake/modules/FindJsonSchemaBuilder.cmake38
-rw-r--r--cmake/modules/FindLibDRM.cmake2
-rw-r--r--cmake/modules/FindMariaDBClient.cmake18
-rw-r--r--cmake/modules/FindMicroHttpd.cmake10
-rw-r--r--cmake/modules/FindYajl.cmake62
10 files changed, 72 insertions, 110 deletions
diff --git a/cmake/modules/FindCCache.cmake b/cmake/modules/FindCCache.cmake
index 956dee2..a18d4e0 100644
--- a/cmake/modules/FindCCache.cmake
+++ b/cmake/modules/FindCCache.cmake
@@ -12,7 +12,16 @@ include(FindPackageHandleStandardArgs)
12find_package_handle_standard_args(CCache REQUIRED_VARS CCACHE_PROGRAM) 12find_package_handle_standard_args(CCache REQUIRED_VARS CCACHE_PROGRAM)
13 13
14if(CCACHE_FOUND) 14if(CCACHE_FOUND)
15 # Supports Unix Makefiles and Ninja 15 # Supports Unix Makefiles, Ninja and Xcode
16 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") 16 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
17 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}") 17 set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CCACHE_PROGRAM}")
18
19 file(WRITE "${CMAKE_BINARY_DIR}/launch-c" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_C_COMPILER}\" \"$@\"\n")
20 file(WRITE "${CMAKE_BINARY_DIR}/launch-cxx" "exec \"${CCACHE_PROGRAM}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"\n")
21 execute_process(COMMAND chmod +x "${CMAKE_BINARY_DIR}/launch-c" "${CMAKE_BINARY_DIR}/launch-cxx")
22
23 set(CMAKE_XCODE_ATTRIBUTE_CC "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE)
24 set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx" PARENT_SCOPE)
25 set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c" PARENT_SCOPE)
26 set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx" PARENT_SCOPE)
18endif() 27endif()
diff --git a/cmake/modules/FindCXX11.cmake b/cmake/modules/FindCXX11.cmake
deleted file mode 100644
index c0b9a52..0000000
--- a/cmake/modules/FindCXX11.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
1include(TestCXXAcceptsFlag)
2
3# try to use compiler flag -std=c++11
4check_cxx_accepts_flag("-std=c++11" CXX_FLAG_CXX11)
5if(CXX_FLAG_CXX11)
6 add_options (CXX ALL_BUILDS "-std=c++11")
7 set(CXX_STD11_FLAGS "-std=c++11")
8else()
9 # try to use compiler flag -std=c++0x for older compilers
10 check_cxx_accepts_flag("-std=c++0x" CXX_FLAG_CXX0X)
11 if(CXX_FLAG_CXX0X)
12 add_options (CXX ALL_BUILDS "-std=c++0x")
13 set(CXX_STD11_FLAGS "-std=c++0x")
14 endif()
15endif()
16
17include(FindPackageHandleStandardArgs)
18find_package_handle_standard_args(CXX11 DEFAULT_MSG CXX_STD11_FLAGS)
diff --git a/cmake/modules/FindCurl.cmake b/cmake/modules/FindCurl.cmake
index 6ccf44a..6411a92 100644
--- a/cmake/modules/FindCurl.cmake
+++ b/cmake/modules/FindCurl.cmake
@@ -25,6 +25,19 @@ find_library(CURL_LIBRARY NAMES curl libcurl libcurl_imp
25 25
26set(CURL_VERSION ${PC_CURL_VERSION}) 26set(CURL_VERSION ${PC_CURL_VERSION})
27 27
28set(CURL_LIB_TYPE SHARED)
29set(CURL_LDFLAGS ${PC_CURL_LDFLAGS})
30
31# check if curl is statically linked
32if(${CURL_LIBRARY} MATCHES ".+\.a$" AND PC_CURL_STATIC_LDFLAGS)
33 set(CURL_LIB_TYPE STATIC)
34 set(CURL_LDFLAGS ${PC_CURL_STATIC_LDFLAGS})
35
36 pkg_check_modules(PC_NGHTTP2 libnghttp2 QUIET)
37 find_library(NGHTTP2_LIBRARY NAMES libnghttp2 nghttp2
38 PATHS ${PC_NGHTTP2_LIBDIR})
39endif()
40
28include(FindPackageHandleStandardArgs) 41include(FindPackageHandleStandardArgs)
29find_package_handle_standard_args(Curl 42find_package_handle_standard_args(Curl
30 REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR 43 REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
@@ -32,10 +45,10 @@ find_package_handle_standard_args(Curl
32 45
33if(CURL_FOUND) 46if(CURL_FOUND)
34 set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR}) 47 set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
35 set(CURL_LIBRARIES ${CURL_LIBRARY}) 48 set(CURL_LIBRARIES ${CURL_LIBRARY} ${NGHTTP2_LIBRARY})
36 49
37 if(NOT TARGET Curl::Curl) 50 if(NOT TARGET Curl::Curl)
38 add_library(Curl::Curl UNKNOWN IMPORTED) 51 add_library(Curl::Curl ${CURL_LIB_TYPE} IMPORTED)
39 set_target_properties(Curl::Curl PROPERTIES 52 set_target_properties(Curl::Curl PROPERTIES
40 IMPORTED_LOCATION "${CURL_LIBRARY}" 53 IMPORTED_LOCATION "${CURL_LIBRARY}"
41 INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}") 54 INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIR}")
@@ -46,4 +59,4 @@ if(CURL_FOUND)
46 endif() 59 endif()
47endif() 60endif()
48 61
49mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY) 62mark_as_advanced(CURL_INCLUDE_DIR CURL_LIBRARY CURL_LDFLAGS)
diff --git a/cmake/modules/FindFmt.cmake b/cmake/modules/FindFmt.cmake
index df18d85..47cf8be 100644
--- a/cmake/modules/FindFmt.cmake
+++ b/cmake/modules/FindFmt.cmake
@@ -40,6 +40,7 @@ if(ENABLE_INTERNAL_FMT)
40 PREFIX ${CORE_BUILD_DIR}/fmt 40 PREFIX ${CORE_BUILD_DIR}/fmt
41 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} 41 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
42 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 42 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
43 -DCMAKE_INSTALL_LIBDIR=lib
43 -DFMT_DOC=OFF 44 -DFMT_DOC=OFF
44 -DFMT_TEST=OFF 45 -DFMT_TEST=OFF
45 "${EXTRA_ARGS}" 46 "${EXTRA_ARGS}"
diff --git a/cmake/modules/FindFreeType.cmake b/cmake/modules/FindFreeType.cmake
index 8a39555..771819e 100644
--- a/cmake/modules/FindFreeType.cmake
+++ b/cmake/modules/FindFreeType.cmake
@@ -19,7 +19,8 @@ endif()
19 19
20find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h freetype.h 20find_path(FREETYPE_INCLUDE_DIR NAMES freetype/freetype.h freetype.h
21 PATHS ${PC_FREETYPE_INCLUDEDIR} 21 PATHS ${PC_FREETYPE_INCLUDEDIR}
22 ${PC_FREETYPE_INCLUDE_DIRS}) 22 ${PC_FREETYPE_INCLUDE_DIRS}
23 PATH_SUFFIXES freetype2)
23find_library(FREETYPE_LIBRARY NAMES freetype freetype246MT 24find_library(FREETYPE_LIBRARY NAMES freetype freetype246MT
24 PATHS ${PC_FREETYPE_LIBDIR}) 25 PATHS ${PC_FREETYPE_LIBDIR})
25 26
diff --git a/cmake/modules/FindJsonSchemaBuilder.cmake b/cmake/modules/FindJsonSchemaBuilder.cmake
index 14aa2f5..094c2fa 100644
--- a/cmake/modules/FindJsonSchemaBuilder.cmake
+++ b/cmake/modules/FindJsonSchemaBuilder.cmake
@@ -3,24 +3,40 @@
3# --------------------- 3# ---------------------
4# Finds the JsonSchemaBuilder 4# Finds the JsonSchemaBuilder
5# 5#
6# If WITH_JSONSCHEMABUILDER is defined and points to a directory,
7# this path will be used to search for the JsonSchemaBuilder binary
8#
9#
6# This will define the following (imported) targets:: 10# This will define the following (imported) targets::
7# 11#
8# JsonSchemaBuilder::JsonSchemaBuilder - The JsonSchemaBuilder executable 12# JsonSchemaBuilder::JsonSchemaBuilder - The JsonSchemaBuilder executable
9 13
10if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder) 14if(NOT TARGET JsonSchemaBuilder::JsonSchemaBuilder)
11 if(KODI_DEPENDSBUILD OR CMAKE_CROSSCOMPILING) 15 if(KODI_DEPENDSBUILD)
16 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
17 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
18 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder")
19 elseif(CORE_SYSTEM_NAME STREQUAL windowsstore)
12 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL) 20 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
13 if(CORE_SYSTEM_NAME STREQUAL windows OR CORE_SYSTEM_NAME STREQUAL windowsstore) 21 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
14 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES 22 IMPORTED_LOCATION "${DEPENDENCIES_DIR}/bin/json-rpc/JsonSchemaBuilder")
15 IMPORTED_LOCATION "${DEPENDENCIES_DIR}/bin/json-rpc/JsonSchemaBuilder") 23 else()
24 if(WITH_JSONSCHEMABUILDER)
25 get_filename_component(_jsbpath ${WITH_JSONSCHEMABUILDER} ABSOLUTE)
26 find_program(JSONSCHEMABUILDER_EXECUTABLE JsonSchemaBuilder PATHS ${_jsbpath})
27
28 include(FindPackageHandleStandardArgs)
29 find_package_handle_standard_args(JsonSchemaBuilder DEFAULT_MSG JSONSCHEMABUILDER_EXECUTABLE)
30 if(JSONSCHEMABUILDER_FOUND)
31 add_executable(JsonSchemaBuilder::JsonSchemaBuilder IMPORTED GLOBAL)
32 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES
33 IMPORTED_LOCATION "${JSONSCHEMABUILDER_EXECUTABLE}")
34 endif()
35 mark_as_advanced(JSONSCHEMABUILDER)
16 else() 36 else()
17 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES 37 add_subdirectory(${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder)
18 IMPORTED_LOCATION "${NATIVEPREFIX}/bin/JsonSchemaBuilder") 38 add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder)
39 set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools)
19 endif() 40 endif()
20 set_target_properties(JsonSchemaBuilder::JsonSchemaBuilder PROPERTIES FOLDER Tools)
21 else()
22 add_subdirectory(${CMAKE_SOURCE_DIR}/tools/depends/native/JsonSchemaBuilder build/jsonschemabuilder)
23 add_executable(JsonSchemaBuilder::JsonSchemaBuilder ALIAS JsonSchemaBuilder)
24 set_target_properties(JsonSchemaBuilder PROPERTIES FOLDER Tools)
25 endif() 41 endif()
26endif() 42endif()
diff --git a/cmake/modules/FindLibDRM.cmake b/cmake/modules/FindLibDRM.cmake
index ec30920..4b39de3 100644
--- a/cmake/modules/FindLibDRM.cmake
+++ b/cmake/modules/FindLibDRM.cmake
@@ -14,7 +14,7 @@
14# LibDRM::LibDRM - The LibDRM library 14# LibDRM::LibDRM - The LibDRM library
15 15
16if(PKG_CONFIG_FOUND) 16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_LIBDRM libdrm>=2.4.71 QUIET) 17 pkg_check_modules(PC_LIBDRM libdrm>=2.4.82 QUIET)
18endif() 18endif()
19 19
20find_path(LIBDRM_INCLUDE_DIR NAMES drm.h 20find_path(LIBDRM_INCLUDE_DIR NAMES drm.h
diff --git a/cmake/modules/FindMariaDBClient.cmake b/cmake/modules/FindMariaDBClient.cmake
index 8a28670..7530ab5 100644
--- a/cmake/modules/FindMariaDBClient.cmake
+++ b/cmake/modules/FindMariaDBClient.cmake
@@ -21,15 +21,25 @@ else()
21 set(EXTRA_FIND_ARGS) 21 set(EXTRA_FIND_ARGS)
22endif() 22endif()
23 23
24find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h) 24if(PKG_CONFIG_FOUND)
25find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient libmariadb 25 pkg_check_modules(PC_MARIADBCLIENT mariadb QUIET)
26endif()
27
28
29find_path(MARIADBCLIENT_INCLUDE_DIR NAMES mariadb/mysql.h mariadb/server/mysql.h
30 PATHS ${PC_MARIADBCLIENT_INCLUDEDIR})
31find_library(MARIADBCLIENT_LIBRARY_RELEASE NAMES mariadbclient mariadb
32 PATHS ${PC_MARIADBCLIENT_LIBDIR}
26 PATH_SUFFIXES mariadb 33 PATH_SUFFIXES mariadb
27 ${EXTRA_FIND_ARGS}) 34 ${EXTRA_FIND_ARGS})
28find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient libmariadb 35find_library(MARIADBCLIENT_LIBRARY_DEBUG NAMES mariadbclient mariadb
36 PATHS ${PC_MARIADBCLIENT_LIBDIR}
29 PATH_SUFFIXES mariadb 37 PATH_SUFFIXES mariadb
30 ${EXTRA_FIND_ARGS}) 38 ${EXTRA_FIND_ARGS})
31 39
32if(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h") 40if(PC_MARIADBCLIENT_VERSION)
41 set(MARIADBCLIENT_VERSION_STRING ${PC_MARIADBCLIENT_VERSION})
42elseif(MARIADBCLIENT_INCLUDE_DIR AND EXISTS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h")
33 file(STRINGS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h" mariadb_version_str REGEX "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\".*\".*") 43 file(STRINGS "${MARIADBCLIENT_INCLUDE_DIR}/mariadb/mariadb_version.h" mariadb_version_str REGEX "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\".*\".*")
34 string(REGEX REPLACE "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\"([^\"]+)\".*" "\\1" MARIADBCLIENT_VERSION_STRING "${mariadb_version_str}") 44 string(REGEX REPLACE "^#define[\t ]+MARIADB_CLIENT_VERSION_STR[\t ]+\"([^\"]+)\".*" "\\1" MARIADBCLIENT_VERSION_STRING "${mariadb_version_str}")
35 unset(mariadb_version_str) 45 unset(mariadb_version_str)
diff --git a/cmake/modules/FindMicroHttpd.cmake b/cmake/modules/FindMicroHttpd.cmake
index e6127f3..a0b91a0 100644
--- a/cmake/modules/FindMicroHttpd.cmake
+++ b/cmake/modules/FindMicroHttpd.cmake
@@ -35,15 +35,7 @@ if(MICROHTTPD_FOUND)
35 set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR}) 35 set(MICROHTTPD_INCLUDE_DIRS ${MICROHTTPD_INCLUDE_DIR})
36 set(MICROHTTPD_DEFINITIONS -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1) 36 set(MICROHTTPD_DEFINITIONS -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1)
37 37
38 if(KODI_DEPENDSBUILD AND NOT WIN32) 38 if(${MICROHTTPD_LIBRARY} MATCHES ".+\.a$" AND PC_MICROHTTPD_STATIC_LIBRARIES)
39 find_library(GCRYPT_LIBRARY gcrypt)
40 find_library(GPGERROR_LIBRARY gpg-error)
41 list(APPEND MICROHTTPD_LIBRARIES ${GCRYPT_LIBRARY} ${GPGERROR_LIBRARY})
42 mark_as_advanced(GCRYPT_LIBRARY GPGERROR_LIBRARY)
43 if(NOT APPLE AND NOT CORE_SYSTEM_NAME STREQUAL android)
44 list(APPEND MICROHTTPD_LIBRARIES rt)
45 endif()
46 else()
47 list(APPEND MICROHTTPD_LIBRARIES ${PC_MICROHTTPD_STATIC_LIBRARIES}) 39 list(APPEND MICROHTTPD_LIBRARIES ${PC_MICROHTTPD_STATIC_LIBRARIES})
48 endif() 40 endif()
49endif() 41endif()
diff --git a/cmake/modules/FindYajl.cmake b/cmake/modules/FindYajl.cmake
deleted file mode 100644
index d8793e6..0000000
--- a/cmake/modules/FindYajl.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
1#.rst:
2# FindYajl
3# --------
4# Finds the Yajl library
5#
6# This will define the following variables::
7#
8# YAJL_FOUND - system has Yajl
9# YAJL_INCLUDE_DIRS - Yajl include directory
10# YAJL_LIBRARIES - the Yajl libraries
11#
12# and the following imported targets::
13#
14# Yajl::Yajl - The Yajl library
15
16if(NOT Yajl_FIND_VERSION)
17 set(Yajl_FIND_VERSION 2.0.0)
18endif()
19
20if(PKG_CONFIG_FOUND)
21 pkg_check_modules(PC_YAJL yajl>=${Yajl_FIND_VERSION} QUIET)
22endif()
23
24find_path(YAJL_INCLUDE_DIR NAMES yajl/yajl_common.h
25 PATHS ${PC_YAJL_INCLUDEDIR})
26find_library(YAJL_LIBRARY NAMES yajl
27 PATHS ${PC_YAJL_LIBDIR})
28
29if(PC_YAJL_VERSION)
30 set(YAJL_VERSION_STRING ${PC_YAJL_VERSION})
31elseif(YAJL_INCLUDE_DIR AND EXISTS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h")
32 file(STRINGS "${YAJL_INCLUDE_DIR}/yajl/yajl_version.h" yajl_version_str REGEX "^[ \t]*#define[ \t]+YAJL_(MAJOR|MINOR|MICRO)")
33 string(REGEX REPLACE "YAJL_MAJOR ([0-9]+)" "\\1" YAJL_VERSION_MAJOR "${YAJL_VERSION_MAJOR}")
34
35 string(REGEX REPLACE ".*YAJL_MAJOR ([0-9]+).*" "\\1" yajl_major "${yajl_version_str}")
36 string(REGEX REPLACE ".*YAJL_MINOR ([0-9]+).*" "\\1" yajl_minor "${yajl_version_str}")
37 string(REGEX REPLACE ".*YAJL_MICRO ([0-9]+).*" "\\1" yajl_micro "${yajl_version_str}")
38 set(YAJL_VERSION_STRING "${yajl_major}.${yajl_minor}.${yajl_micro}")
39 unset(yajl_version_str)
40 unset(yajl_major)
41 unset(yajl_minor)
42 unset(yajl_micro)
43endif()
44
45include(FindPackageHandleStandardArgs)
46find_package_handle_standard_args(Yajl
47 REQUIRED_VARS YAJL_LIBRARY YAJL_INCLUDE_DIR
48 VERSION_VAR YAJL_VERSION_STRING)
49
50if(YAJL_FOUND)
51 set(YAJL_INCLUDE_DIRS ${YAJL_INCLUDE_DIR})
52 set(YAJL_LIBRARIES ${YAJL_LIBRARY})
53
54 if(NOT TARGET Yajl::Yajl)
55 add_library(Yajl::Yajl UNKNOWN IMPORTED)
56 set_target_properties(Yajl::Yajl PROPERTIES
57 IMPORTED_LOCATION "${YAJL_LIBRARY}"
58 INTERFACE_INCLUDE_DIRECTORIES "${YAJL_INCLUDE_DIR}")
59 endif()
60endif()
61
62mark_as_advanced(YAJL_INCLUDE_DIR YAJL_LIBRARY)