diff options
| author | manuel <manuel@mausz.at> | 2016-12-13 13:45:04 +0100 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2016-12-13 13:45:04 +0100 |
| commit | 1e5bdca69f7676b2dbcd64f0f44f31b12b337b7c (patch) | |
| tree | de36b55c5b49c0b266ebf8a5276815d2ac1a8ae5 /project/cmake/modules | |
| parent | 8cdf8dec703d882b46ca50a769fabb95ffc48e2c (diff) | |
| download | kodi-pvr-build-1e5bdca69f7676b2dbcd64f0f44f31b12b337b7c.tar.gz kodi-pvr-build-1e5bdca69f7676b2dbcd64f0f44f31b12b337b7c.tar.bz2 kodi-pvr-build-1e5bdca69f7676b2dbcd64f0f44f31b12b337b7c.zip | |
sync with upstream
Diffstat (limited to 'project/cmake/modules')
| -rw-r--r-- | project/cmake/modules/FindBluetooth.cmake | 6 | ||||
| -rw-r--r-- | project/cmake/modules/FindCAP.cmake | 44 | ||||
| -rw-r--r-- | project/cmake/modules/FindCpluff.cmake | 8 | ||||
| -rw-r--r-- | project/cmake/modules/FindCrossGUID.cmake | 5 | ||||
| -rw-r--r-- | project/cmake/modules/FindFFMPEG.cmake | 258 | ||||
| -rw-r--r-- | project/cmake/modules/FindFribidi.cmake | 6 | ||||
| -rw-r--r-- | project/cmake/modules/FindMir.cmake | 33 | ||||
| -rw-r--r-- | project/cmake/modules/FindTexturePacker.cmake | 22 | ||||
| -rw-r--r-- | project/cmake/modules/FindVAAPI.cmake | 15 | ||||
| -rw-r--r-- | project/cmake/modules/FindXSLT.cmake | 2 |
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 | ||
| 16 | if(PKG_CONFIG_FOUND) | 16 | if(PKG_CONFIG_FOUND) |
| 17 | pkg_check_modules(PC_BLUETOOTH bluetooth QUIET) | 17 | pkg_check_modules(PC_BLUETOOTH bluez bluetooth QUIET) |
| 18 | endif() | 18 | endif() |
| 19 | 19 | ||
| 20 | find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h | 20 | find_path(BLUETOOTH_INCLUDE_DIR NAMES bluetooth/bluetooth.h |
| 21 | PATHS ${PC_BLUETOOTH_INCLUDEDIR}) | 21 | PATHS ${PC_BLUETOOTH_INCLUDEDIR}) |
| 22 | find_library(BLUETOOTH_LIBRARY NAMES bluetooth | 22 | find_library(BLUETOOTH_LIBRARY NAMES bluetooth libbluetooth |
| 23 | PATHS ${PC_BLUETOOTH_LIBDIR}) | 23 | PATHS ${PC_BLUETOOTH_LIBDIR}) |
| 24 | 24 | ||
| 25 | set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) | 25 | set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) |
| @@ -27,7 +27,7 @@ set(BLUETOOTH_VERSION ${PC_BLUETOOTH_VERSION}) | |||
| 27 | include(FindPackageHandleStandardArgs) | 27 | include(FindPackageHandleStandardArgs) |
| 28 | find_package_handle_standard_args(Bluetooth | 28 | find_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 | ||
| 32 | if(BLUETOOTH_FOUND) | 32 | if(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 | |||
| 16 | if(PKG_CONFIG_FOUND) | ||
| 17 | pkg_check_modules(PC_CAP libcap QUIET) | ||
| 18 | endif() | ||
| 19 | |||
| 20 | find_path(CAP_INCLUDE_DIR NAMES sys/capability.h | ||
| 21 | PATHS ${PC_CAP_INCLUDEDIR}) | ||
| 22 | find_library(CAP_LIBRARY NAMES cap libcap | ||
| 23 | PATHS ${PC_CAP_LIBDIR}) | ||
| 24 | |||
| 25 | set(CAP_VERSION ${PC_CAP_VERSION}) | ||
| 26 | |||
| 27 | include(FindPackageHandleStandardArgs) | ||
| 28 | find_package_handle_standard_args(CAP | ||
| 29 | REQUIRED_VARS CAP_LIBRARY CAP_INCLUDE_DIR | ||
| 30 | VERSION_VAR CAP_VERSION) | ||
| 31 | |||
| 32 | if(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() | ||
| 42 | endif() | ||
| 43 | |||
| 44 | mark_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 @@ | |||
| 1 | include(ExternalProject) | 1 | # FindFFMPEG |
| 2 | file(STRINGS ${CORE_SOURCE_DIR}/tools/depends/target/ffmpeg/FFMPEG-VERSION VER) | 2 | # -------- |
| 3 | string(REGEX MATCH "VERSION=[^ ]*$.*" FFMPEG_VER "${VER}") | 3 | # Finds FFmpeg libraries |
| 4 | list(GET FFMPEG_VER 0 FFMPEG_VER) | 4 | # |
| 5 | string(SUBSTRING "${FFMPEG_VER}" 8 -1 FFMPEG_VER) | 5 | # This module will first look for the required library versions on the system. |
| 6 | string(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 |
| 7 | list(GET FFMPEG_BASE_URL 0 FFMPEG_BASE_URL) | 7 | # |
| 8 | string(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 | ||
| 36 | set(REQUIRED_FFMPEG_VERSION 3.1) | ||
| 37 | set(_avcodec_ver ">=57.48.101") | ||
| 38 | set(_avfilter_ver ">=6.47.100") | ||
| 39 | set(_avformat_ver ">=57.41.100") | ||
| 40 | set(_avutil_ver ">=55.28.100") | ||
| 41 | set(_swscale_ver ">=4.1.100") | ||
| 42 | set(_swresample_ver ">=2.1.100") | ||
| 43 | set(_postproc_ver ">=54.0.100") | ||
| 10 | 44 | ||
| 11 | if(ENABLE_INTERNAL_FFMPEG) | 45 | |
| 46 | # Allows building with external ffmpeg not found in system paths, | ||
| 47 | # without library version checks | ||
| 48 | if(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) | ||
| 59 | endif() | ||
| 60 | |||
| 61 | # Allows building with external ffmpeg not found in system paths, | ||
| 62 | # with library version checks | ||
| 63 | if(FFMPEG_PATH) | ||
| 64 | set(ENABLE_INTERNAL_FFMPEG OFF) | ||
| 65 | endif() | ||
| 66 | |||
| 67 | # external FFMPEG | ||
| 68 | if(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() | ||
| 209 | endif() | ||
| 210 | |||
| 211 | # Internal FFMPEG | ||
| 212 | if(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) |
| 83 | else() | 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}\") | ||
| 111 | endif() | 290 | endif() |
| 112 | set_target_properties(ffmpeg PROPERTIES FOLDER "External Projects") | ||
| 113 | 291 | ||
| 114 | mark_as_advanced(FFMPEG_INCLUDE_DIRS FFMPEG_LIBRARIES FFMPEG_DEFINITIONS FFMPEG_FOUND) | 292 | mark_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 | |||
| 32 | if(FRIBIDI_FOUND) | 32 | if(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() |
| 42 | endif() | 46 | endif() |
| 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 | |||
| 13 | if(PKG_CONFIG_FOUND) | ||
| 14 | pkg_check_modules (PC_MIR mirclient QUIET) | ||
| 15 | endif() | ||
| 16 | |||
| 17 | find_path(MIR_INCLUDE_DIR NAMES mir_toolkit/mir_client_library.h | ||
| 18 | PATHS ${PC_MIR_INCLUDE_DIRS}) | ||
| 19 | |||
| 20 | find_library(MIR_LIBRARY NAMES mirclient | ||
| 21 | PATHS ${PC_MIR_LIBRARIES} ${PC_MIR_LIBRARY_DIRS}) | ||
| 22 | |||
| 23 | include (FindPackageHandleStandardArgs) | ||
| 24 | find_package_handle_standard_args (MIR | ||
| 25 | REQUIRED_VARS MIR_LIBRARY MIR_INCLUDE_DIR) | ||
| 26 | |||
| 27 | if (MIR_FOUND) | ||
| 28 | set(MIR_LIBRARIES ${MIR_LIBRARY}) | ||
| 29 | set(MIR_INCLUDE_DIRS ${PC_MIR_INCLUDE_DIRS}) | ||
| 30 | set(MIR_DEFINITIONS -DHAVE_MIR=1) | ||
| 31 | endif() | ||
| 32 | |||
| 33 | mark_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() |
| 23 | endif() | 41 | endif() |
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}) |
| 25 | find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 | 25 | find_library(VAAPI_libva-x11_LIBRARY NAMES va-x11 |
| 26 | PATHS ${PC_VAAPI_libva_LIBDIR}) | 26 | PATHS ${PC_VAAPI_libva_LIBDIR}) |
| 27 | find_library(VAAPI_libva-drm_LIBRARY NAMES va-drm | ||
| 28 | PATHS ${PC_VAAPI_libva_LIBDIR}) | ||
| 27 | 29 | ||
| 28 | if(PC_VAAPI_libva_VERSION) | 30 | if(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 | ||
| 40 | include(FindPackageHandleStandardArgs) | 42 | include(FindPackageHandleStandardArgs) |
| 41 | find_package_handle_standard_args(VAAPI | 43 | find_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 | ||
| 45 | if(VAAPI_FOUND) | 47 | if(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() |
| 63 | endif() | 70 | endif() |
| 64 | 71 | ||
| 65 | mark_as_advanced(VAAPI_INCLUDE_DIR VAAPI_libva_LIBRARY VAAPI_libva-x11_LIBRARY) | 72 | mark_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() |
| 48 | endif() | 48 | endif() |
| 49 | 49 | ||
