OSDN Git Service

Implement GL_OES_vertex_half_float.
[android-x86/external-swiftshader.git] / BUILD.gn
index ae6087e..7530b91 100644 (file)
--- a/BUILD.gn
+++ b/BUILD.gn
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import("//build/config/compiler/compiler.gni")
+
 config("swiftshader_config") {
+  defines = [ "STRICT_CONFORMANCE" ]  # Disables OpenGL ES 3.0
+
   if (is_win) {
     cflags = [
       "/GS",  # Detects some buffer overruns
       "/Zc:wchar_t",
-      "/D_CRT_SECURE_NO_DEPRECATE",
-      "/DNOMINMAX",
-      "/D_WINDLL",
       "/EHsc",
       "/nologo",
       "/Gd",  # Default calling convention
     ]
 
-    if (is_debug) {
-      cflags += [ "/RTC1" ]  # Run-Time Error Checks
-    } else {
-      cflags += [ "/DANGLE_DISABLE_TRACE" ]
-    }
+    defines += [
+      "_CRT_SECURE_NO_DEPRECATE",
+      "NOMINMAX",
+      "_WINDLL",
+      "NO_SANITIZE_FUNCTION=",
+      "ANGLE_DISABLE_TRACE",
+    ]
   } else {
-    cflags = [ "-std=c++11" ]
-
-    if (is_debug) {
-      cflags += [ "-g" ]
-    } else {  # Release
-      # All Release builds use function/data sections to make the shared libraries smaller
-      cflags += [
-        "-ffunction-sections",
-        "-fdata-sections",
-        "-fomit-frame-pointer",
-        "-DANGLE_DISABLE_TRACE",
-      ]
+    cflags = [
+      "-std=c++11",
+      "-fno-exceptions",
+      "-fno-operator-names",
+      "-ffunction-sections",
+      "-fdata-sections",
+      "-fomit-frame-pointer",
+      "-Os",
+    ]
 
-      # Choose the right Release architecture
-      if (target_cpu == "x64") {
-        cflags += [ "-march=core2" ]
-      } else {  # 32
-        cflags += [ "-march=i686" ]
-      }
-    }
+    defines += [
+      "__STDC_CONSTANT_MACROS",
+      "__STDC_LIMIT_MACROS",
+      "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))",
+      "ANGLE_DISABLE_TRACE",
+      "NDEBUG",
+    ]
 
     if (target_cpu == "x64") {  # 64 bit version
       cflags += [
         "-m64",
         "-fPIC",
+        "-march=core2",
       ]
     } else {  # 32 bit version
-      cflags += [ "-m32" ]
+      cflags += [
+        "-m32",
+        "-msse2",
+        "-march=i686",
+      ]
+    }
+
+    if (is_linux) {
+      ldflags = [
+        "-Wl,--hash-style=both",
+        "-Wl,--gc-sections",
+      ]
+
+      # A bug in the gold linker prevents using ICF on 32-bit (crbug.com/729532)
+      if (use_gold && target_cpu == "x86") {
+        ldflags += [ "-Wl,--icf=none" ]
+      }
     }
   }
 }