加入volk 和 wma 后 编译不通过, 先保存代码
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Compiles the volk sources as part of a user project.
|
||||
# Volk comes with a volk.c for this purpose.
|
||||
# Note that for volk to properly handle platform defines,
|
||||
# those have to be set at build time.
|
||||
# Also note that this way the Vulkan headers must
|
||||
# handled by the user project as well as linking to dl on
|
||||
# non-Windows platforms.
|
||||
# For these reasons it's recommended to use one of
|
||||
# the other ways to include volk (see the other examples).
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(volk_test LANGUAGES C)
|
||||
|
||||
add_executable(volk_test main.c ../../volk.c)
|
||||
|
||||
# Set include path for volk.h
|
||||
target_include_directories(volk_test PRIVATE ../..)
|
||||
|
||||
# Set suitable platform defines
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
|
||||
target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_WIN32_KHR)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL Linux)
|
||||
target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_XLIB_KHR)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
|
||||
target_compile_definitions(volk_test PRIVATE VK_USE_PLATFORM_MACOS_MVK)
|
||||
endif()
|
||||
|
||||
# Link requires libraries
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(volk_test PRIVATE dl)
|
||||
endif()
|
||||
|
||||
# Get Vulkan dependency
|
||||
find_package(Vulkan QUIET)
|
||||
if(TARGET Vulkan::Vulkan)
|
||||
# Note: We don't use target_link_libraries for Vulkan::Vulkan to avoid a static dependency on libvulkan1
|
||||
target_include_directories(volk_test PRIVATE ${Vulkan_INCLUDE_DIRS})
|
||||
elseif(DEFINED ENV{VULKAN_SDK})
|
||||
target_include_directories(volk_test PRIVATE "$ENV{VULKAN_SDK}/include")
|
||||
endif()
|
||||
@@ -0,0 +1,41 @@
|
||||
#include "volk.h"
|
||||
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
VkResult r;
|
||||
uint32_t version;
|
||||
void* ptr;
|
||||
|
||||
/* This won't compile if the appropriate Vulkan platform define isn't set. */
|
||||
ptr =
|
||||
#if defined(_WIN32)
|
||||
&vkCreateWin32SurfaceKHR;
|
||||
#elif defined(__linux__) || defined(__unix__)
|
||||
&vkCreateXlibSurfaceKHR;
|
||||
#elif defined(__APPLE__)
|
||||
&vkCreateMacOSSurfaceMVK;
|
||||
#else
|
||||
/* Platform not recogized for testing. */
|
||||
NULL;
|
||||
#endif
|
||||
|
||||
/* Try to initialize volk. This might not work on CI builds, but the
|
||||
* above should have compiled at least. */
|
||||
r = volkInitialize();
|
||||
if (r != VK_SUCCESS) {
|
||||
printf("volkInitialize failed!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
version = volkGetInstanceVersion();
|
||||
printf("Vulkan version %d.%d.%d initialized.\n",
|
||||
VK_VERSION_MAJOR(version),
|
||||
VK_VERSION_MINOR(version),
|
||||
VK_VERSION_PATCH(version));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user