add vulkan-headers and vulkan-loader to pkgsrc-wip

vulkan is a 3d graphics api from the khronos group.
This commit is contained in:
Niclas Rosenvik 2019-12-02 19:14:47 +00:00
parent 3c793f0bc1
commit f8b1b40548
18 changed files with 335 additions and 0 deletions

View File

@ -4889,6 +4889,8 @@ SUBDIR+= vpr
SUBDIR+= vreng
SUBDIR+= vsearch
SUBDIR+= vte
SUBDIR+= vulkan-headers
SUBDIR+= vulkan-loader
SUBDIR+= wackamole
SUBDIR+= waffle
SUBDIR+= wanderer

1
vulkan-headers/DESCR Normal file
View File

@ -0,0 +1 @@
Headers for the Vulkan graphics API.

22
vulkan-headers/Makefile Normal file
View File

@ -0,0 +1,22 @@
# $NetBSD$
GITHUB_PROJECT= Vulkan-Headers
DISTNAME= sdk-1.1.126.0
PKGNAME= ${GITHUB_PROJECT:tl}-${DISTNAME:S/sdk-//}
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_GITHUB:=KhronosGroup/}
DIST_SUBDIR= ${GITHUB_PROJECT}
GITHUB_TAG= ${DISTNAME}
EXTRACT_USING= bsdtar
MAINTAINER= nros@NetBSD.org
HOMEPAGE= https://github.com/KhronosGroup/Vulkan-Headers/
COMMENT= Headers for Vulkan Graphics API
LICENSE= apache-2.0
USE_CMAKE= yes
REPLACE_PYTHON= registry/*.py
.include "../../lang/python/application.mk"
.include "../../mk/bsd.pkg.mk"

29
vulkan-headers/PLIST Normal file
View File

@ -0,0 +1,29 @@
@comment $NetBSD$
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_fuchsia.h
include/vulkan/vulkan_ggp.h
include/vulkan/vulkan_ios.h
include/vulkan/vulkan_macos.h
include/vulkan/vulkan_metal.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/conventions.py
share/vulkan/registry/generator.py
share/vulkan/registry/genvk.py
share/vulkan/registry/reg.py
share/vulkan/registry/spec_tools/util.py
share/vulkan/registry/validusage.json
share/vulkan/registry/vk.xml
share/vulkan/registry/vkconventions.py

View File

@ -0,0 +1,17 @@
# $NetBSD$
BUILDLINK_TREE+= vulkan-headers
.if !defined(VULKAN_HEADERS_BUILDLINK3_MK)
VULKAN_HEADERS_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.vulkan-headers+= vulkan-headers>=1.1.126.0
BUILDLINK_PKGSRCDIR.vulkan-headers= ../../wip/vulkan-headers
BUILDLINK_DEPMETHOD.vulkan-headers?= build
.endif # VULKAN_HEADERS_BUILDLINK3_MK
.include "../../x11/liboldXrandr/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libxcb/buildlink3.mk"
BUILDLINK_TREE+= -vulkan-headers

8
vulkan-headers/distinfo Normal file
View File

@ -0,0 +1,8 @@
$NetBSD$
SHA1 (Vulkan-Headers/sdk-1.1.126.0.tar.gz) = a68e99a5eb1f6c4de97877718dba0fbeeccb07ff
RMD160 (Vulkan-Headers/sdk-1.1.126.0.tar.gz) = 9656c621304750488da54a1dd8ebc4953d35023c
SHA512 (Vulkan-Headers/sdk-1.1.126.0.tar.gz) = b050e0d17ad7b143c59a401a4a75ef97afdbc94f1cbfd4571ce1b83380927879cb05b7b62b81c7da8b501ebe0fbe70dc3acacaab3656da465b4bc06559266d3f
Size (Vulkan-Headers/sdk-1.1.126.0.tar.gz) = 665900 bytes
SHA1 (patch-CMakeLists.txt) = b5b2b302c55bd1998a15ee7416da2037bf04a52f
SHA1 (patch-include_vulkan_vulkan.hpp) = 70ba7f6bde7793be8dbe4fb1a9b0dbe738498c8d

View File

@ -0,0 +1,15 @@
$NetBSD$
* don't install pkgsrc generated files
--- CMakeLists.txt.orig 2019-12-02 18:11:46.793667657 +0000
+++ CMakeLists.txt
@@ -45,8 +45,8 @@ add_library(Vulkan-Registry INTERFACE)
target_include_directories(Vulkan-Registry INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/registry")
add_library(Vulkan::Registry ALIAS Vulkan-Registry)
-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan)
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PATTERN "*.orig" EXCLUDE)
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan PATTERN "*.orig" EXCLUDE)
# uninstall target
if(NOT TARGET uninstall)

View File

@ -0,0 +1,13 @@
$NetBSD$
* add NetBSD support
--- include/vulkan/vulkan.hpp.orig 2019-12-02 17:52:14.520273368 +0000
+++ include/vulkan/vulkan.hpp
@@ -56,7 +56,7 @@
# define VULKAN_HPP_ASSERT assert
#endif
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
# include <dlfcn.h>
#endif

1
vulkan-loader/DESCR Normal file
View File

@ -0,0 +1 @@
Loader for Vulkan graphics api.

36
vulkan-loader/Makefile Normal file
View File

@ -0,0 +1,36 @@
# $NetBSD$
GITHUB_PROJECT= Vulkan-Loader
DISTNAME= sdk-1.1.126.0
PKGNAME= ${GITHUB_PROJECT:tl}-${DISTNAME:S/sdk-//}
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_GITHUB:=KhronosGroup/}
DIST_SUBDIR= ${GITHUB_PROJECT}
GITHUB_TAG= ${DISTNAME}
EXTRACT_USING= bsdtar
MAINTAINER= nros@NetBSD.org
HOMEPAGE= https://github.com/KhronosGroup/Vulkan-Loader/
COMMENT= Loader for Vulkan Graphics API
LICENSE= apache-2.0
USE_TOOLS+= pkg-config
USE_CMAKE= yes
USE_LANGUAGES= c c++
# wayland support missing in pkgsrc
CMAKE_ARGS+= -DBUILD_WSI_WAYLAND_SUPPORT=OFF
CMAKE_ARGS+= -DBUILD_TESTS=ON
PKGCONFIG_OVERRIDE+=loader/vulkan.pc.in
.include "../../devel/googletest/buildlink3.mk"
.include "../../lang/python/tool.mk"
.include "../../sysutils/libpciaccess/buildlink3.mk"
.include "../../wip/vulkan-headers/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libxcb/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

5
vulkan-loader/PLIST Normal file
View File

@ -0,0 +1,5 @@
@comment $NetBSD$
lib/libvulkan.so
lib/libvulkan.so.1
lib/libvulkan.so.1.1.126
lib/pkgconfig/vulkan.pc

View File

@ -0,0 +1,23 @@
# $NetBSD$
#
BUILDLINK_TREE+= vulkan-loader
.if !defined(VULKAN_LOADER_BUILDLINK3_MK)
VULKAN_LOADER_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.vulkan-loader+= vulkan-loader>=1.1.126.0
BUILDLINK_PKGSRCDIR.vulkan-loader?= ../../wip/vulkan-loader
# XXX
# XXX Uncomment and keep only the buildlink3 lines below which are directly
# XXX needed for dependencies to compile, link, and run. If this package
# XXX provides a wrappered API or otherwise does not expose the APIs of the
# XXX buildlink3 lines below to dependencies, remove them.
# XXX
.include "../../wip/vulkan-headers/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libxcb/buildlink3.mk"
.endif # VULKAN_LOADER_BUILDLINK3_MK
BUILDLINK_TREE+= -vulkan-loader

11
vulkan-loader/distinfo Normal file
View File

@ -0,0 +1,11 @@
$NetBSD$
SHA1 (Vulkan-Loader/sdk-1.1.126.0.tar.gz) = 899a419aa4330f2093366e8a10ddba4ae325afa9
RMD160 (Vulkan-Loader/sdk-1.1.126.0.tar.gz) = 7e6f4aa16996f7f4c4901101888c3f3fccbe591d
SHA512 (Vulkan-Loader/sdk-1.1.126.0.tar.gz) = 8712542b722f786e818f0bf7ded45a1a5153f31d64e8481816032a332b654b29fc198dd3c2a4845b0b51c9e5dccb99fdf2d9e4d068972277109f007174f72c3d
Size (Vulkan-Loader/sdk-1.1.126.0.tar.gz) = 1399019 bytes
SHA1 (patch-CMakeLists.txt) = b7d2ca7074327dbebe99d6b6d1fad4805c564858
SHA1 (patch-loader_CMakeLists.txt) = f61a39ee9b97858931474f20ec1b05d33ef0d231
SHA1 (patch-loader_loader.c) = 1b5a4d1c9591690944b0e23076c06dba92d36773
SHA1 (patch-loader_vk__loader__platform.h) = 4f71c25fc8b9b1a5ce622a402549874907f58fe3
SHA1 (patch-tests_test__common.h) = 8a1a730027929791b7bbc9ffc0172f0fc8aafb73

View File

@ -0,0 +1,37 @@
$NetBSD$
* Use cmakes way of setting language standards.
--- CMakeLists.txt.orig 2019-10-28 17:29:17.000000000 +0000
+++ CMakeLists.txt
@@ -132,6 +132,12 @@ else()
option(BUILD_TESTS "Build Tests" OFF)
endif()
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
set(COMMON_COMPILE_FLAGS "-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers")
set(COMMON_COMPILE_FLAGS "${COMMON_COMPILE_FLAGS} -fno-strict-aliasing -fno-builtin-memcmp")
@@ -153,8 +159,8 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_CO
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Xclang -std=c++11 -fno-rtti")
# clang (not clang-cl) or gcc
else()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 ${COMMON_COMPILE_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILE_FLAGS}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILE_FLAGS}")
@@ -216,7 +222,7 @@ if(BUILD_LOADER)
add_subdirectory(loader)
endif()
-add_subdirectory(external)
+#add_subdirectory(external)
if(BUILD_TESTS)
add_subdirectory(tests)
endif()

View File

@ -0,0 +1,58 @@
$NetBSD$
* use CMake findthreads instead of hardcoding -lpthread
* install pkg-config file on mac
* set the right libs in Libs.private
--- loader/CMakeLists.txt.orig 2019-10-28 17:29:17.000000000 +0000
+++ loader/CMakeLists.txt
@@ -21,6 +21,10 @@ include_directories(${CMAKE_CURRENT_SOUR
include(CheckFunctionExists)
include(CheckIncludeFile)
+set(CMAKE_THREAD_PREFER_PTHREAD ON)
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+
check_function_exists(secure_getenv HAVE_SECURE_GETENV)
check_function_exists(__secure_getenv HAVE___SECURE_GETENV)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/loader_cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/loader_cmake_config.h)
@@ -236,7 +240,7 @@ else()
"1"
VERSION
"${VulkanHeaders_VERSION_MAJOR}.${VulkanHeaders_VERSION_MINOR}.${VulkanHeaders_VERSION_PATCH}")
- target_link_libraries(vulkan ${CMAKE_DL_LIBS} pthread m)
+ target_link_libraries(vulkan ${CMAKE_DL_LIBS} Threads::Threads m)
target_link_libraries(vulkan Vulkan::Headers)
if(APPLE)
@@ -264,7 +268,7 @@ else()
add_library(vulkan-framework SHARED ${NORMAL_LOADER_SRCS} ${OPT_LOADER_SRCS} ${FRAMEWORK_HEADERS})
add_dependencies(vulkan-framework loader_asm_gen_files)
target_compile_definitions(vulkan-framework PUBLIC LOADER_DYNAMIC_LIB)
- target_link_libraries(vulkan-framework -ldl -lpthread -lm "-framework CoreFoundation")
+ target_link_libraries(vulkan-framework -ldl Threads::Threads -lm "-framework CoreFoundation")
target_link_libraries(vulkan-framework Vulkan::Headers)
# The FRAMEWORK_VERSION needs to be "A" here so that Xcode code-signing works when a user adds their framework to an Xcode
@@ -289,17 +293,18 @@ else()
# cmake-format: on
endif()
- if(NOT APPLE)
# Generate pkg-config file.
include(FindPkgConfig QUIET)
if(PKG_CONFIG_FOUND)
set(VK_API_VERSION "${VulkanHeaders_VERSION_MAJOR}.${VulkanHeaders_VERSION_MINOR}.${VulkanHeaders_VERSION_PATCH}")
- foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
- set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
+ foreach(LIB ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS} ${CMAKE_DL_LIBS} m)
+ list(APPEND PRIVATE_LIBS_LIST "-l${LIB}")
endforeach()
+ list(APPEND PRIVATE_LIBS_LIST "${CMAKE_THREAD_LIBS_INIT}")
+ list(REMOVE_DUPLICATES PRIVATE_LIBS_LIST)
+ list(JOIN PRIVATE_LIBS_LIST " " PRIVATE_LIBS)
configure_file("vulkan.pc.in" "vulkan.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vulkan.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
- endif()
endif()
endif()

View File

@ -0,0 +1,31 @@
$NetBSD$
* add netbsd support
--- loader/loader.c.orig 2019-09-11 17:39:09.000000000 +0000
+++ loader/loader.c
@@ -44,6 +44,8 @@
#if defined(__APPLE__)
#include <CoreFoundation/CoreFoundation.h>
+#endif
+#if defined(__APPLE__) || defined(__NetBSD__)
#include <sys/param.h>
#endif
@@ -241,7 +243,7 @@ void *loader_device_heap_realloc(const s
}
// Environment variables
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
static inline bool IsHighIntegrity() {
return geteuid() != getuid() || getegid() != getgid();
@@ -255,7 +257,7 @@ static inline char *loader_getenv(const
}
static inline char *loader_secure_getenv(const char *name, const struct loader_instance *inst) {
-#if defined(__APPLE__)
+#if defined(__APPLE__) || defined(__NetBSD__)
// 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,13 @@
$NetBSD$
* add netbsd support
--- loader/vk_loader_platform.h.orig 2019-09-18 15:49:42.194132122 +0000
+++ 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(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
/* Linux-specific common code: */
// Headers:

View File

@ -0,0 +1,13 @@
$NetBSD$
* add netbsd support
--- tests/test_common.h.orig 2019-09-18 21:32:16.041186928 +0000
+++ tests/test_common.h
@@ -105,7 +105,7 @@ static inline void test_error_callback(c
ADD_FAILURE_AT(file, line) << "Assertion: `" << expr << "'";
}
-#if defined(__linux__) || defined(__APPLE__)
+#if defined(__linux__) || defined(__APPLE__) || defined(__NetBSD__)
/* Linux-specific common code: */
#include <pthread.h>