Files
RedBear-OS/local/recipes/libs/vulkan-loader/source/scripts/gn/update_deps.sh
T
vasilito ef3f38da8b feat: port Vulkan headers and ICD loader; wire into kwin
KWin does an unconditional find_package(Vulkan REQUIRED), and CMake's
FindVulkan needs BOTH Vulkan_INCLUDE_DIR and Vulkan_LIBRARY. Mesa already
builds the Vulkan drivers (libvulkan_intel/_radeon/_lvp) but an ICD is not
the API surface a consumer links against, so kwin could not configure.

vulkan-headers: header-only, but VulkanHeadersConfig.cmake is GENERATED at
install time rather than shipped in the tarball, and Vulkan-Loader
hard-requires it -- a hand copy of include/ satisfies FindVulkan and then
fails the loader. Run upstream's cmake install instead.

vulkan-loader: one real port. vk_loader_platform.h gates the whole POSIX
arm (DIRECTORY_SYMBOL, the dlopen wrappers, manifest search) on an OS list
that predates Redox, so the build collapsed with 'DIRECTORY_SYMBOL'
undeclared. Redox provides dlopen/dlsym and POSIX paths via relibc, so it
belongs in the same arm as Linux; that header is the only file under
loader/ doing OS detection. WSI backends are left off: Red Bear is
Wayland-only and the compositor talks to Mesa's ICDs directly.

Both shadow the untested recipes/wip/libs/graphics/{vulkan-headers,
libvulkan} via the local-over-WIP mechanism, per the WIP ownership rule
that the shipping version lives in local/recipes/.

Verified: kwin now reports
  -- Found Vulkan: .../sysroot/lib/libvulkan.so (found version 1.4.321)

kwin also gains its missing kf6-knewstuff dep -- its
find_package(KF6 COMPONENTS NewStuff) is REQUIRED, so without the dep the
framework was never staged into kwin's sysroot.
2026-08-03 09:10:57 +03:00

50 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# Copyright (c) 2019-2023 LunarG, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Execute at repo root
cd "$(dirname $0)/../../"
# Use update_deps.py to update source dependencies from /scripts/known_good.json
scripts/update_deps.py --dir="external" --no-build
cat << EOF > .gn
buildconfig = "//build/config/BUILDCONFIG.gn"
secondary_source = "//scripts/gn/secondary/"
script_executable = "python3"
default_args = {
clang_use_chrome_plugins = false
use_custom_libcxx = false
}
EOF
# Use gclient to update toolchain dependencies from /scripts/gn/DEPS (from chromium)
cat << EOF >> .gclient
solutions = [
{ "name" : ".",
"url" : "https://github.com/KhronosGroup/Vulkan-Loader",
"deps_file" : "scripts/gn/DEPS",
"managed" : False,
"custom_deps" : {
},
"custom_vars": {},
},
]
EOF
gclient sync