# Copyright 2019 The SwiftShader Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("../swiftshader.gni") import("//build_overrides/wayland.gni") import("//build/config/ozone.gni") config("WSI_metal_weak_framework") { if (is_mac) { ldflags = [ "-weak_framework", "Metal", ] } } swiftshader_source_set("WSI") { sources = [ "HeadlessSurfaceKHR.cpp", "HeadlessSurfaceKHR.hpp", "VkSurfaceKHR.cpp", "VkSurfaceKHR.hpp", "VkSwapchainKHR.cpp", "VkSwapchainKHR.hpp", ] if (is_linux) { if (ozone_platform_x11) { sources += [ "XcbSurfaceKHR.cpp", "XcbSurfaceKHR.hpp", "libXCB.cpp", "libXCB.hpp", ] } if (ozone_platform_wayland) { sources += [ "WaylandSurfaceKHR.cpp", "WaylandSurfaceKHR.hpp", "libWaylandClient.cpp", "libWaylandClient.hpp", ] } } if (is_win) { sources += [ "Win32SurfaceKHR.cpp", "Win32SurfaceKHR.hpp", ] } if (is_mac) { sources += [ "MetalSurface.hpp", "MetalSurface.mm", ] frameworks = [ "Cocoa.framework", "QuartzCore.framework", ] public_configs = [ ":WSI_metal_weak_framework" ] } include_dirs = [ "..", "../../include", "../../third_party/SPIRV-Headers/include", ] deps = [ "../../third_party/SPIRV-Tools:spvtools_headers", "../../third_party/marl:Marl_headers", "../System", "../Vulkan:swiftshader_libvulkan_headers", ] # Do not try to depend on Wayland if the |wayland_gn_dir| is not set. if (is_linux && ozone_platform_wayland && wayland_gn_dir != "") { # Use third-party targets deps += [ "$wayland_gn_dir:wayland_client" ] } configs = [ "../Vulkan:swiftshader_libvulkan_private_config" ] }