Home | History | Annotate | Download | only in libEGL
      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