55 lines
1.8 KiB
CMake
55 lines
1.8 KiB
CMake
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
set(VULKAN_HEADERS_EXTRA_ARGS)
|
|
|
|
ExternalProject_Add(external_vulkan_headers
|
|
URL file://${PACKAGE_DIR}/${VULKAN_HEADERS_FILE}
|
|
URL_HASH ${VULKAN_HEADERS_HASH_TYPE}=${VULKAN_HEADERS_HASH}
|
|
PREFIX ${BUILD_DIR}/vulkan_headers
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/vulkan_headers -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${VULKAN_HEADERS_EXTRA_ARGS}
|
|
INSTALL_DIR ${LIBDIR}/vulkan_headers
|
|
)
|
|
|
|
set(VULKAN_LOADER_EXTRA_ARGS
|
|
-DVULKAN_HEADERS_INSTALL_DIR=${LIBDIR}/vulkan_headers
|
|
)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
# These are used in `cmake/FindWayland.cmake` from `external_vulkan_loader`.
|
|
# NOTE: When upgrading to CMAKE 3.22 we it would be cleaner to use: `PKG_CONFIG_ARGN`,
|
|
# so `pkgconfig` would find wayland.
|
|
set(VULKAN_LOADER_EXTRA_ARGS
|
|
${VULKAN_LOADER_EXTRA_ARGS}
|
|
-DPKG_WAYLAND_INCLUDE_DIRS=${LIBDIR}/wayland/include
|
|
-DPKG_WAYLAND_LIBRARY_DIRS=${LIBDIR}/wayland/lib64
|
|
)
|
|
endif()
|
|
|
|
ExternalProject_Add(external_vulkan_loader
|
|
URL file://${PACKAGE_DIR}/${VULKAN_LOADER_FILE}
|
|
URL_HASH ${VULKAN_LOADER_HASH_TYPE}=${VULKAN_LOADER_HASH}
|
|
PREFIX ${BUILD_DIR}/vulkan_loader
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/vulkan_loader -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${VULKAN_LOADER_EXTRA_ARGS}
|
|
INSTALL_DIR ${LIBDIR}/vulkan_loader
|
|
)
|
|
|
|
add_dependencies(
|
|
external_vulkan_loader
|
|
external_vulkan_headers
|
|
)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
add_dependencies(
|
|
external_vulkan_loader
|
|
external_wayland
|
|
)
|
|
elseif(WIN32)
|
|
if(BUILD_MODE STREQUAL Release)
|
|
ExternalProject_Add_Step(external_vulkan_loader after_install
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/vulkan_loader/ ${HARVEST_TARGET}/vulkan
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/vulkan_headers/ ${HARVEST_TARGET}/vulkan
|
|
DEPENDEES install
|
|
)
|
|
endif()
|
|
endif()
|