xref: /aosp_15_r20/external/swiftshader/src/WSI/BUILD.gn (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2019 The SwiftShader Authors. All Rights Reserved.
2*03ce13f7SAndroid Build Coastguard Worker#
3*03ce13f7SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*03ce13f7SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*03ce13f7SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*03ce13f7SAndroid Build Coastguard Worker#
7*03ce13f7SAndroid Build Coastguard Worker#    http://www.apache.org/licenses/LICENSE-2.0
8*03ce13f7SAndroid Build Coastguard Worker#
9*03ce13f7SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*03ce13f7SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*03ce13f7SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*03ce13f7SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*03ce13f7SAndroid Build Coastguard Worker# limitations under the License.
14*03ce13f7SAndroid Build Coastguard Worker
15*03ce13f7SAndroid Build Coastguard Workerimport("../swiftshader.gni")
16*03ce13f7SAndroid Build Coastguard Workerimport("//build_overrides/wayland.gni")
17*03ce13f7SAndroid Build Coastguard Workerimport("//build/config/ozone.gni")
18*03ce13f7SAndroid Build Coastguard Worker
19*03ce13f7SAndroid Build Coastguard Workerconfig("WSI_metal_weak_framework") {
20*03ce13f7SAndroid Build Coastguard Worker  if (is_mac) {
21*03ce13f7SAndroid Build Coastguard Worker    ldflags = [
22*03ce13f7SAndroid Build Coastguard Worker      "-weak_framework",
23*03ce13f7SAndroid Build Coastguard Worker      "Metal",
24*03ce13f7SAndroid Build Coastguard Worker    ]
25*03ce13f7SAndroid Build Coastguard Worker  }
26*03ce13f7SAndroid Build Coastguard Worker}
27*03ce13f7SAndroid Build Coastguard Worker
28*03ce13f7SAndroid Build Coastguard Workerswiftshader_source_set("WSI") {
29*03ce13f7SAndroid Build Coastguard Worker  sources = [
30*03ce13f7SAndroid Build Coastguard Worker    "HeadlessSurfaceKHR.cpp",
31*03ce13f7SAndroid Build Coastguard Worker    "HeadlessSurfaceKHR.hpp",
32*03ce13f7SAndroid Build Coastguard Worker    "VkSurfaceKHR.cpp",
33*03ce13f7SAndroid Build Coastguard Worker    "VkSurfaceKHR.hpp",
34*03ce13f7SAndroid Build Coastguard Worker    "VkSwapchainKHR.cpp",
35*03ce13f7SAndroid Build Coastguard Worker    "VkSwapchainKHR.hpp",
36*03ce13f7SAndroid Build Coastguard Worker  ]
37*03ce13f7SAndroid Build Coastguard Worker
38*03ce13f7SAndroid Build Coastguard Worker  if (is_linux) {
39*03ce13f7SAndroid Build Coastguard Worker    if (ozone_platform_x11) {
40*03ce13f7SAndroid Build Coastguard Worker      sources += [
41*03ce13f7SAndroid Build Coastguard Worker        "XcbSurfaceKHR.cpp",
42*03ce13f7SAndroid Build Coastguard Worker        "XcbSurfaceKHR.hpp",
43*03ce13f7SAndroid Build Coastguard Worker        "libXCB.cpp",
44*03ce13f7SAndroid Build Coastguard Worker        "libXCB.hpp",
45*03ce13f7SAndroid Build Coastguard Worker      ]
46*03ce13f7SAndroid Build Coastguard Worker    }
47*03ce13f7SAndroid Build Coastguard Worker
48*03ce13f7SAndroid Build Coastguard Worker    if (ozone_platform_wayland) {
49*03ce13f7SAndroid Build Coastguard Worker      sources += [
50*03ce13f7SAndroid Build Coastguard Worker        "WaylandSurfaceKHR.cpp",
51*03ce13f7SAndroid Build Coastguard Worker        "WaylandSurfaceKHR.hpp",
52*03ce13f7SAndroid Build Coastguard Worker        "libWaylandClient.cpp",
53*03ce13f7SAndroid Build Coastguard Worker        "libWaylandClient.hpp",
54*03ce13f7SAndroid Build Coastguard Worker      ]
55*03ce13f7SAndroid Build Coastguard Worker    }
56*03ce13f7SAndroid Build Coastguard Worker  }
57*03ce13f7SAndroid Build Coastguard Worker
58*03ce13f7SAndroid Build Coastguard Worker  if (is_win) {
59*03ce13f7SAndroid Build Coastguard Worker    sources += [
60*03ce13f7SAndroid Build Coastguard Worker      "Win32SurfaceKHR.cpp",
61*03ce13f7SAndroid Build Coastguard Worker      "Win32SurfaceKHR.hpp",
62*03ce13f7SAndroid Build Coastguard Worker    ]
63*03ce13f7SAndroid Build Coastguard Worker  }
64*03ce13f7SAndroid Build Coastguard Worker
65*03ce13f7SAndroid Build Coastguard Worker  if (is_mac) {
66*03ce13f7SAndroid Build Coastguard Worker    sources += [
67*03ce13f7SAndroid Build Coastguard Worker      "MetalSurface.hpp",
68*03ce13f7SAndroid Build Coastguard Worker      "MetalSurface.mm",
69*03ce13f7SAndroid Build Coastguard Worker    ]
70*03ce13f7SAndroid Build Coastguard Worker    frameworks = [
71*03ce13f7SAndroid Build Coastguard Worker      "Cocoa.framework",
72*03ce13f7SAndroid Build Coastguard Worker      "QuartzCore.framework",
73*03ce13f7SAndroid Build Coastguard Worker    ]
74*03ce13f7SAndroid Build Coastguard Worker    public_configs = [ ":WSI_metal_weak_framework" ]
75*03ce13f7SAndroid Build Coastguard Worker  }
76*03ce13f7SAndroid Build Coastguard Worker
77*03ce13f7SAndroid Build Coastguard Worker  include_dirs = [
78*03ce13f7SAndroid Build Coastguard Worker    "..",
79*03ce13f7SAndroid Build Coastguard Worker    "../../include",
80*03ce13f7SAndroid Build Coastguard Worker    "../../third_party/SPIRV-Headers/include",
81*03ce13f7SAndroid Build Coastguard Worker  ]
82*03ce13f7SAndroid Build Coastguard Worker
83*03ce13f7SAndroid Build Coastguard Worker  deps = [
84*03ce13f7SAndroid Build Coastguard Worker    "../../third_party/SPIRV-Tools:spvtools_headers",
85*03ce13f7SAndroid Build Coastguard Worker    "../../third_party/marl:Marl_headers",
86*03ce13f7SAndroid Build Coastguard Worker    "../System",
87*03ce13f7SAndroid Build Coastguard Worker    "../Vulkan:swiftshader_libvulkan_headers",
88*03ce13f7SAndroid Build Coastguard Worker  ]
89*03ce13f7SAndroid Build Coastguard Worker
90*03ce13f7SAndroid Build Coastguard Worker  # Do not try to depend on Wayland if the |wayland_gn_dir| is not set.
91*03ce13f7SAndroid Build Coastguard Worker  if (is_linux && ozone_platform_wayland && wayland_gn_dir != "") {
92*03ce13f7SAndroid Build Coastguard Worker    # Use third-party targets
93*03ce13f7SAndroid Build Coastguard Worker    deps += [ "$wayland_gn_dir:wayland_client" ]
94*03ce13f7SAndroid Build Coastguard Worker  }
95*03ce13f7SAndroid Build Coastguard Worker
96*03ce13f7SAndroid Build Coastguard Worker  configs = [ "../Vulkan:swiftshader_libvulkan_private_config" ]
97*03ce13f7SAndroid Build Coastguard Worker}
98