| # 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") |
| if (is_linux) { |
| import("//third_party/wayland/features.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) { |
| sources += [ |
| "WaylandSurfaceKHR.cpp", |
| "WaylandSurfaceKHR.hpp", |
| "XcbSurfaceKHR.cpp", |
| "XcbSurfaceKHR.hpp", |
| "libWaylandClient.cpp", |
| "libWaylandClient.hpp", |
| "libXCB.cpp", |
| "libXCB.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", |
| ] |
| |
| if (defined(use_system_libwayland) && !use_system_libwayland) { |
| # Use chromium third-party targets |
| deps += [ "//third_party/wayland:wayland_client" ] |
| } |
| |
| configs = [ "../Vulkan:swiftshader_libvulkan_private_config" ] |
| } |