| # 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") | 
 |  | 
 | 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 += [ | 
 |       "XcbSurfaceKHR.cpp", | 
 |       "XcbSurfaceKHR.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 = [ | 
 |     "${swiftshader_spirv_tools_dir}:SPIRV-Tools", | 
 |     "../../third_party/marl:Marl_headers", | 
 |     "../System", | 
 |     "../Vulkan:swiftshader_libvulkan_headers", | 
 |   ] | 
 |  | 
 |   configs = [ "../Vulkan:swiftshader_libvulkan_private_config" ] | 
 | } |