diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/vulkan | |
Diffstat (limited to 'vcpkg/ports/vulkan')
| -rw-r--r-- | vcpkg/ports/vulkan/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | vcpkg/ports/vulkan/portfile.cmake | 31 | ||||
| -rw-r--r-- | vcpkg/ports/vulkan/usage | 5 | ||||
| -rw-r--r-- | vcpkg/ports/vulkan/vcpkg.json | 21 | ||||
| -rw-r--r-- | vcpkg/ports/vulkan/vulkan-result.cmake.in | 5 |
5 files changed, 74 insertions, 0 deletions
diff --git a/vcpkg/ports/vulkan/CMakeLists.txt b/vcpkg/ports/vulkan/CMakeLists.txt new file mode 100644 index 0000000..3370eb1 --- /dev/null +++ b/vcpkg/ports/vulkan/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.25) + +project(FIND_VULKAN LANGUAGES C) + +find_package(Vulkan ${VCPKG_VULKAN_VERSION} ${VCPKG_VULKAN_COMPONENTS}) +if(NOT Vulkan_FOUND) + set(CMAKE_FIND_DEBUG_MODE ON) + find_package(Vulkan ${VCPKG_VULKAN_VERSION} ${VCPKG_VULKAN_COMPONENTS}) +endif() + +set(OUTFILE "${CMAKE_CURRENT_BINARY_DIR}/vulkan-result.cmake" CACHE FILEPATH "") +configure_file("vulkan-result.cmake.in" "${OUTFILE}" @ONLY ESCAPE_QUOTES) diff --git a/vcpkg/ports/vulkan/portfile.cmake b/vcpkg/ports/vulkan/portfile.cmake new file mode 100644 index 0000000..cd19811 --- /dev/null +++ b/vcpkg/ports/vulkan/portfile.cmake @@ -0,0 +1,31 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +set(vulkan_result_file "${CURRENT_BUILDTREES_DIR}/vulkan-${TARGET_TRIPLET}.cmake.log") +vcpkg_cmake_configure( + SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" + OPTIONS_RELEASE + "-DOUTFILE=${vulkan_result_file}" +) + +include("${vulkan_result_file}") +if(DETECTED_Vulkan_FOUND) + message(STATUS "Found Vulkan ${DETECTED_Vulkan_VERSION} (${DETECTED_Vulkan_LIBRARIES})") +else() + set(message "Vulkan wasn't found.") + if(VCPKG_TARGET_IS_ANDROID AND DETECTED_ANDROID_NATIVE_API_LEVEL AND DETECTED_ANDROID_NATIVE_API_LEVEL LESS "24") + string(APPEND message " Vulkan support from the Android NDK requires API level 24 (found: ${DETECTED_ANDROID_NATIVE_API_LEVEL})") + endif() + message(FATAL_ERROR "${message}") +endif() + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" + "${CMAKE_CURRENT_LIST_DIR}/vulkan-result.cmake.in" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/detect-vulkan" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" [[ +This is a stub package. Copyright and license information +is provided with Vulkan headers and loader. +For Android, the loader is provided by the NDK. +]]) diff --git a/vcpkg/ports/vulkan/usage b/vcpkg/ports/vulkan/usage new file mode 100644 index 0000000..e742892 --- /dev/null +++ b/vcpkg/ports/vulkan/usage @@ -0,0 +1,5 @@ +vulkan is compatible with built-in CMake targets: + + # https://cmake.org/cmake/help/latest/module/FindVulkan.html + find_package(Vulkan REQUIRED) + target_link_libraries(main PRIVATE Vulkan::Vulkan) diff --git a/vcpkg/ports/vulkan/vcpkg.json b/vcpkg/ports/vulkan/vcpkg.json new file mode 100644 index 0000000..cff6df6 --- /dev/null +++ b/vcpkg/ports/vulkan/vcpkg.json @@ -0,0 +1,21 @@ +{ + "name": "vulkan", + "version-date": "2023-12-17", + "description": [ + "A stub package that ensures that Vulkan headers and a loader are available.", + "On Android, the NDK provides a loader at API level 24 or higher." + ], + "license": null, + "supports": "!uwp & !xbox", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + "vulkan-headers", + { + "name": "vulkan-loader", + "platform": "!android" + } + ] +} diff --git a/vcpkg/ports/vulkan/vulkan-result.cmake.in b/vcpkg/ports/vulkan/vulkan-result.cmake.in new file mode 100644 index 0000000..877df8d --- /dev/null +++ b/vcpkg/ports/vulkan/vulkan-result.cmake.in @@ -0,0 +1,5 @@ +set(DETECTED_Vulkan_FOUND "@Vulkan_FOUND@") +set(DETECTED_Vulkan_VERSION "@Vulkan_VERSION@") +set(DETECTED_Vulkan_INCLUDE_DIRS "@Vulkan_INCLUDE_DIRS@") +set(DETECTED_Vulkan_LIBRARIES "@Vulkan_LIBRARIES@") +set(DETECTED_ANDROID_NATIVE_API_LEVEL "@ANDROID_NATIVE_API_LEVEL@") |