Andrew Geissler | 87f5cff | 2022-09-30 13:13:31 -0500 | [diff] [blame] | 1 | From 25efd1478b48b5406fdab3b7b9c1f7e0ef95a7ed Mon Sep 17 00:00:00 2001 |
| 2 | From: Pablo Saavedra <psaavedra@igalia.com> |
| 3 | Date: Mon, 27 Jun 2022 16:56:04 -0700 |
| 4 | Subject: [PATCH] Fix include gstreamer path on cross compiler toolchains |
| 5 | https://bugs.webkit.org/show_bug.cgi?id=241483 |
| 6 | |
| 7 | Reviewed by Adrian Perez de Castro. |
| 8 | |
| 9 | Set the include paths for the gstreamer components to the full path |
| 10 | using the find_path(). This function relies in CMAKE_FIND_ROOT_PATH to |
| 11 | find the right place where the includes they are. This fixes possible |
| 12 | warnings/errors on cross toolchains using -Wpoison-system-directories |
| 13 | and -Werror=poison-system-directories. |
| 14 | |
| 15 | * Source/cmake/FindGStreamer.cmake: |
| 16 | |
| 17 | Canonical link: https://commits.webkit.org/251895@main |
| 18 | |
| 19 | Upstream-Status: Backport [2.37.1 https://github.com/WebKit/WebKit/commit/25efd1478b48b5406fdab3b7b9c1f7e0ef95a7ed] |
| 20 | --- |
| 21 | Source/cmake/FindGStreamer.cmake | 14 +++++++++++--- |
| 22 | 1 file changed, 11 insertions(+), 3 deletions(-) |
| 23 | |
| 24 | diff --git a/Source/cmake/FindGStreamer.cmake b/Source/cmake/FindGStreamer.cmake |
| 25 | index 3216f6974b53..b65a11f30871 100644 |
| 26 | --- a/Source/cmake/FindGStreamer.cmake |
| 27 | +++ b/Source/cmake/FindGStreamer.cmake |
| 28 | @@ -75,12 +75,20 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library) |
| 29 | # ${includedir}/gstreamer-1.0 which remains correct. The issue here is that |
| 30 | # we don't rely on the `Cflags`, cmake fails to generate a proper |
| 31 | # `.._INCLUDE_DIRS` variable in this case. So we need to do it here... |
| 32 | + |
| 33 | + # Populate the list initially from the _INCLUDE_DIRS result variable. |
| 34 | + set(${_component_prefix}_INCLUDE_DIRS ${PC_${_component_prefix}_INCLUDE_DIRS}) |
| 35 | + |
| 36 | set(_include_dir "${PC_${_component_prefix}_INCLUDEDIR}") |
| 37 | string(REGEX MATCH "(.*)/gstreamer-1.0" _dummy "${_include_dir}") |
| 38 | + |
| 39 | if ("${CMAKE_MATCH_1}" STREQUAL "") |
| 40 | - set(${_component_prefix}_INCLUDE_DIRS "${_include_dir}/gstreamer-1.0;${PC_${_component_prefix}_INCLUDE_DIRS}") |
| 41 | - else () |
| 42 | - set(${_component_prefix}_INCLUDE_DIRS "${PC_${_component_prefix}_INCLUDE_DIRS}") |
| 43 | + find_path(${_component_prefix}_RESOLVED_INCLUDEDIR NAMES "${_include_dir}/gstreamer-1.0") |
| 44 | + # Only add the resolved path from `_INCLUDEDIR` if found. |
| 45 | + if (${_component_prefix}_RESOLVED_INCLUDEDIR) |
| 46 | + list(APPEND ${_component_prefix}_INCLUDE_DIRS |
| 47 | + "${${_component_prefix}_RESOLVED_INCLUDEDIR}") |
| 48 | + endif () |
| 49 | endif () |
| 50 | |
| 51 | find_library(${_component_prefix}_LIBRARIES |