1add_subdirectory(cereal)
2add_subdirectory(emulated_textures)
3
4if(CONFIG_AEMU)
5    add_compile_definitions(GFXSTREAM_BUILD_WITH_SNAPSHOT_SUPPORT)
6    add_compile_definitions(CONFIG_AEMU)
7endif()
8
9add_library(gfxstream-vulkan-server
10            BorrowedImageVk.cpp
11            BufferVk.cpp
12            ColorBufferVk.cpp
13            CompositorVk.cpp
14            DeviceLostHelper.cpp
15            DeviceOpTracker.cpp
16            DisplayVk.cpp
17            DisplaySurfaceVk.cpp
18            DebugUtilsHelper.cpp
19            PostWorkerVk.cpp
20            SwapChainStateVk.cpp
21            RenderThreadInfoVk.cpp
22            VkAndroidNativeBuffer.cpp
23            VkCommonOperations.cpp
24            VkDecoder.cpp
25            VkDecoderGlobalState.cpp
26            VkDecoderSnapshot.cpp
27            VkDecoderSnapshotUtils.cpp
28            VkEmulatedPhysicalDeviceMemory.cpp
29            VkFormatUtils.cpp
30            VkReconstruction.cpp
31            VulkanDispatch.cpp
32            VulkanHandleMapping.cpp
33            VulkanStream.cpp
34            vk_util.cpp)
35set_source_files_properties(VkDecoder.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-variable)
36
37target_link_libraries(gfxstream-vulkan-server PUBLIC
38        OpenglRender_vulkan_cereal
39        gfxstream-compressedTextures
40        emulated_textures
41        apigen-codec-common
42        aemu-base.headers
43        gfxstream_backend_common
44        gfxstream_features
45        gfxstream_host_tracing
46        gfxstream-snapshot.headers
47        gfxstream_utils
48        gfxstream_vulkan_headers
49        PRIVATE
50        gfxstream_egl_headers)
51
52if (WIN32)
53target_compile_definitions(gfxstream-vulkan-server PRIVATE -DVK_USE_PLATFORM_WIN32_KHR)
54elseif (APPLE)
55target_compile_definitions(gfxstream-vulkan-server PRIVATE -DVK_USE_PLATFORM_METAL_EXT)
56elseif (QNX)
57target_compile_definitions(gfxstream-vulkan-server PRIVATE -DVK_USE_PLATFORM_SCREEN_QNX)
58endif()
59
60if (NOT MSVC)
61    target_compile_options(gfxstream-vulkan-server PRIVATE -fvisibility=hidden)
62endif()
63target_compile_options(gfxstream-vulkan-server PRIVATE -Wno-unused-value -Wno-return-type -Wno-return-type-c-linkage)
64
65target_include_directories(gfxstream-vulkan-server
66                           PUBLIC
67                           ${GFXSTREAM_REPO_ROOT}/vulkan
68                           ${GFXSTREAM_REPO_ROOT}/vulkan/cereal
69                           PRIVATE
70                           ${GFXSTREAM_REPO_ROOT}
71                           ${GFXSTREAM_REPO_ROOT}/include
72                           ${GFXSTREAM_REPO_ROOT}/host
73                           ${GFXSTREAM_REPO_ROOT}/host/vulkan
74                           ${GFXSTREAM_REPO_ROOT}/host/vulkan/cereal/common
75                           ${GFXSTREAM_REPO_ROOT}/host/apigen-codec-common
76                           ${GFXSTREAM_REPO_ROOT}/third-party/glm/include)
77