summaryrefslogtreecommitdiffstats
path: root/project/cmake/modules
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/modules')
-rw-r--r--project/cmake/modules/FindBluetooth.cmake6
-rw-r--r--project/cmake/modules/FindCAP.cmake44
-rw-r--r--project/cmake/modules/FindCpluff.cmake8
-rw-r--r--project/cmake/modules/FindCrossGUID.cmake5
-rw-r--r--project/cmake/modules/FindFFMPEG.cmake258
-rw-r--r--project/cmake/modules/FindFribidi.cmake6
-rw-r--r--project/cmake/modules/FindMir.cmake33
-rw-r--r--project/cmake/modules/FindTexturePacker.cmake22
-rw-r--r--project/cmake/modules/FindVAAPI.cmake15
-rw-r--r--project/cmake/modules/FindXSLT.cmake2
10 files changed, 348 insertions, 51 deletions
diff --git a/project/cmake/modules/FindBluetooth.cmake b/project/cmake/modules/FindBluetooth.cmake
index 538e89c..a69980d 100644
--- a/project/cmake/modules/FindBluetooth.cmake
+++ b/project/cmake/modules/FindBluetooth.cmake
@@ -14,12 +14,12 @@
14# Bluetooth::Bluetooth - The Bluetooth library 14# Bluetooth::Bluetooth - The Bluetooth library
15 15
16if(PKG_CONFIG_FOUND) 16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_BLUETOOTH bluetooth QUIET) 17 pkg_check_modules(PC_BLUETOOTH bluez bluetooth QUIET)
18endif() 18endif()
19 19
20find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h 20find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h
21 PATHS ${PC_BLUETOOTH_INCLUDEDIR}) 21 PATHS ${PC_BLUETOOTH_INCLUDEDIR})
22find_library(BLUETOOTH_LIBRARY NAMES bluetooth 22find_library(BLUETOOTH_LIBRARY NAMES bluetooth libbluetooth
23 PATHS ${PC_BLUETOOTH_LIBDIR}) 23 PATHS ${PC_BLUETOOTH_LIBDIR})
24 24
25set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) 25set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION})
@@ -27,7 +27,7 @@ set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION})
27include(FindPackageHandleStandardArgs) 27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(Bluetooth 28find_package_handle_standard_args(Bluetooth
29 REQUIRED_VARS BLUETOOTH_LIBRARY BLUETOOTH_INCLUDE_DIR 29 REQUIRED_VARS BLUETOOTH_LIBRARY BLUETOOTH_INCLUDE_DIR
30 VERSION_VAR ${BLUETOOTH_VERSION}) 30 VERSION_VAR BLUETOOTH_VERSION)
31 31
32if(BLUETOOTH_FOUND) 32if(BLUETOOTH_FOUND)
33 set(BLUETOOTH_INCLUDE_DIRS ${BLUETOOTH_INCLUDE_DIR}) 33 set(BLUETOOTH_INCLUDE_DIRS ${BLUETOOTH_INCLUDE_DIR})
diff --git a/project/cmake/modules/FindCAP.cmake b/project/cmake/modules/FindCAP.cmake
new file mode 100644
index 0000000..04e8378
--- /dev/null
+++ b/project/cmake/modules/FindCAP.cmake
@@ -0,0 +1,44 @@
1#.rst:
2# FindCAP
3# -----------
4# Finds the POSIX 1003.1e capabilities library
5#
6# This will define the following variables::
7#
8# CAP_FOUND - system has LibCap
9# CAP_INCLUDE_DIRS - the LibCap include directory
10# CAP_LIBRARIES - the LibCap libraries
11#
12# and the following imported targets::
13#
14# CAP::CAP - The LibCap library
15
16if(PKG_CONFIG_FOUND)
17 pkg_check_modules(PC_CAP libcap QUIET)
18endif()
19
20find_path(CAP_INCLUDE_DIR NAMES sys/capability.h
21 PATHS ${PC_CAP_INCLUDEDIR})
22find_library(CAP_LIBRARY NAMES cap libcap
23 PATHS ${PC_CAP_LIBDIR})
24
25set(CAP_VERSION ${PC_CAP_VERSION})
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(CAP
29 REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR
30 VERSION_VAR CAP_VERSION)
31
32if(CAP_FOUND)
33 set(CAP_LIBRARIES ${CAP_LIBRARY})
34 set(CAP_INCLUDE_DIRS ${CAP_INCLUDE_DIR})
35
36 if(NOT TARGET CAP::CAP)
37 add_library(CAP::CAP UNKNOWN IMPORTED)
38 set_target_properties(CAP::CAP PROPERTIES
39 IMPORTED_LOCATION "${CAP_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${CAP_INCLUDE_DIR}")
41 endif()
42endif()
43
44mark_as_advanced(CAP_INCLUDE_DIR CAP_LIBRARY)
diff --git a/project/cmake/modules/FindCpluff.cmake b/project/cmake/modules/FindCpluff.cmake
index fb2bb25..ce6c127 100644
--- a/project/cmake/modules/FindCpluff.cmake
+++ b/project/cmake/modules/FindCpluff.cmake
@@ -10,6 +10,13 @@ if(NOT WIN32)
10 string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}") 10 string(REPLACE ";" " " defines "${CMAKE_C_FLAGS} ${SYSTEM_DEFINES} -I${EXPAT_INCLUDE_DIR}")
11 get_filename_component(expat_dir ${EXPAT_LIBRARY} DIRECTORY) 11 get_filename_component(expat_dir ${EXPAT_LIBRARY} DIRECTORY)
12 set(ldflags "-L${expat_dir}") 12 set(ldflags "-L${expat_dir}")
13
14 # iOS: Without specifying -arch, configure tries to use /bin/cpp as C-preprocessor
15 # http://stackoverflow.com/questions/38836754/cant-cross-compile-c-library-for-arm-ios
16 if(CORE_SYSTEM_NAME STREQUAL ios)
17 set(cppflags "-arch ${CPU}")
18 endif()
19
13 ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff 20 ExternalProject_Add(libcpluff SOURCE_DIR ${CORE_SOURCE_DIR}/lib/cpluff
14 BUILD_IN_SOURCE 1 21 BUILD_IN_SOURCE 1
15 PREFIX ${CORE_BUILD_DIR}/cpluff 22 PREFIX ${CORE_BUILD_DIR}/cpluff
@@ -22,6 +29,7 @@ if(NOT WIN32)
22 --libdir=<INSTALL_DIR>/lib 29 --libdir=<INSTALL_DIR>/lib
23 --host=${ARCH} 30 --host=${ARCH}
24 CFLAGS=${defines} 31 CFLAGS=${defines}
32 CPPFLAGS=${cppflags}
25 LDFLAGS=${ldflags}) 33 LDFLAGS=${ldflags})
26 ExternalProject_Add_Step(libcpluff autoreconf 34 ExternalProject_Add_Step(libcpluff autoreconf
27 DEPENDEES download update patch 35 DEPENDEES download update patch
diff --git a/project/cmake/modules/FindCrossGUID.cmake b/project/cmake/modules/FindCrossGUID.cmake
index bcae3d3..ba2823a 100644
--- a/project/cmake/modules/FindCrossGUID.cmake
+++ b/project/cmake/modules/FindCrossGUID.cmake
@@ -16,6 +16,10 @@ if(ENABLE_INTERNAL_CROSSGUID)
16 message(STATUS "CROSSGUID_URL: ${CROSSGUID_URL}") 16 message(STATUS "CROSSGUID_URL: ${CROSSGUID_URL}")
17 endif() 17 endif()
18 18
19 if(APPLE)
20 set(EXTRA_ARGS "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")
21 endif()
22
19 set(CROSSGUID_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a) 23 set(CROSSGUID_LIBRARY ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/lib/libcrossguid.a)
20 set(CROSSGUID_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include) 24 set(CROSSGUID_INCLUDE_DIR ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/include)
21 externalproject_add(crossguid 25 externalproject_add(crossguid
@@ -24,6 +28,7 @@ if(ENABLE_INTERNAL_CROSSGUID)
24 PREFIX ${CORE_BUILD_DIR}/crossguid 28 PREFIX ${CORE_BUILD_DIR}/crossguid
25 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR} 29 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}
26 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} 30 -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
31 "${EXTRA_ARGS}"
27 PATCH_COMMAND ${CMAKE_COMMAND} -E copy 32 PATCH_COMMAND ${CMAKE_COMMAND} -E copy
28 ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/CMakeLists.txt 33 ${CORE_SOURCE_DIR}/tools/depends/target/crossguid/CMakeLists.txt
29 <SOURCE_DIR> && 34 <SOURCE_DIR> &&
diff --git a/project/cmake/modules/FindFFMPEG.cmake b/project/cmake/modules/FindFFMPEG.cmake
index a9f88fb..2b3f47b 100644
--- a/project/cmake/modules/FindFFMPEG.cmake
+++ b/project/cmake/modules/FindFFMPEG.cmake
@@ -1,18 +1,224 @@
1include(ExternalProject) 1# FindFFMPEG
2file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER) 2# --------
3string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}") 3# Finds FFmpeg libraries
4list(GET FFMPEG_VER 0 FFMPEG_VER) 4#
5string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER) 5# This module will first look for the required library versions on the system.
6string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}") 6# If they are not found, it will fall back to downloading and building kodi's own version
7list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL) 7#
8string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL) 8# --------
9# the following variables influence behaviour:
10# ENABLE_INTERNAL_FFMPEG - if enabled, kodi's own version will always be built
11#
12# FFMPEG_PATH - use external ffmpeg not found in system paths
13# usage: -DFFMPEG_PATH=/path/to/ffmpeg_install_prefix
14#
15# WITH_FFMPEG - use external ffmpeg not found in system paths
16# WARNING: this option is for developers as it will _disable ffmpeg version checks_!
17# Consider using FFMPEG_PATH instead, which _does_ check library versions
18# usage: -DWITH_FFMPEG=/path/to/ffmpeg_install_prefix
19#
20# --------
21# This module will will define the following variables:
22#
23# FFMPEG_FOUND - system has FFmpeg
24# FFMPEG_INCLUDE_DIRS - FFmpeg include directory
25# FFMPEG_LIBRARIES - FFmpeg libraries
26# FFMPEG_DEFINITIONS - pre-processor definitions
27# FFMPEG_LDFLAGS - linker flags
28#
29# and the following imported targets::
30#
31# ffmpeg - The FFmpeg libraries
32# --------
33#
9 34
35# required ffmpeg library versions
36set(REQUIRED_FFMPEG_VERSION 3.1)
37set(_avcodec_ver ">=57.48.101")
38set(_avfilter_ver ">=6.47.100")
39set(_avformat_ver ">=57.41.100")
40set(_avutil_ver ">=55.28.100")
41set(_swscale_ver ">=4.1.100")
42set(_swresample_ver ">=2.1.100")
43set(_postproc_ver ">=54.0.100")
10 44
11if(ENABLE_INTERNAL_FFMPEG) 45
46# Allows building with external ffmpeg not found in system paths,
47# without library version checks
48if(WITH_FFMPEG)
49 set(FFMPEG_PATH ${WITH_FFMPEG})
50 message(STATUS "Warning: FFmpeg version checking disabled")
51 set(REQUIRED_FFMPEG_VERSION undef)
52 unset(_avcodec_ver)
53 unset(_avfilter_ver)
54 unset(_avformat_ver)
55 unset(_avutil_ver)
56 unset(_swscale_ver)
57 unset(_swresample_ver)
58 unset(_postproc_ver)
59endif()
60
61# Allows building with external ffmpeg not found in system paths,
62# with library version checks
63if(FFMPEG_PATH)
64 set(ENABLE_INTERNAL_FFMPEG OFF)
65endif()
66
67# external FFMPEG
68if(NOT ENABLE_INTERNAL_FFMPEG OR CMAKE_CROSSCOMPILING)
12 if(FFMPEG_PATH) 69 if(FFMPEG_PATH)
13 message(WARNING "Internal FFmpeg enabled, but FFMPEG_PATH given, ignoring") 70 set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig")
71 list(APPEND CMAKE_PREFIX_PATH ${FFMPEG_PATH})
14 endif() 72 endif()
15 73
74 set(FFMPEG_PKGS libavcodec${_avcodec_ver}
75 libavfilter${_avfilter_ver}
76 libavformat${_avformat_ver}
77 libavutil${_avutil_ver}
78 libswscale${_swscale_ver}
79 libswresample${_swresample_ver}
80 libpostproc${_postproc_ver})
81
82 if(PKG_CONFIG_FOUND)
83 pkg_check_modules(PC_FFMPEG ${FFMPEG_PKGS} QUIET)
84 string(REGEX REPLACE "framework;" "framework " PC_FFMPEG_LDFLAGS "${PC_FFMPEG_LDFLAGS}")
85 endif()
86
87 find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h
88 libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h
89 PATH_SUFFIXES ffmpeg
90 PATHS ${PC_FFMPEG_INCLUDE_DIRS}
91 NO_DEFAULT_PATH)
92 find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h libavfilter/avfilter.h libavformat/avformat.h
93 libavutil/avutil.h libswscale/swscale.h libpostproc/postprocess.h)
94
95 find_library(FFMPEG_LIBAVCODEC
96 NAMES avcodec libavcodec
97 PATH_SUFFIXES ffmpeg/libavcodec
98 PATHS ${PC_FFMPEG_libavcodec_LIBDIR}
99 NO_DEFAULT_PATH)
100 find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec)
101
102 find_library(FFMPEG_LIBAVFILTER
103 NAMES avfilter libavfilter
104 PATH_SUFFIXES ffmpeg/libavfilter
105 PATHS ${PC_FFMPEG_libavfilter_LIBDIR}
106 NO_DEFAULT_PATH)
107 find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter)
108
109 find_library(FFMPEG_LIBAVFORMAT
110 NAMES avformat libavformat
111 PATH_SUFFIXES ffmpeg/libavformat
112 PATHS ${PC_FFMPEG_libavformat_LIBDIR}
113 NO_DEFAULT_PATH)
114 find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat)
115
116 find_library(FFMPEG_LIBAVUTIL
117 NAMES avutil libavutil
118 PATH_SUFFIXES ffmpeg/libavutil
119 PATHS ${PC_FFMPEG_libavutil_LIBDIR}
120 NO_DEFAULT_PATH)
121 find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil)
122
123 find_library(FFMPEG_LIBSWSCALE
124 NAMES swscale libswscale
125 PATH_SUFFIXES ffmpeg/libswscale
126 PATHS ${PC_FFMPEG_libswscale_LIBDIR}
127 NO_DEFAULT_PATH)
128 find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale)
129
130 find_library(FFMPEG_LIBSWRESAMPLE
131 NAMES swresample libswresample
132 PATH_SUFFIXES ffmpeg/libswresample
133 PATHS ${PC_FFMPEG_libswresample_LIBDIR}
134 NO_DEFAULT_PATH)
135 find_library(FFMPEG_LIBSWRESAMPLE NAMES NAMES swresample libswresample PATH_SUFFIXES ffmpeg/libswresample)
136
137 find_library(FFMPEG_LIBPOSTPROC
138 NAMES postproc libpostproc
139 PATH_SUFFIXES ffmpeg/libpostproc
140 PATHS ${PC_FFMPEG_libpostproc_LIBDIR}
141 NO_DEFAULT_PATH)
142 find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc)
143
144 if((PC_FFMPEG_FOUND
145 AND PC_FFMPEG_libavcodec_VERSION
146 AND PC_FFMPEG_libavfilter_VERSION
147 AND PC_FFMPEG_libavformat_VERSION
148 AND PC_FFMPEG_libavutil_VERSION
149 AND PC_FFMPEG_libswscale_VERSION
150 AND PC_FFMPEG_libswresample_VERSION
151 AND PC_FFMPEG_libpostproc_VERSION)
152 OR WIN32)
153 set(FFMPEG_VERSION ${REQUIRED_FFMPEG_VERSION})
154
155
156 include(FindPackageHandleStandardArgs)
157 find_package_handle_standard_args(FFMPEG
158 VERSION_VAR FFMPEG_VERSION
159 REQUIRED_VARS FFMPEG_INCLUDE_DIRS
160 FFMPEG_LIBAVCODEC
161 FFMPEG_LIBAVFILTER
162 FFMPEG_LIBAVFORMAT
163 FFMPEG_LIBAVUTIL
164 FFMPEG_LIBSWSCALE
165 FFMPEG_LIBSWRESAMPLE
166 FFMPEG_LIBPOSTPROC
167 FFMPEG_VERSION
168 FAIL_MESSAGE "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, please consider using -DENABLE_INTERNAL_FFMPEG=ON")
169
170 else()
171 message(STATUS "FFmpeg ${REQUIRED_FFMPEG_VERSION} not found, falling back to internal build")
172 unset(FFMPEG_INCLUDE_DIRS)
173 unset(FFMPEG_INCLUDE_DIRS CACHE)
174 unset(FFMPEG_LIBRARIES)
175 unset(FFMPEG_LIBRARIES CACHE)
176 unset(FFMPEG_DEFINITIONS)
177 unset(FFMPEG_DEFINITIONS CACHE)
178 endif()
179
180 if(FFMPEG_FOUND)
181 set(FFMPEG_LDFLAGS ${PC_FFMPEG_LDFLAGS} CACHE STRING "ffmpeg linker flags")
182
183 # check if ffmpeg libs are statically linked
184 set(FFMPEG_LIB_TYPE SHARED)
185 foreach(_fflib IN LISTS FFMPEG_LIBRARIES)
186 if(${_fflib} MATCHES ".+\.a$" AND PC_FFMPEG_STATIC_LDFLAGS)
187 set(FFMPEG_LDFLAGS ${PC_FFMPEG_STATIC_LDFLAGS} CACHE STRING "ffmpeg linker flags" FORCE)
188 set(FFMPEG_LIB_TYPE STATIC)
189 break()
190 endif()
191 endforeach()
192
193 set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER}
194 ${FFMPEG_LIBAVFORMAT} ${FFMPEG_LIBAVUTIL}
195 ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBSWRESAMPLE}
196 ${FFMPEG_LIBPOSTPROC} ${FFMPEG_LDFLAGS})
197 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VERSION}\")
198
199 if(NOT TARGET ffmpeg)
200 add_library(ffmpeg ${FFMPEG_LIB_TYPE} IMPORTED)
201 set_target_properties(ffmpeg PROPERTIES
202 FOLDER "External Projects"
203 IMPORTED_LOCATION "${FFMPEG_LIBRARIES}"
204 INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_INCLUDE_DIRS}"
205 INTERFACE_LINK_LIBRARIES "${FFMPEG_LDFLAGS}"
206 INTERFACE_COMPILE_DEFINITIONS "${FFMPEG_DEFINITIONS}")
207 endif()
208 endif()
209endif()
210
211# Internal FFMPEG
212if(NOT FFMPEG_FOUND)
213 include(ExternalProject)
214 file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER)
215 string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}")
216 list(GET FFMPEG_VER 0 FFMPEG_VER)
217 string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER)
218 string(REGEX MATCH "BASE_URL=([^ ]*)" FFMPEG_BASE_URL "${VER}")
219 list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL)
220 string(SUBSTRING "${FFMPEG_BASE_URL}" 9 -1 FFMPEG_BASE_URL)
221
16 # allow user to override the download URL with a local tarball 222 # allow user to override the download URL with a local tarball
17 # needed for offline build envs 223 # needed for offline build envs
18 if(FFMPEG_URL) 224 if(FFMPEG_URL)
@@ -80,35 +286,7 @@ fi")
80 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\" 286 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\"
81 -DUSE_STATIC_FFMPEG=1) 287 -DUSE_STATIC_FFMPEG=1)
82 set(FFMPEG_FOUND 1) 288 set(FFMPEG_FOUND 1)
83else() 289 set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects")
84 if(FFMPEG_PATH)
85 set(ENV{PKG_CONFIG_PATH} "${FFMPEG_PATH}/lib/pkgconfig")
86 endif()
87 set(FFMPEG_PKGS libavcodec>=56.26.100 libavfilter>=5.11.100 libavformat>=56.25.101
88 libavutil>=54.20.100 libswscale>=3.1.101 libswresample>=1.1.100 libpostproc>=53.3.100)
89 if(PKG_CONFIG_FOUND AND NOT WIN32)
90 pkg_check_modules (FFMPEG ${FFMPEG_PKGS})
91 string(REGEX REPLACE "framework;" "framework " FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS}")
92 set(FFMPEG_LIBRARIES ${FFMPEG_LDFLAGS})
93 add_custom_target(ffmpeg)
94 else()
95 find_path(FFMPEG_INCLUDE_DIRS libavcodec/avcodec.h PATH_SUFFIXES ffmpeg)
96 find_library(FFMPEG_LIBAVCODEC NAMES avcodec libavcodec PATH_SUFFIXES ffmpeg/libavcodec)
97 find_library(FFMPEG_LIBAVFILTER NAMES avfilter libavfilter PATH_SUFFIXES ffmpeg/libavfilter)
98 find_library(FFMPEG_LIBAVFORMAT NAMES avformat libavformat PATH_SUFFIXES ffmpeg/libavformat)
99 find_library(FFMPEG_LIBAVUTIL NAMES avutil libavutil PATH_SUFFIXES ffmpeg/libavutil)
100 find_library(FFMPEG_LIBSWSCALE NAMES swscale libswscale PATH_SUFFIXES ffmpeg/libswscale)
101 find_library(FFMPEG_LIBPOSTPROC NAMES postproc libpostproc PATH_SUFFIXES ffmpeg/libpostproc)
102 set(FFMPEG_LIBRARIES ${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFILTER} ${FFMPEG_LIBAVFORMAT}
103 ${FFMPEG_LIBAVUTIL} ${FFMPEG_LIBSWSCALE} ${FFMPEG_LIBPOSTPROC})
104 add_custom_target(ffmpeg DEPENDS ${FFMPEG_LIBRARIES})
105 endif()
106
107 include(FindPackageHandleStandardArgs)
108 find_package_handle_standard_args(FFMPEG DEFAULT_MSG FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES)
109 set(FFMPEG_FOUND 1)
110 list(APPEND FFMPEG_DEFINITIONS -DFFMPEG_VER_SHA=\"${FFMPEG_VER}\")
111endif() 290endif()
112set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects")
113 291
114mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS FFMPEG_FOUND) 292mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_LDFLAGS FFMPEG_DEFINITIONS FFMPEG_FOUND)
diff --git a/project/cmake/modules/FindFribidi.cmake b/project/cmake/modules/FindFribidi.cmake
index 03c2f53..dcaeb48 100644
--- a/project/cmake/modules/FindFribidi.cmake
+++ b/project/cmake/modules/FindFribidi.cmake
@@ -32,12 +32,16 @@ find_package_handle_standard_args(FriBidi
32if(FRIBIDI_FOUND) 32if(FRIBIDI_FOUND)
33 set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY}) 33 set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY})
34 set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR}) 34 set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR})
35 if(PC_FRIBIDI_CFLAGS)
36 set(FRIBIDI_DEFINITIONS ${PC_FRIBIDI_CFLAGS})
37 endif()
35 38
36 if(NOT TARGET FriBidi::FriBidi) 39 if(NOT TARGET FriBidi::FriBidi)
37 add_library(FriBidi::FriBidi UNKNOWN IMPORTED) 40 add_library(FriBidi::FriBidi UNKNOWN IMPORTED)
38 set_target_properties(FriBidi::FriBidi PROPERTIES 41 set_target_properties(FriBidi::FriBidi PROPERTIES
39 IMPORTED_LOCATION "${FRIBIDI_LIBRARY}" 42 IMPORTED_LOCATION "${FRIBIDI_LIBRARY}"
40 INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}") 43 INTERFACE_INCLUDE_DIRECTORIES "${FRIBIDI_INCLUDE_DIR}"
44 INTERFACE_COMPILE_OPTIONS "${FRIBIDI_DEFINITIONS}")
41 endif() 45 endif()
42endif() 46endif()
43 47
diff --git a/project/cmake/modules/FindMir.cmake b/project/cmake/modules/FindMir.cmake
new file mode 100644
index 0000000..8847a61
--- /dev/null
+++ b/project/cmake/modules/FindMir.cmake
@@ -0,0 +1,33 @@
1# FindMir
2# -------
3# Finds the Mir library
4#
5# This will will define the following variables::
6#
7# MIR_FOUND - the system has Mir
8# MIR_INCLUDE_DIRS - the Mir include directory
9# MIR_LIBRARIES - the Mir libraries
10# MIR_DEFINITIONS - the Mir definitions
11
12
13if(PKG_CONFIG_FOUND)
14 pkg_check_modules (PC_MIR mirclient QUIET)
15endif()
16
17find_path(MIR_INCLUDE_DIR NAMES mir_toolkit/mir_client_library.h
18 PATHS ${PC_MIR_INCLUDE_DIRS})
19
20find_library(MIR_LIBRARY NAMES mirclient
21 PATHS ${PC_MIR_LIBRARIES} ${PC_MIR_LIBRARY_DIRS})
22
23include (FindPackageHandleStandardArgs)
24find_package_handle_standard_args (MIR
25 REQUIRED_VARS MIR_LIBRARY MIR_INCLUDE_DIR)
26
27if (MIR_FOUND)
28 set(MIR_LIBRARIES ${MIR_LIBRARY})
29 set(MIR_INCLUDE_DIRS ${PC_MIR_INCLUDE_DIRS})
30 set(MIR_DEFINITIONS -DHAVE_MIR=1)
31endif()
32
33mark_as_advanced (MIR_LIBRARY MIR_INCLUDE_DIR)
diff --git a/project/cmake/modules/FindTexturePacker.cmake b/project/cmake/modules/FindTexturePacker.cmake
index 2229ff7..f9e4c75 100644
--- a/project/cmake/modules/FindTexturePacker.cmake
+++ b/project/cmake/modules/FindTexturePacker.cmake
@@ -3,6 +3,10 @@
3# ----------------- 3# -----------------
4# Finds the TexturePacker 4# Finds the TexturePacker
5# 5#
6# If WITH_TEXTUREPACKER is defined and points to a directory,
7# this path will be used to search for the Texturepacker binary
8#
9#
6# This will define the following (imported) targets:: 10# This will define the following (imported) targets::
7# 11#
8# TexturePacker::TexturePacker - The TexturePacker executable 12# TexturePacker::TexturePacker - The TexturePacker executable
@@ -17,7 +21,21 @@ if(NOT TARGET TexturePacker::TexturePacker)
17 set_target_properties(TexturePacker::TexturePacker PROPERTIES 21 set_target_properties(TexturePacker::TexturePacker PROPERTIES
18 IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe") 22 IMPORTED_LOCATION "${CORE_SOURCE_DIR}/tools/TexturePacker/TexturePacker.exe")
19 else() 23 else()
20 add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker) 24 if(WITH_TEXTUREPACKER)
21 add_executable(TexturePacker::TexturePacker ALIAS TexturePacker) 25 get_filename_component(_tppath ${WITH_TEXTUREPACKER} ABSOLUTE)
26 find_program(TEXTUREPACKER_EXECUTABLE TexturePacker PATHS ${_tppath})
27
28 include(FindPackageHandleStandardArgs)
29 find_package_handle_standard_args(TexturePacker DEFAULT_MSG TEXTUREPACKER_EXECUTABLE)
30 if(TEXTUREPACKER_FOUND)
31 add_executable(TexturePacker::TexturePacker IMPORTED GLOBAL)
32 set_target_properties(TexturePacker::TexturePacker PROPERTIES
33 IMPORTED_LOCATION "${TEXTUREPACKER_EXECUTABLE}")
34 endif()
35 mark_as_advanced(TEXTUREPACKER)
36 else()
37 add_subdirectory(${CORE_SOURCE_DIR}/tools/depends/native/TexturePacker build/texturepacker)
38 add_executable(TexturePacker::TexturePacker ALIAS TexturePacker)
39 endif()
22 endif() 40 endif()
23endif() 41endif()
diff --git a/project/cmake/modules/FindVAAPI.cmake b/project/cmake/modules/FindVAAPI.cmake
index ce3fe1a..ea9a3c9 100644
--- a/project/cmake/modules/FindVAAPI.cmake
+++ b/project/cmake/modules/FindVAAPI.cmake
@@ -24,6 +24,8 @@ find_library(VAAPI_libva_LIBRARY NAMES va
24 PATHS ${PC_VAAPI_libva_LIBDIR}) 24 PATHS ${PC_VAAPI_libva_LIBDIR})
25find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 25find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11
26 PATHS ${PC_VAAPI_libva_LIBDIR}) 26 PATHS ${PC_VAAPI_libva_LIBDIR})
27find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm
28 PATHS ${PC_VAAPI_libva_LIBDIR})
27 29
28if(PC_VAAPI_libva_VERSION) 30if(PC_VAAPI_libva_VERSION)
29 set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION}) 31 set(VAAPI_VERSION_STRING ${PC_VAAPI_libva_VERSION})
@@ -39,12 +41,12 @@ endif()
39 41
40include(FindPackageHandleStandardArgs) 42include(FindPackageHandleStandardArgs)
41find_package_handle_standard_args(VAAPI 43find_package_handle_standard_args(VAAPI
42 REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_INCLUDE_DIR 44 REQUIRED_VARS VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY VAAPI_INCLUDE_DIR
43 VERSION_VAR VAAPI_VERSION_STRING) 45 VERSION_VAR VAAPI_VERSION_STRING)
44 46
45if(VAAPI_FOUND) 47if(VAAPI_FOUND)
46 set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR}) 48 set(VAAPI_INCLUDE_DIRS ${VAAPI_INCLUDE_DIR})
47 set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY}) 49 set(VAAPI_LIBRARIES ${VAAPI_libva_LIBRARY} ${VAAPI_libva-x11_LIBRARY} ${VAAPI_libva-drm_LIBRARY})
48 set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1) 50 set(VAAPI_DEFINITIONS -DHAVE_LIBVA=1)
49 51
50 if(NOT TARGET VAAPI::VAAPI_X11) 52 if(NOT TARGET VAAPI::VAAPI_X11)
@@ -52,14 +54,19 @@ if(VAAPI_FOUND)
52 set_target_properties(VAAPI::VAAPI_X11 PROPERTIES 54 set_target_properties(VAAPI::VAAPI_X11 PROPERTIES
53 IMPORTED_LOCATION "${VAAPI_libva-x11_LIBRARY}") 55 IMPORTED_LOCATION "${VAAPI_libva-x11_LIBRARY}")
54 endif() 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()
55 if(NOT TARGET VAAPI::VAAPI) 62 if(NOT TARGET VAAPI::VAAPI)
56 add_library(VAAPI::VAAPI UNKNOWN IMPORTED) 63 add_library(VAAPI::VAAPI UNKNOWN IMPORTED)
57 set_target_properties(VAAPI::VAAPI PROPERTIES 64 set_target_properties(VAAPI::VAAPI PROPERTIES
58 IMPORTED_LOCATION "${VAAPI_libva_LIBRARY}" 65 IMPORTED_LOCATION "${VAAPI_libva_LIBRARY}"
59 INTERFACE_INCLUDE_DIRECTORIES "${VAAPI_INCLUDE_DIR}" 66 INTERFACE_INCLUDE_DIRECTORIES "${VAAPI_INCLUDE_DIR}"
60 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVA=1 67 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBVA=1
61 INTERFACE_LINK_LIBRARIES VAAPI::VAAPI_X11) 68 INTERFACE_LINK_LIBRARIES "VAAPI::VAAPI_X11 VAAPI::VAAPI_DRM")
62 endif() 69 endif()
63endif() 70endif()
64 71
65mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY) 72mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY VAAPI_libva-drm_LIBRARY)
diff --git a/project/cmake/modules/FindXSLT.cmake b/project/cmake/modules/FindXSLT.cmake
index 9be51d3..f7fea9e 100644
--- a/project/cmake/modules/FindXSLT.cmake
+++ b/project/cmake/modules/FindXSLT.cmake
@@ -43,7 +43,7 @@ if(XSLT_FOUND)
43 IMPORTED_LOCATION "${XSLT_LIBRARY}" 43 IMPORTED_LOCATION "${XSLT_LIBRARY}"
44 INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}" 44 INTERFACE_INCLUDE_DIRECTORIES "${XSLT_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}"
45 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1 45 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBXSLT=1
46 ITERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}") 46 INTERFACE_LINK_LIBRARIES "${LIBXML2_LIBRARIES}")
47 endif() 47 endif()
48endif() 48endif()
49 49