Add Vulkan SDK ports

https://www.khronos.org/vulkan/

PR:		222175
Tested by:	Johannes Lundberg <johalun0@gmail.com>
Submitted by:	Greg V <greg@unrelenting.technology>
This commit is contained in:
Jan Beich 2018-09-03 17:43:50 +00:00
parent a94a04921a
commit fc090a966f
37 changed files with 585 additions and 3 deletions

View file

@ -801,6 +801,7 @@
SUBDIR += global
SUBDIR += glog
SUBDIR += glrparser
SUBDIR += glslang
SUBDIR += glui
SUBDIR += gmake
SUBDIR += gnatcoll
@ -6163,6 +6164,7 @@
SUBDIR += spdlog
SUBDIR += spice-protocol
SUBDIR += spin
SUBDIR += spirv-tools
SUBDIR += splint
SUBDIR += srecord
SUBDIR += st
@ -6286,6 +6288,9 @@
SUBDIR += violet
SUBDIR += visualparadigm
SUBDIR += vstr
SUBDIR += vulkan-headers
SUBDIR += vulkan-tools
SUBDIR += vulkan-validation-layers
SUBDIR += vxlog
SUBDIR += wand-libconfig
SUBDIR += wandio

23
devel/glslang/Makefile Normal file
View file

@ -0,0 +1,23 @@
# $FreeBSD$
PORTNAME= glslang
DISTVERSION= 6.2.2596-248
DISTVERSIONSUFFIX= -ge0bc65b
CATEGORIES= devel graphics
MAINTAINER= greg@unrelenting.technology
COMMENT= OpenGL and OpenGL ES shader front end and validator
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKDIR}/LICENSE
USES= cmake:outsource compiler:c++11-lib
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
post-extract:
${SED} '/^$$/,$$d' ${WRKSRC}/${PORTNAME}/Include/Types.h \
>${WRKDIR}/LICENSE
.include <bsd.port.mk>

3
devel/glslang/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533666570
SHA256 (KhronosGroup-glslang-6.2.2596-248-ge0bc65b_GH0.tar.gz) = 497a18bfe7e102cda61377ca4fd7dbd84478a89b80e4d53420cf94c9a380f2f0
SIZE (KhronosGroup-glslang-6.2.2596-248-ge0bc65b_GH0.tar.gz) = 2353165

5
devel/glslang/pkg-descr Normal file
View file

@ -0,0 +1,5 @@
Glslang is the official reference compiler front end for the OpenGL ES and
OpenGL shading languages. It implements a strict interpretation of the
specifications for these languages.
WWW: https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/

54
devel/glslang/pkg-plist Normal file
View file

@ -0,0 +1,54 @@
bin/glslangValidator
bin/spirv-remap
include/SPIRV/GLSL.ext.AMD.h
include/SPIRV/GLSL.ext.EXT.h
include/SPIRV/GLSL.ext.KHR.h
include/SPIRV/GLSL.ext.NV.h
include/SPIRV/GLSL.std.450.h
include/SPIRV/GlslangToSpv.h
include/SPIRV/Logger.h
include/SPIRV/SPVRemapper.h
include/SPIRV/SpvBuilder.h
include/SPIRV/bitutils.h
include/SPIRV/disassemble.h
include/SPIRV/doc.h
include/SPIRV/hex_float.h
include/SPIRV/spirv.hpp
include/SPIRV/spvIR.h
include/glslang/Include/BaseTypes.h
include/glslang/Include/Common.h
include/glslang/Include/ConstantUnion.h
include/glslang/Include/InfoSink.h
include/glslang/Include/InitializeGlobals.h
include/glslang/Include/PoolAlloc.h
include/glslang/Include/ResourceLimits.h
include/glslang/Include/ShHandle.h
include/glslang/Include/Types.h
include/glslang/Include/arrays.h
include/glslang/Include/intermediate.h
include/glslang/Include/revision.h
include/glslang/MachineIndependent/Initialize.h
include/glslang/MachineIndependent/LiveTraverser.h
include/glslang/MachineIndependent/ParseHelper.h
include/glslang/MachineIndependent/RemoveTree.h
include/glslang/MachineIndependent/Scan.h
include/glslang/MachineIndependent/ScanContext.h
include/glslang/MachineIndependent/SymbolTable.h
include/glslang/MachineIndependent/Versions.h
include/glslang/MachineIndependent/attribute.h
include/glslang/MachineIndependent/gl_types.h
include/glslang/MachineIndependent/glslang_tab.cpp.h
include/glslang/MachineIndependent/iomapper.h
include/glslang/MachineIndependent/localintermediate.h
include/glslang/MachineIndependent/parseVersions.h
include/glslang/MachineIndependent/preprocessor/PpContext.h
include/glslang/MachineIndependent/preprocessor/PpTokens.h
include/glslang/MachineIndependent/propagateNoContraction.h
include/glslang/MachineIndependent/reflection.h
include/glslang/Public/ShaderLang.h
lib/libHLSL.a
lib/libOGLCompiler.a
lib/libOSDependent.a
lib/libSPIRV.a
lib/libSPVRemapper.a
lib/libglslang.a

View file

@ -0,0 +1,25 @@
# $FreeBSD$
PORTNAME= spirv-tools
DISTVERSIONPREFIX= v
DISTVERSION= 2018.4
CATEGORIES= devel graphics
MAINTAINER= greg@unrelenting.technology
COMMENT= Tools for processing SPIR-V intermediate shader language modules
LICENSE= APACHE20
USES= cmake:outsource compiler:c++11-lib python:build shebangfix
USE_LDCONFIG= yes
SHEBANG_FILES= tools/lesspipe/spirv-lesspipe.sh
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
GH_PROJECT= SPIRV-Tools
GH_TUPLE= KhronosGroup:SPIRV-Headers:ff684ff:headers/external/spirv-headers
CMAKE_ON= SPIRV_SKIP_TESTS
CMAKE_OFF= SPIRV_WERROR
.include <bsd.port.mk>

View file

@ -0,0 +1,5 @@
TIMESTAMP = 1533666224
SHA256 (KhronosGroup-SPIRV-Tools-v2018.4_GH0.tar.gz) = e09749d3b9d767cf1cf62ba3cf7d7f992f19681477c434fea214227f3665d8d1
SIZE (KhronosGroup-SPIRV-Tools-v2018.4_GH0.tar.gz) = 1327904
SHA256 (KhronosGroup-SPIRV-Headers-ff684ff_GH0.tar.gz) = dbeb5b65b290519b026f3eb280107929901d671a7f29ae536885bb72e6c38ebd
SIZE (KhronosGroup-SPIRV-Headers-ff684ff_GH0.tar.gz) = 280884

View file

@ -0,0 +1,11 @@
The SPIR-V Tools project provides an API and commands for processing SPIR-V
modules.
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.
WWW: https://github.com/KhronosGroup/SPIRV-Tools

View file

@ -0,0 +1,18 @@
bin/spirv-as
bin/spirv-cfg
bin/spirv-dis
bin/spirv-lesspipe.sh
bin/spirv-link
bin/spirv-opt
bin/spirv-stats
bin/spirv-val
include/spirv-tools/libspirv.h
include/spirv-tools/libspirv.hpp
include/spirv-tools/linker.hpp
include/spirv-tools/optimizer.hpp
lib/libSPIRV-Tools-link.a
lib/libSPIRV-Tools-opt.a
lib/libSPIRV-Tools-shared.so
lib/libSPIRV-Tools.a
libdata/pkgconfig/SPIRV-Tools-shared.pc
libdata/pkgconfig/SPIRV-Tools.pc

View file

@ -0,0 +1,20 @@
# $FreeBSD$
PORTNAME= vulkan-headers
DISTVERSIONPREFIX=sdk-
DISTVERSION= 1.1.82.0
CATEGORIES= devel graphics
MAINTAINER= greg@unrelenting.technology
COMMENT= Headers for the Vulkan graphics API
LICENSE= APACHE20
USES= cmake:outsource
STRIP= # nothing to strip
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
GH_PROJECT= Vulkan-Headers
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533661644
SHA256 (KhronosGroup-Vulkan-Headers-sdk-1.1.82.0_GH0.tar.gz) = df73da07d547cfbe88a797802401ea8225e4844e13d4fde52a7cb6e00e5179e5
SIZE (KhronosGroup-Vulkan-Headers-sdk-1.1.82.0_GH0.tar.gz) = 472646

View file

@ -0,0 +1,5 @@
Vulkan is a low-level cross-platform 3D graphics and compute API.
This port provides the development headers for Vulkan applications.
WWW: https://github.com/KhronosGroup/Vulkan-Headers

View file

@ -0,0 +1,23 @@
include/vulkan/vk_icd.h
include/vulkan/vk_layer.h
include/vulkan/vk_platform.h
include/vulkan/vk_sdk_platform.h
include/vulkan/vulkan.h
include/vulkan/vulkan.hpp
include/vulkan/vulkan_android.h
include/vulkan/vulkan_core.h
include/vulkan/vulkan_ios.h
include/vulkan/vulkan_macos.h
include/vulkan/vulkan_mir.h
include/vulkan/vulkan_vi.h
include/vulkan/vulkan_wayland.h
include/vulkan/vulkan_win32.h
include/vulkan/vulkan_xcb.h
include/vulkan/vulkan_xlib.h
include/vulkan/vulkan_xlib_xrandr.h
share/vulkan/registry/cgenerator.py
share/vulkan/registry/generator.py
share/vulkan/registry/genvk.py
share/vulkan/registry/reg.py
share/vulkan/registry/validusage.json
share/vulkan/registry/vk.xml

View file

@ -0,0 +1,30 @@
# $FreeBSD$
PORTNAME= vulkan-tools
DISTVERSIONPREFIX= sdk-
DISTVERSION= 1.1.82.0
CATEGORIES= devel graphics
MAINTAINER= greg@unrelenting.technology
COMMENT= Tools and demos for the Vulkan graphics API
LICENSE= APACHE20
BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \
glslangValidator:devel/glslang
LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader \
libX11-xcb.so:x11/libX11 \
libXrandr.so:x11/libXrandr \
libxcb.so:x11/libxcb
USES= cmake:outsource compiler:c++11-lib pkgconfig python:3.4+,build
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
GH_PROJECT= Vulkan-Tools
CMAKE_OFF= BUILD_TESTS BUILD_ICD \
BUILD_WSI_WAYLAND_SUPPORT BUILD_WSI_MIR_SUPPORT
CMAKE_ARGS= -DGLSLANG_INSTALL_DIR=${LOCALBASE}
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533667375
SHA256 (KhronosGroup-Vulkan-Tools-sdk-1.1.82.0_GH0.tar.gz) = 22e5e5dfd47535e1664458ee59706abcaace96575d1a3d7fa9ae779a9e83b89c
SIZE (KhronosGroup-Vulkan-Tools-sdk-1.1.82.0_GH0.tar.gz) = 342057

View file

@ -0,0 +1,33 @@
--- cube/CMakeLists.txt.orig 2018-08-07 18:44:03 UTC
+++ cube/CMakeLists.txt
@@ -48,7 +48,7 @@ else()
find_program(GLSLANG_VALIDATOR NAMES ${GLSLANG_VALIDATOR_NAME} HINTS "${PROJECT_SOURCE_DIR}/glslang/bin")
endif()
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+if(UNIX AND NOT APPLE)
include(FindPkgConfig)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
@@ -58,10 +58,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(BUILD_WSI_XCB_SUPPORT)
find_package(XCB REQUIRED)
+ include_directories(SYSTEM ${XCB_INCLUDE_DIR})
endif()
if(BUILD_WSI_XLIB_SUPPORT)
find_package(X11 REQUIRED)
+ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH})
endif()
if(BUILD_WSI_WAYLAND_SUPPORT)
@@ -87,7 +89,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+elseif(UNIX AND NOT APPLE)
if(NOT CUBE_WSI_SELECTION)
set(CUBE_WSI_SELECTION "XCB")
endif()

View file

@ -0,0 +1,11 @@
--- cube/cube.cpp.orig 2018-08-07 18:51:55 UTC
+++ cube/cube.cpp
@@ -2922,7 +2922,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPre
return (int)msg.wParam;
}
-#elif __linux__
+#elif __unix__
int main(int argc, char **argv) {
Demo demo;

View file

@ -0,0 +1,24 @@
--- vulkaninfo/CMakeLists.txt.orig 2018-08-07 18:45:41 UTC
+++ vulkaninfo/CMakeLists.txt
@@ -28,7 +28,7 @@ else()
add_executable(vulkaninfo vulkaninfo.c)
endif()
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+if(UNIX AND NOT APPLE)
include(FindPkgConfig)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
@@ -36,10 +36,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(BUILD_WSI_XCB_SUPPORT)
find_package(XCB REQUIRED)
+ include_directories(SYSTEM ${XCB_INCLUDE_DIR})
endif()
if(BUILD_WSI_XLIB_SUPPORT)
find_package(X11 REQUIRED)
+ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH})
endif()
if(VULKANINFO_WSI_SELECTION STREQUAL "XCB")

View file

@ -0,0 +1,5 @@
Vulkan is a low-level cross-platform 3D graphics and compute API.
This port provides various tools and demos for Vulkan, e.g. vulkaninfo.
WWW: https://github.com/KhronosGroup/Vulkan-Tools

View file

@ -0,0 +1,3 @@
bin/cube
bin/cubepp
bin/vulkaninfo

View file

@ -0,0 +1,30 @@
# $FreeBSD$
PORTNAME= vulkan-validation-layers
DISTVERSIONPREFIX= sdk-
DISTVERSION= 1.1.82.0
CATEGORIES= devel graphics
MAINTAINER= greg@unrelenting.technology
COMMENT= Validation layers for the Vulkan graphics API
LICENSE= APACHE20
# NOTE: keep spirv-tools and glslang up to date when updating Vulkan
BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \
${LOCALBASE}/include/spirv-tools/libspirv.h:devel/spirv-tools \
${LOCALBASE}/include/SPIRV/spirv.hpp:devel/glslang
USES= cmake:outsource compiler:c++11-lib pkgconfig python:3.4+,build
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
GH_PROJECT= Vulkan-ValidationLayers
# WSI_* in here are leftover from when all of Vulkan SDK was in one repo
CMAKE_OFF= BUILD_TESTS BUILD_WSI_XCB_SUPPORT BUILD_WSI_XLIB_SUPPORT \
BUILD_WSI_WAYLAND_SUPPORT BUILD_WSI_MIR_SUPPORT
CMAKE_ARGS= -DGLSLANG_INSTALL_DIR=${LOCALBASE}
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533665599
SHA256 (KhronosGroup-Vulkan-ValidationLayers-sdk-1.1.82.0_GH0.tar.gz) = 6d83d1f7085bcfe67a791fce0bfb500dfb5d4833f062db1fc272bdc86e87eded
SIZE (KhronosGroup-Vulkan-ValidationLayers-sdk-1.1.82.0_GH0.tar.gz) = 962154

View file

@ -0,0 +1,23 @@
--- CMakeLists.txt.orig 2018-07-30 17:53:08 UTC
+++ CMakeLists.txt
@@ -63,9 +63,9 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# "Helper" targets that don't have interesting source code should set their FOLDER property to this
set(LAYERS_HELPER_FOLDER "Helper Targets")
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+if(UNIX)
set(
- FALLBACK_CONFIG_DIRS "/etc/xdg"
+ FALLBACK_CONFIG_DIRS "${CMAKE_INSTALL_PREFIX}/etc/xdg:/etc/xdg"
CACHE
STRING
"Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant."
@@ -78,7 +78,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_
)
endif()
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+if(UNIX AND NOT APPLE)
include(FindPkgConfig)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)

View file

@ -0,0 +1,20 @@
--- layers/CMakeLists.txt.orig 2018-07-30 17:53:08 UTC
+++ layers/CMakeLists.txt
@@ -23,7 +23,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
set(DisplayServer Win32)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR -DVK_USE_PLATFORM_ANDROID_KHX)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+elseif(UNIX AND NOT APPLE)
if(BUILD_WSI_XCB_SUPPORT)
add_definitions(-DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XCB_KHX)
endif()
@@ -131,7 +131,7 @@ if(WIN32)
add_custom_target(vk_validation_error_messages ALL COMMAND copy ${src_val_msgs} ${dst_val_msgs} VERBATIM)
set_target_properties(vk_validation_error_messages PROPERTIES FOLDER ${LAYERS_HELPER_FOLDER})
endif()
-elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ elseif(UNIX AND NOT APPLE)
# extra setup for out-of-tree builds
if(NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
foreach(config_file ${LAYER_JSON_FILES})

View file

@ -0,0 +1,11 @@
--- layers/vk_loader_platform.h.orig 2018-08-07 18:19:43 UTC
+++ layers/vk_loader_platform.h
@@ -31,7 +31,7 @@
#include "vulkan/vk_platform.h"
#include "vulkan/vk_sdk_platform.h"
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__unix__)
/* Linux-specific common code: */
// Headers:

View file

@ -0,0 +1,6 @@
Vulkan is a low-level cross-platform 3D graphics and compute API.
This port provides the official validation layers for Vulkan applications,
which are useful for development and debugging.
WWW: https://github.com/KhronosGroup/Vulkan-ValidationLayers

View file

@ -0,0 +1,35 @@
include/hash_util.h
include/hash_vk_types.h
include/vk_dispatch_table_helper.h
include/vk_enum_string_helper.h
include/vk_extension_helper.h
include/vk_format_utils.cpp
include/vk_format_utils.h
include/vk_layer_config.cpp
include/vk_layer_config.h
include/vk_layer_data.h
include/vk_layer_dispatch_table.h
include/vk_layer_extension_utils.cpp
include/vk_layer_extension_utils.h
include/vk_layer_logging.h
include/vk_layer_utils.cpp
include/vk_layer_utils.h
include/vk_loader_layer.h
include/vk_loader_platform.h
include/vk_object_types.h
include/vk_safe_struct.cpp
include/vk_safe_struct.h
include/vk_typemap_helper.h
include/vk_validation_error_messages.h
lib/libVkLayer_core_validation.so
lib/libVkLayer_object_tracker.so
lib/libVkLayer_parameter_validation.so
lib/libVkLayer_threading.so
lib/libVkLayer_unique_objects.so
lib/libVkLayer_utils.a
share/vulkan/explicit_layer.d/VkLayer_core_validation.json
share/vulkan/explicit_layer.d/VkLayer_object_tracker.json
share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json
share/vulkan/explicit_layer.d/VkLayer_standard_validation.json
share/vulkan/explicit_layer.d/VkLayer_threading.json
share/vulkan/explicit_layer.d/VkLayer_unique_objects.json

View file

@ -47,9 +47,6 @@ LDFLAGS+= -Wl,--as-needed # GLU
OPTIONS_DEFINE= ALSA EVDEV GDB LLVM PULSEAUDIO VULKAN
OPTIONS_DEFAULT=ALSA LLVM VULKAN
.if !exists(${.CURDIR:H:H}/graphics/vulkan-loader)
OPTIONS_EXCLUDE=VULKAN # XXX ports/222175
.endif
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins

View file

@ -1124,6 +1124,7 @@
SUBDIR += visprint
SUBDIR += volpack
SUBDIR += vp
SUBDIR += vulkan-loader
SUBDIR += waffle
SUBDIR += waifu2x-converter-cpp
SUBDIR += wayland

View file

@ -0,0 +1,47 @@
# $FreeBSD$
PORTNAME= vulkan-loader
DISTVERSIONPREFIX=sdk-
DISTVERSION= 1.1.82.0
CATEGORIES= graphics devel
MAINTAINER= greg@unrelenting.technology
COMMENT= Driver loader for the Vulkan graphics API
LICENSE= APACHE20
BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers
USES= cmake:outsource compiler:c++11-lib pkgconfig python:3.4+,build
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= KhronosGroup
GH_PROJECT= Vulkan-Loader
CMAKE_ON= CMAKE_SKIP_RPATH
CMAKE_OFF= BUILD_TESTS BUILD_WSI_MIR_SUPPORT
OPTIONS_DEFINE= XLIB XCB WAYLAND
OPTIONS_DEFAULT=XLIB XCB
XLIB_DESC= Build Xlib WSI (Window System Integration) support
XCB_DESC= Build XCB WSI (Window System Integration) support
WAYLAND_DESC= Build Wayland WSI (Window System Integration) support
XLIB_CMAKE_BOOL= BUILD_WSI_XLIB_SUPPORT
XLIB_LIB_DEPENDS= libX11.so:x11/libX11 \
libXrandr.so:x11/libXrandr
XCB_CMAKE_BOOL= BUILD_WSI_XCB_SUPPORT
XCB_LIB_DEPENDS= libX11-xcb.so:x11/libX11 \
libxcb.so:x11/libxcb
WAYLAND_CMAKE_BOOL= BUILD_WSI_WAYLAND_SUPPORT
WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/mesa-libs
post-patch:
# Non-x86 targets use C code, so don't abort without GNU as (e.g., on aarch64)
.if !exists(/usr/bin/as) && ${MACHINE_ARCH} != i386 && ${MACHINE_ARCH} != amd64
@${REINPLACE_CMD} 's/-ATT//' ${WRKSRC}/loader/CMakeLists.txt
.endif
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1533664679
SHA256 (KhronosGroup-Vulkan-Loader-sdk-1.1.82.0_GH0.tar.gz) = 86cd3e93d99cbfbb8550e7f2137cacfdaf9aa6611b814e054b2156b4b4775b0c
SIZE (KhronosGroup-Vulkan-Loader-sdk-1.1.82.0_GH0.tar.gz) = 1341774

View file

@ -0,0 +1,36 @@
--- CMakeLists.txt.orig 2018-08-03 22:10:42 UTC
+++ CMakeLists.txt
@@ -57,9 +57,9 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# "Helper" targets that don't have interesting source code should set their FOLDER property to this
set(LOADER_HELPER_FOLDER "Helper Targets")
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+if(UNIX AND NOT APPLE)
set(
- FALLBACK_CONFIG_DIRS "/etc/xdg"
+ FALLBACK_CONFIG_DIRS "${CMAKE_INSTALL_PREFIX}/etc/xdg:/etc/xdg"
CACHE
STRING
"Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant."
@@ -72,7 +72,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_
)
endif()
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+if(UNIX AND NOT APPLE)
include(FindPkgConfig)
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
@@ -81,10 +81,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(BUILD_WSI_XCB_SUPPORT)
find_package(XCB REQUIRED)
+ include_directories(SYSTEM ${XCB_INCLUDE_DIR})
endif()
if(BUILD_WSI_XLIB_SUPPORT)
find_package(X11 REQUIRED)
+ include_directories(SYSTEM ${X11_Xlib_INCLUDE_PATH})
endif()
if(BUILD_WSI_WAYLAND_SUPPORT)

View file

@ -0,0 +1,20 @@
--- loader/CMakeLists.txt.orig 2018-08-03 22:10:42 UTC
+++ loader/CMakeLists.txt
@@ -40,7 +40,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
endif()
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+elseif(UNIX AND NOT APPLE)
if(BUILD_WSI_XCB_SUPPORT)
add_definitions(-DVK_USE_PLATFORM_XCB_KHR)
endif()
@@ -223,7 +223,7 @@ else()
add_dependencies(vulkan generate_helper_files loader_gen_files loader_asm_gen_files)
target_compile_definitions(vulkan PUBLIC -DLOADER_DYNAMIC_LIB)
set_target_properties(vulkan PROPERTIES SOVERSION "1" VERSION "${VulkanHeaders_VERSION_MAJOR}.${VulkanHeaders_VERSION_MINOR}.${VulkanHeaders_VERSION_PATCH}")
- target_link_libraries(vulkan -ldl -lpthread -lm)
+ target_link_libraries(vulkan ${CMAKE_DL_LIBS} -lpthread -lm)
if(APPLE)
find_library(COREFOUNDATION_LIBRARY NAMES CoreFoundation)

View file

@ -0,0 +1,20 @@
--- loader/loader.c.orig 2018-08-03 22:10:42 UTC
+++ loader/loader.c
@@ -215,7 +215,7 @@ void *loader_device_heap_realloc(const struct loader_d
}
// Environment variables
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__unix__)
static inline char *loader_getenv(const char *name, const struct loader_instance *inst) {
// No allocation of memory necessary for Linux, but we should at least touch
@@ -225,7 +225,7 @@ static inline char *loader_getenv(const char *name, co
}
static inline char *loader_secure_getenv(const char *name, const struct loader_instance *inst) {
-#if defined(__APPLE__)
+#if !defined(__linux__)
// Apple does not appear to have a secure getenv implementation.
// The main difference between secure getenv and getenv is that secure getenv
// returns NULL if the process is being run with elevated privileges by a normal user.

View file

@ -0,0 +1,11 @@
--- loader/vk_loader_platform.h.orig 2018-08-03 22:10:42 UTC
+++ loader/vk_loader_platform.h
@@ -31,7 +31,7 @@
#include "vulkan/vk_platform.h"
#include "vulkan/vk_sdk_platform.h"
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__unix__)
/* Linux-specific common code: */
// Headers:

View file

@ -0,0 +1,6 @@
Vulkan is a low-level cross-platform 3D graphics and compute API.
This port provides the Khronos official ICD (Installable Client Driver) loader,
which is necessary for loading Vulkan drivers in a running application.
WWW: https://github.com/KhronosGroup/Vulkan-Loader

View file

@ -0,0 +1,4 @@
lib/libvulkan.so
lib/libvulkan.so.1
lib/libvulkan.so.1.1.82
libdata/pkgconfig/vulkan.pc