1 # Copyright 2016 The SwiftShader Authors. All Rights Reserved. 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 import("../../swiftshader.gni") 16 17 # Need a separate config to ensure the warnings are added to the end. 18 config("swiftshader_libEGL_private_config") { 19 defines = [ "EGL_EGLEXT_PROTOTYPES" ] 20 21 if (is_win) { 22 cflags = [ 23 "/wd4201", # nameless struct/union 24 "/wd4065", # switch statement contains 'default' but no 'case' labels 25 "/wd5030", # attribute is not recognized 26 ] 27 28 defines += [ "EGLAPI=" ] 29 } else { 30 cflags = [ "-Wno-sign-compare" ] 31 if (!is_clang) { 32 cflags += [ "-Wno-unused-but-set-variable" ] 33 } 34 35 defines += [ "EGLAPI=__attribute__((visibility(\"default\"))) __attribute__((no_sanitize(\"function\")))" ] 36 } 37 } 38 39 swiftshader_shared_library("swiftshader_libEGL") { 40 if (!is_mac) { 41 output_name = "libEGL" 42 output_dir = "$root_out_dir/swiftshader" 43 } 44 45 deps = [ 46 "//build/config:exe_and_shlib_deps", 47 ] 48 49 sources = [ 50 "../common/Object.cpp", 51 "Config.cpp", 52 "Display.cpp", 53 "Surface.cpp", 54 "libEGL.cpp", 55 "libEGL.def", 56 "libEGL.rc", 57 "main.cpp", 58 "resource.h", 59 ] 60 61 if (is_debug) { 62 sources += [ "../common/debug.cpp" ] 63 } 64 65 if (is_mac) { 66 sources += [ "OSXUtils.mm" ] 67 libs = [ 68 "Quartz.framework", 69 "Cocoa.framework", 70 "CoreFoundation.framework", 71 "IOSurface.framework", 72 ] 73 ldflags = [ "-Wl,-install_name,@rpath/libswiftshader_libEGL.dylib" ] 74 } else if (is_win) { 75 ldflags = [ "/DEF:" + rebase_path("libGLESv2.def", root_build_dir) ] 76 } else if (is_linux) { 77 sources += [ "../../Main/libX11.cpp" ] 78 ldflags = 79 [ "-Wl,--version-script=" + rebase_path("libEGL.lds", root_build_dir) ] 80 } 81 82 configs = [ ":swiftshader_libEGL_private_config" ] 83 84 include_dirs = [ 85 "../../../include", 86 "../..", 87 "..", 88 ] 89 } 90