mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 10:21:07 +08:00
Vulkan port (#4664)
* [Vulkan] Add a vulkan port based on the cuda port * Add VULKAN_SDK env variable to whitelist * * Added some additional diagnostic information * Corrected if NOT exists statement
This commit is contained in:
parent
3b40d323e9
commit
f1eb3aa4b9
3
ports/vulkan/CONTROL
Normal file
3
ports/vulkan/CONTROL
Normal file
@ -0,0 +1,3 @@
|
||||
Source: vulkan
|
||||
Version: 1.1.82.1
|
||||
Description: A graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs on a wide variety of devices.
|
37
ports/vulkan/portfile.cmake
Normal file
37
ports/vulkan/portfile.cmake
Normal file
@ -0,0 +1,37 @@
|
||||
# Due to the complexity involved, this package doesn't install the Vulkan SDK.
|
||||
# It instead verifies that Vulkan is installed.
|
||||
# Other packages can depend on this package to declare a dependency on Vulkan.
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
message(STATUS "Querying VULKAN_SDK Enviroment variable")
|
||||
file(TO_CMAKE_PATH "$ENV{VULKAN_SDK}" VULKAN_DIR)
|
||||
set(VULKAN_INCLUDE "${VULKAN_DIR}/Include/vulkan/")
|
||||
set(VULKAN_ERROR_DL "Before continuing, please download and install Vulkan from:\n https://vulkan.lunarg.com/sdk/home\n")
|
||||
|
||||
if(NOT DEFINED ENV{VULKAN_SDK})
|
||||
message(FATAL_ERROR "Could not find Vulkan SDK. ${VULKAN_ERROR_DL}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Searching " ${VULKAN_INCLUDE} " for vulkan.h")
|
||||
if(NOT EXISTS "${VULKAN_INCLUDE}/vulkan.h")
|
||||
message(FATAL_ERROR "Could not find vulkan.h. ${VULKAN_ERROR_DL}")
|
||||
endif()
|
||||
message(STATUS "Found vulkan.h")
|
||||
|
||||
# Check if the user left the version in the installation directory e.g. c:/vulkanSDK/1.1.82.1/
|
||||
if(VULKAN_DIR MATCHES "(([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+))")
|
||||
set(VULKAN_VERSION "${CMAKE_MATCH_1}")
|
||||
set(VULKAN_MAJOR "${CMAKE_MATCH_2}")
|
||||
set(VULKAN_MINOR "${CMAKE_MATCH_3}")
|
||||
set(VULKAN_PATCH "${CMAKE_MATCH_4}")
|
||||
message(STATUS "Found Vulkan SDK version ${VULKAN_VERSION}")
|
||||
|
||||
set(VULKAN_REQUIRED_VERSION "1.1.82.1")
|
||||
if (VULKAN_MAJOR LESS 1 OR VULKAN_MINOR LESS 1 OR VULKAN_PATCH LESS 82)
|
||||
message(FATAL_ERROR "Vulkan ${VULKAN_VERSION} but ${VULKAN_REQUIRED_VERSION} is required. Please download and install a more recent version from:"
|
||||
"\n https://vulkan.lunarg.com/sdk/home\n")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
configure_file(${VULKAN_DIR}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/vulkan/copyright COPYONLY)
|
||||
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
@ -168,6 +168,8 @@ namespace vcpkg::System
|
||||
L"CUDA_PATH",
|
||||
// Environmental variable generated automatically by CUDA after installation
|
||||
L"NVCUDASAMPLES_ROOT",
|
||||
// Enables find_package(Vulkan) in CMake. Environmental variable generated by Vulkan SDK installer
|
||||
L"VULKAN_SDK",
|
||||
};
|
||||
|
||||
std::wstring env_cstr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user