diff options
author | Campbell Barton <campbell@blender.org> | 2022-09-20 05:53:06 +0300 |
---|---|---|
committer | Campbell Barton <campbell@blender.org> | 2022-09-20 05:53:06 +0300 |
commit | 09308c4b6a2b5fa7d5d74e55f484bfd1ca18c273 (patch) | |
tree | 85f7047cebdb29f2d1f9529a84efa5831669c238 /build_files | |
parent | 9c35f103c0d7eaa1ddd0b0c54be9c681a7c39dc3 (diff) |
CMake: fail to build with unsupported versions of wayland-scanner
When WITH_GHOST_WAYLAND_DYNLOAD is enabled.
Diffstat (limited to 'build_files')
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index aceddf7295b..d9f06811984 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -770,6 +770,39 @@ if(WITH_GHOST_WAYLAND) endif() pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner) + + # When using dynamic loading, headers generated + # from older versions of `wayland-scanner` aren't compatible. + if(WITH_GHOST_WAYLAND_DYNLOAD) + execute_process( + COMMAND ${WAYLAND_SCANNER} --version + # The version is written to the `stderr`. + ERROR_VARIABLE _wayland_scanner_out + ERROR_STRIP_TRAILING_WHITESPACE + ) + if(NOT "${_wayland_scanner_out}" STREQUAL "") + string( + REGEX REPLACE + "^wayland-scanner[ \t]+([0-9]+)\.([0-9]+).*" + "\\1.\\2" + _wayland_scanner_ver + "${_wayland_scanner_out}" + ) + if("${_wayland_scanner_ver}" VERSION_LESS "1.20") + message( + FATAL_ERROR + "Found ${WAYLAND_SCANNER} version \"${_wayland_scanner_ver}\", " + "the minimum version is 1.20!" + ) + endif() + unset(_wayland_scanner_ver) + else() + message(WARNING "Unable to access the version from ${WAYLAND_SCANNER}, continuing.") + endif() + unset(_wayland_scanner_out) + endif() + # End wayland-scanner version check. + endif() endif() |