1// 2// Copyright (C) 2018 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15// 16 17package { 18 // See: http://go/android-license-faq 19 // A large-scale-change added 'default_applicable_licenses' to import 20 // all of the 'license_kinds' from "device_generic_opengl-transport_license" 21 // to get the below license kinds: 22 // SPDX-license-identifier-Apache-2.0 23 // SPDX-license-identifier-BSD 24 default_applicable_licenses: ["device_generic_opengl-transport_license"], 25} 26 27genrule { 28 name: "glesv1_dec_cuttlefish_gensrc", 29 srcs: ["GLESv1_dec/*"], 30 tools: ["emugen_cuttlefish"], 31 cmd: "$(location emugen_cuttlefish) " + 32 "-i device/generic/opengl-transport/host/libs/virglrenderer/GLESv1_dec " + 33 "-D $(genDir) gles1", 34 out: ["gles1_dec.cpp"], 35} 36 37genrule { 38 name: "glesv1_dec_cuttlefish_genhdr", 39 srcs: ["GLESv1_dec/*"], 40 tools: ["emugen_cuttlefish"], 41 cmd: "$(location emugen_cuttlefish) " + 42 "-i device/generic/opengl-transport/host/libs/virglrenderer/GLESv1_dec " + 43 "-D $(genDir) gles1", 44 out: [ 45 "gles1_dec.h", 46 "gles1_opcodes.h", 47 "gles1_server_context.h", 48 "gles1_server_proc.h", 49 ], 50} 51 52genrule { 53 name: "glesv3_dec_cuttlefish_gensrc", 54 srcs: ["GLESv3_dec/*"], 55 tools: ["emugen_cuttlefish"], 56 cmd: "$(location emugen_cuttlefish) " + 57 "-i device/generic/opengl-transport/host/libs/virglrenderer/GLESv3_dec " + 58 "-D $(genDir) gles3", 59 out: ["gles3_dec.cpp"], 60} 61 62genrule { 63 name: "glesv3_dec_cuttlefish_genhdr", 64 srcs: ["GLESv3_dec/*"], 65 tools: ["emugen_cuttlefish"], 66 cmd: "$(location emugen_cuttlefish) " + 67 "-i device/generic/opengl-transport/host/libs/virglrenderer/GLESv3_dec " + 68 "-D $(genDir) gles3", 69 out: [ 70 "gles3_dec.h", 71 "gles3_opcodes.h", 72 "gles3_server_context.h", 73 "gles3_server_proc.h", 74 ], 75} 76 77genrule { 78 name: "rendercontrol_dec_cuttlefish_gensrc", 79 srcs: ["renderControl_dec/*"], 80 tools: ["emugen_cuttlefish"], 81 cmd: "$(location emugen_cuttlefish) " + 82 "-i device/generic/opengl-transport/host/libs/virglrenderer/renderControl_dec " + 83 "-D $(genDir) renderControl", 84 out: ["renderControl_dec.cpp"], 85} 86 87genrule { 88 name: "rendercontrol_dec_cuttlefish_genhdr", 89 srcs: ["renderControl_dec/*"], 90 tools: ["emugen_cuttlefish"], 91 cmd: "$(location emugen_cuttlefish) " + 92 "-i device/generic/opengl-transport/host/libs/virglrenderer/renderControl_dec " + 93 "-D $(genDir) renderControl", 94 out: [ 95 "renderControl_dec.h", 96 "renderControl_opcodes.h", 97 "renderControl_server_context.h", 98 "renderControl_server_proc.h", 99 ], 100} 101 102genrule { 103 name: "gles1_core_functions_hdr", 104 tool_files: ["gen_entries.py"], 105 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 106 srcs: ["OpenGLESDispatch/gles1_core.entries"], 107 out: ["gles1_core_functions.h"], 108} 109 110genrule { 111 name: "gles1_extensions_functions_hdr", 112 tool_files: ["gen_entries.py"], 113 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 114 srcs: ["OpenGLESDispatch/gles1_extensions.entries"], 115 out: ["gles1_extensions_functions.h"], 116} 117 118genrule { 119 name: "egl_functions_hdr", 120 tool_files: ["gen_entries.py"], 121 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 122 srcs: ["OpenGLESDispatch/egl.entries"], 123 out: ["egl_functions.h"], 124} 125 126genrule { 127 name: "gles3_only_functions_hdr", 128 tool_files: ["gen_entries.py"], 129 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 130 srcs: ["OpenGLESDispatch/gles3_only.entries"], 131 out: ["gles3_only_functions.h"], 132} 133 134genrule { 135 name: "gles31_only_functions_hdr", 136 tool_files: ["gen_entries.py"], 137 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 138 srcs: ["OpenGLESDispatch/gles31_only.entries"], 139 out: ["gles31_only_functions.h"], 140} 141 142genrule { 143 name: "gles2_extensions_functions_hdr", 144 tool_files: ["gen_entries.py"], 145 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 146 srcs: ["OpenGLESDispatch/gles2_extensions.entries"], 147 out: ["gles2_extensions_functions.h"], 148} 149 150genrule { 151 name: "egl_extensions_functions_hdr", 152 tool_files: ["gen_entries.py"], 153 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 154 srcs: ["OpenGLESDispatch/egl_extensions.entries"], 155 out: ["egl_extensions_functions.h"], 156} 157 158genrule { 159 name: "gles2_core_functions_hdr", 160 tool_files: ["gen_entries.py"], 161 cmd: "python3 $(location gen_entries.py) --mode=funcargs $(in) --output $(out)", 162 srcs: ["OpenGLESDispatch/gles2_core.entries"], 163 out: ["gles2_core_functions.h"], 164} 165 166cc_library_host_shared { 167 name: "libvirglrenderer_cuttlefish", 168 include_dirs: [ 169 "external/libdrm", 170 "external/libdrm/include", 171 "device/generic/goldfish-opengl/system", 172 ], 173 local_include_dirs: [ 174 "GLESv1_dec", 175 "GLESv3_dec", 176 "include", 177 "renderControl_dec", 178 ], 179 srcs: [ 180 "AVDVirglRenderer.cpp", 181 "ChecksumCalculator.cpp", 182 "GLESv1.cpp", 183 "GLESv3.cpp", 184 "Gralloc1.cpp", 185 "OpenGLESDispatch/EGLDispatch.cpp", 186 "OpenGLESDispatch/GLESv1Dispatch.cpp", 187 "OpenGLESDispatch/GLESv3Dispatch.cpp", 188 "RenderControl.cpp", 189 ], 190 cflags: ["-Wno-unused-parameter", "-DOPENGL_DEBUG_PRINTOUT"], 191 host_ldlibs: [ "-ldl" ], 192 generated_sources: [ 193 "glesv1_dec_cuttlefish_gensrc", 194 "glesv3_dec_cuttlefish_gensrc", 195 "rendercontrol_dec_cuttlefish_gensrc", 196 ], 197 generated_headers: [ 198 "glesv1_dec_cuttlefish_genhdr", 199 "glesv3_dec_cuttlefish_genhdr", 200 "rendercontrol_dec_cuttlefish_genhdr", 201 "gles1_core_functions_hdr", 202 "gles1_extensions_functions_hdr", 203 "egl_functions_hdr", 204 "gles3_only_functions_hdr", 205 "gles31_only_functions_hdr", 206 "gles2_extensions_functions_hdr", 207 "egl_extensions_functions_hdr", 208 "gles2_core_functions_hdr", 209 ], 210 header_libs: [ 211 "virtio_gpu_uapi_headers", 212 "virgl_headers" 213 ], 214 215 // TODO(b/118466250): Make this work on the Mac 216 version_script : "libvirglrenderer.lds", 217 defaults: [ "cuttlefish_buildhost_only" ], 218} 219