| # Copyright 2016 Google, LLC |
| # |
| # Permission is hereby granted, free of charge, to any person obtaining a |
| # copy of this software and associated documentation files (the "Software"), |
| # to deal in the Software without restriction, including without limitation |
| # the rights to use, copy, modify, merge, publish, distribute, sublicense, |
| # and/or sell copies of the Software, and to permit persons to whom the |
| # Software is furnished to do so, subject to the following conditions: |
| # |
| # The above copyright notice and this permission notice (including the next |
| # paragraph) shall be included in all copies or substantial portions of the |
| # Software. |
| # |
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
| # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
| # IN THE SOFTWARE. |
| |
| import("../mesa.gni") |
| import("//build/checkout.gni") |
| |
| config("common_config") { |
| mesa_version = read_file("../VERSION", "trim string") |
| |
| defines = [ |
| "STDC_HEADERS=1", |
| "HAVE_ENDIAN_H=1", |
| "HAVE_SYS_TYPES_H=1", |
| "HAVE_SYS_STAT_H=1", |
| "HAVE_STDLIB_H=1", |
| "HAVE_STRING_H=1", |
| "HAVE_MEMORY_H=1", |
| "HAVE_STRINGS_H=1", |
| "HAVE_INTTYPES_H=1", |
| "HAVE_PTHREAD=1", |
| "HAVE_STDINT_H=1", |
| "HAVE_STRUCT_TIMESPEC=1", |
| "HAVE_TIMESPEC_GET=1", |
| "HAVE_UNISTD_H=1", |
| "HAVE_DLFCN_H=1", |
| "YYTEXT_POINTER=1", |
| "HAVE___BUILTIN_BSWAP32=1", |
| "HAVE___BUILTIN_BSWAP64=1", |
| "HAVE___BUILTIN_CLZ=1", |
| "HAVE___BUILTIN_CLZLL=1", |
| "HAVE___BUILTIN_CTZ=1", |
| "HAVE___BUILTIN_EXPECT=1", |
| "HAVE___BUILTIN_FFS=1", |
| "HAVE___BUILTIN_FFSLL=1", |
| "HAVE___BUILTIN_POPCOUNT=1", |
| "HAVE___BUILTIN_POPCOUNTLL=1", |
| "HAVE___BUILTIN_UNREACHABLE=1", |
| "HAVE_FUNC_ATTRIBUTE_CONST=1", |
| "HAVE_FUNC_ATTRIBUTE_FLATTEN=1", |
| "HAVE_FUNC_ATTRIBUTE_FORMAT=1", |
| "HAVE_FUNC_ATTRIBUTE_MALLOC=1", |
| "HAVE_FUNC_ATTRIBUTE_PACKED=1", |
| "HAVE_FUNC_ATTRIBUTE_PURE=1", |
| "HAVE_FUNC_ATTRIBUTE_UNUSED=1", |
| "HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1", |
| "HAVE_FUNC_ATTRIBUTE_NORETURN=1", |
| "HAVE_DLADDR=1", |
| "HAVE_DL_ITERATE_PHDR=1", |
| "HAVE_CLOCK_GETTIME=1", |
| "PACKAGE_NAME=\"Mesa\" ", |
| "PACKAGE_TARNAME=\"mesa\" ", |
| "PACKAGE_VERSION=\"$mesa_version\" ", |
| "PACKAGE_STRING=\"Mesa $mesa_version\" ", |
| "PACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\" ", |
| "PACKAGE_URL=\"\" ", |
| "PACKAGE=\"mesa\" ", |
| "VERSION=\"$mesa_version\"", |
| "_DEFAULT_SOURCE", |
| "_GNU_SOURCE=1", |
| ] |
| |
| if (current_os == "linux") { |
| defines += [ |
| "HAVE_LINUX_FUTEX_H", |
| ] |
| } |
| |
| if (is_debug) { |
| defines += [ "DEBUG=1" ] |
| } |
| |
| # TODO(fxbug.dev/42077149) fix these warnings and remove the -Wno* |
| cflags = [ |
| "-Wno-missing-field-initializers", |
| "-Wno-initializer-overrides", |
| "-Wno-sign-compare", |
| "-Wno-overloaded-virtual", |
| "-Wno-absolute-value", |
| "-Wno-missing-braces", |
| "-Wno-unused-function", |
| "-Wno-mismatched-tags", |
| "-Wno-enum-conversion", |
| "-Wno-implicit-fallthrough", |
| "-Wno-unused-variable", |
| "-Wno-unused-private-field", |
| "-Wno-sometimes-uninitialized", |
| "-Wno-implicit-int-float-conversion", |
| "-Wno-incompatible-pointer-types-discards-qualifiers", |
| "-Wno-unused-label", |
| "-Wno-switch", |
| "-Wno-gnu-variable-sized-type-not-at-end", |
| "-Wno-extra-semi", |
| "-Wno-newline-eof", |
| "-Wno-tautological-overlap-compare", |
| "-Wno-tautological-constant-out-of-range-compare", |
| "-Wno-unknown-pragmas", |
| "-Wno-int-in-bool-context", |
| "-Wno-conversion", |
| "-Wno-deprecated-anon-enum-enum-conversion", |
| # TODO(fxbug.dev/42055484): Fix the warning below and remove -Wno-deprecated-builtins: |
| # src/compiler/glsl/list.h:58:4: error: builtin __has_trivial_destructor is deprecated. |
| "-Wno-unknown-warning-option", |
| "-Wno-deprecated-builtins", |
| "-Wno-ignored-qualifiers", |
| ] |
| |
| # Present in the meson build |
| cflags_c = [ |
| "-Werror=missing-prototypes", |
| "-Werror=int-conversion", |
| ] |
| } |
| |
| config("sha1_config") { |
| include_dirs = [ "$target_gen_dir" ] |
| } |
| |
| if (submodules) { |
| mesa_git_link_path_list = |
| read_file("../.git", "list lines") |
| mesa_git_link_path = mesa_git_link_path_list[0] |
| mesa_relative_git_dir_split = string_split(mesa_git_link_path) |
| mesa_relative_git_dir = mesa_relative_git_dir_split[1] |
| mesa_git_head = |
| "../${mesa_relative_git_dir}/HEAD" |
| } else { |
| mesa_git_head = "../.git/HEAD" |
| } |
| |
| |
| mesa_python_action("sha1") { |
| output_name = "git_sha1.h" |
| outputs = [ "$target_gen_dir/$output_name" ] |
| |
| script = "$mesa_build_root/bin/git_sha1_gen.py" |
| args = [ |
| "--output", |
| rebase_path("$target_gen_dir/$output_name", root_build_dir), |
| ] |
| |
| # Ensure that this action reruns when git HEAD moves |
| inputs = [ mesa_git_head ] |
| |
| public_configs = [ ":sha1_config" ] |
| } |