Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions build_info/libmoltenvk-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Package: libmoltenvk-dev
Version: @DEB_MOLTEN_VK_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Depends: libmoltenvk, libvulkan-dev
Section: Development
Priority: optional
Homepage: https://github.com/KhronosGroup/MoltenVK
Description: MoltenVK is a Vulkan Portability implementation.
It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API
over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
.
This package provides the development files.
14 changes: 14 additions & 0 deletions build_info/libmoltenvk.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Package: libmoltenvk
Version: @DEB_MOLTEN_VK_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Libraries
Priority: optional
Homepage: https://github.com/KhronosGroup/MoltenVK
Description: MoltenVK is a Vulkan Portability implementation.
It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API
over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
.
This package provides the shared library.
This version of MoltenVK was built with private Metal API enabled.
21 changes: 21 additions & 0 deletions build_info/libspirv-cross-c-shared0-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Package: libspirv-cross-c-shared0-dev
Version: @DEB_SPIRV_CROSS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Development
Depends: libspirv-cross-c-shared0 (= @DEB_SPIRV_CROSS_V@)
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Cross
Description: Convert SPIR-V to other shader languages
SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other
shader languages:
* Convert SPIR-V to readable, usable and efficient GLSL
* Convert SPIR-V to readable, usable and efficient MSL
* Convert SPIR-V to readable, usable and efficient HLSL
* Reflection API to simplify the creation of Vulkan pipeline layouts
* Reflection API to modify and tweak OpDecorations
* Supports "all" of vertex, fragment, tessellation, geometry and
compute shaders
.
This package provides the development files.
20 changes: 20 additions & 0 deletions build_info/libspirv-cross-c-shared0.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Package: libspirv-cross-c-shared0
Version: @DEB_SPIRV_CROSS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Libraries
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Cross
Description: Convert SPIR-V to other shader languages
SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other
shader languages:
* Convert SPIR-V to readable, usable and efficient GLSL
* Convert SPIR-V to readable, usable and efficient MSL
* Convert SPIR-V to readable, usable and efficient HLSL
* Reflection API to simplify the creation of Vulkan pipeline layouts
* Reflection API to modify and tweak OpDecorations
* Supports "all" of vertex, fragment, tessellation, geometry and
compute shaders
.
This package provides the shared library.
18 changes: 18 additions & 0 deletions build_info/libspirv-headers-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Package: libspirv-headers-dev
Version: @DEB_SPIRV_HEADERS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Development
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Headers
Description: Machine-readable files for the SPIR-V Registry
This package includes:
- Header files for various languages
- JSON files describing the grammar for the SPIR-V core instruction
set and the extended instruction sets.
- The XML registry file.
.
For more info, see https://github.com/KhronosGroup/SPIRV-Headers
.
This package provides the development files.
19 changes: 19 additions & 0 deletions build_info/libspirv-tools0-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Package: libspirv-tools0-dev
Version: @DEB_SPIRV_TOOLS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Depends: libspirv-tools0 (= @DEB_SPIRV_TOOLS_V@)
Section: Development
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Tools
Description: API and commands for processing SPIR-V modules (tools)
The project includes an assembler, binary module parser, disassembler,
validator, and optimizer for SPIR-V. Except for the optimizer, all are
based on a common static library. The library contains all of the
implementation details, and is used in the standalone tools whilst
also enabling integration into other code bases directly. The
optimizer implementation resides in its own library, which depends on
the core library.
.
This package provides the development files.
18 changes: 18 additions & 0 deletions build_info/libspirv-tools0.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Package: libspirv-tools0
Version: @DEB_SPIRV_TOOLS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Libraries
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Tools
Description: API and commands for processing SPIR-V modules (tools)
The project includes an assembler, binary module parser, disassembler,
validator, and optimizer for SPIR-V. Except for the optimizer, all are
based on a common static library. The library contains all of the
implementation details, and is used in the standalone tools whilst
also enabling integration into other code bases directly. The
optimizer implementation resides in its own library, which depends on
the core library.
.
This package provides the shared library.
16 changes: 16 additions & 0 deletions build_info/libvulkan-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Package: libvulkan-dev
Version: @DEB_VULKAN_LOADER_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Depends: libvulkan1 (= @DEB_VULKAN_LOADER_V@)
Section: Development
Priority: optional
Homepage: https://github.com/KhronosGroup/Vulkan-Loader
Description: Vulkan loader library -- development files
The Loader implements the main VK library. It handles layer management and
driver management. The loader fully supports multi-gpu operation. As part of
this, it dispatches API calls to the correct driver, and to the correct
layers, based on the GPU object selected by the application.
.
This package provides the development files.
18 changes: 18 additions & 0 deletions build_info/libvulkan-volk-dev.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Package: vulkan-volk
Version: @DEB_VULKAN_VOLK_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Inc.
Depends: libvulkan-dev (= @DEB_VULKAN_VOLK_V@)
Section: Development
Priority: optional
Homepage:
Description: Meta-loader for Vulkan API
Volk allows you to dynamically load entrypoints required to use Vulkan
without linking to vulkan-1.dll or statically linking Vulkan loader.
Additionally, volk simplifies the use of Vulkan extensions by automatically
loading all associated entrypoints. Finally, volk enables loading Vulkan
entrypoints directly from the driver which can increase performance by
skipping loader dispatch overhead.
.
This package provides the development files.
15 changes: 15 additions & 0 deletions build_info/libvulkan1.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Package: libvulkan1
Version: @DEB_VULKAN_LOADER_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Libraries
Priority: optional
Homepage: https://github.com/KhronosGroup/Vulkan-Loader
Description: Vulkan loader library
The Loader implements the main VK library. It handles layer management and
driver management. The loader fully supports multi-gpu operation. As part of
this, it dispatches API calls to the correct driver, and to the correct
layers, based on the GPU object selected by the application.
.
This package includes the loader library.
14 changes: 14 additions & 0 deletions build_info/moltenvk-bin.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Package: moltenvk-bin
Version: @DEB_MOLTEN_VK_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Depends: libmoltenvk
Section: Utilities
Priority: optional
Homepage: https://github.com/KhronosGroup/MoltenVK
Description: MoltenVK is a Vulkan Portability implementation.
It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API
over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
.
This package provides the MoltenVKShaderConverter tool.
20 changes: 20 additions & 0 deletions build_info/spirv-cross-bin.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Package: spirv-cross-bin
Version: @DEB_SPIRV_CROSS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Utilities
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Cross
Description: Convert SPIR-V to other shader languages
SPIRV-Cross is a tool designed for parsing and converting SPIR-V to other
shader languages:
* Convert SPIR-V to readable, usable and efficient GLSL
* Convert SPIR-V to readable, usable and efficient MSL
* Convert SPIR-V to readable, usable and efficient HLSL
* Reflection API to simplify the creation of Vulkan pipeline layouts
* Reflection API to modify and tweak OpDecorations
* Supports "all" of vertex, fragment, tessellation, geometry and
compute shaders
.
This package provides the CLI tool.
18 changes: 18 additions & 0 deletions build_info/spirv-tools-bin.control
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Package: spirv-tools-bin
Version: @DEB_SPIRV_TOOLS_V@
Architecture: @DEB_ARCH@
Maintainer: @DEB_MAINTAINER@
Author: The Khronos Group Inc.
Section: Utilities
Priority: optional
Homepage: https://github.com/KhronosGroup/SPIRV-Tools
Description: API and commands for processing SPIR-V modules (tools)
The project includes an assembler, binary module parser, disassembler,
validator, and optimizer for SPIR-V. Except for the optimizer, all are
based on a common static library. The library contains all of the
implementation details, and is used in the standalone tools whilst
also enabling integration into other code bases directly. The
optimizer implementation resides in its own library, which depends on
the core library.
.
This package provides tools for processing SPIR-V modules.
30 changes: 30 additions & 0 deletions build_patch/moltenvk/cmake.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt
index 38873d90..23a9c686 100644
--- a/Common/CMakeLists.txt
+++ b/Common/CMakeLists.txt
@@ -17,17 +17,23 @@ target_include_directories(MoltenVK_Common PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")

find_library(FOUNDATION_LIBRARY Foundation REQUIRED)
find_library(METAL_LIBRARY Metal REQUIRED)
-find_library(APPKIT_LIBRARY AppKit REQUIRED)
+if (CMAKE_OSX_SYSROOT MATCHES "iPhoneOS|iPhoneSimulator|AppleTVOS|WatchOS|XROS")
+ find_library(UI_LIBRARY UIKit REQUIRED)
+else()
+ find_library(UI_LIBRARY AppKit REQUIRED)
+endif()
find_library(IOKIT_LIBRARY IOKit REQUIRED)
find_library(IOSURFACE_LIBRARY IOSurface REQUIRED)
find_library(QUARTZCORE_LIBRARY QuartzCore REQUIRED)
+find_library(COREGRAPHICS_LIBRARY CoreGraphics REQUIRED)
target_link_libraries(MoltenVK_Common PUBLIC
${FOUNDATION_LIBRARY}
${METAL_LIBRARY}
- ${APPKIT_LIBRARY}
+ ${UI_LIBRARY}
${IOKIT_LIBRARY}
${IOSURFACE_LIBRARY}
${QUARTZCORE_LIBRARY}
+ ${COREGRAPHICS_LIBRARY}
)

################################################################################
14 changes: 14 additions & 0 deletions build_patch/moltenvk/install_headers.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/MoltenVK/CMakeLists.txt b/MoltenVK/CMakeLists.txt
index 9509e4ea..4d3c68dd 100644
--- a/MoltenVK/CMakeLists.txt
+++ b/MoltenVK/CMakeLists.txt
@@ -68,6 +68,9 @@ target_compile_definitions(MoltenVK_static PUBLIC
set_target_properties(MoltenVK PROPERTIES VERSION ${PROJECT_VERSION})
set_target_properties(MoltenVK PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})

+file(GLOB PUBLIC_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/MoltenVK/API/*.h")
+set_target_properties(MoltenVK PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}")
+
################################################################################
# Dependencies
################################################################################
Loading