aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/vulkan
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/vulkan
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/vulkan')
-rw-r--r--vcpkg/ports/vulkan/CMakeLists.txt12
-rw-r--r--vcpkg/ports/vulkan/portfile.cmake31
-rw-r--r--vcpkg/ports/vulkan/usage5
-rw-r--r--vcpkg/ports/vulkan/vcpkg.json21
-rw-r--r--vcpkg/ports/vulkan/vulkan-result.cmake.in5
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@")