@@ -22,84 +22,6 @@ build:linux --features=layering_check
build:linux --cxxopt='-std=c++20'
build:linux --cxxopt='-fno-rtti'
build:linux --copt='-Wall'
build:linux --copt='-Wextra'
build:linux --copt='-pedantic-errors'
build:linux --copt='-Werror'
build:linux --copt='-Wdouble-promotion'
build:linux --copt='-Wformat=2'
build:linux --copt='-Wmissing-declarations'
build:linux --copt='-Wnull-dereference'
build:linux --copt='-Wshadow'
build:linux --copt='-Wsign-compare'
build:linux --copt='-Wundef'
build:linux --copt='-fno-common'
build:linux --cxxopt='-Wnon-virtual-dtor'
build:linux --cxxopt='-Woverloaded-virtual'
build:linux --copt='-Wno-missing-field-initializers' # Common idiom for zeroing members.
build:linux --per_file_copt='gfx:sfml_canvas@-Wno-implicit-fallthrough' # sfml leaks this into our code.
build:linux --per_file_copt='net:socket@-Wno-nonnull' # asio leaks this into our code.
build:linux --per_file_copt='net:socket@-Wno-shadow' # asio leaks this into our code.
build:linux --per_file_copt='net:socket@-Wno-undef' # asio leaks this into our code.
build:linux --per_file_copt='external/asio[:/]@-Wno-sign-compare'
build:linux --per_file_copt='external/asio[:/]@-Wno-undef'
build:linux --per_file_copt='external/boringssl[:/]@-Wno-cast-function-type'
build:linux --per_file_copt='external/boringssl[:/]@-Wno-gnu-binary-literal'
build:linux --per_file_copt='external/boringssl[:/]@-Wno-overlength-strings'
build:linux --per_file_copt='external/boringssl[:/]@-Wno-pedantic'
build:linux --per_file_copt='external/boringssl[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/com_google_absl[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/com_google_absl[:/]@-Wno-format-nonliteral'
build:linux --per_file_copt='external/com_google_absl[:/]@-Wno-gcc-compat'
build:linux --per_file_copt='external/com_google_absl[:/]@-Wno-pedantic'
build:linux --per_file_copt='external/freetype2[:/]@-Wno-cast-function-type'
build:linux --per_file_copt='external/freetype2[:/]@-Wno-implicit-fallthrough'
build:linux --per_file_copt='external/freetype2[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/freetype2[:/]@-Wno-sometimes-uninitialized'
build:linux --per_file_copt='external/freetype2[:/]@-Wno-unused-but-set-variable'
build:linux --per_file_copt='external/ftxui[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/ftxui[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/glew[:/]@-Wno-strict-prototypes'
build:linux --per_file_copt='external/glew[:/]@-Wno-undef'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-empty-translation-unit'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-format-nonliteral'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-gnu-case-range'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-gnu-designator'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-pedantic'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-shadow'
build:linux --per_file_copt='external/honggfuzz[:/]@-Wno-undef'
build:linux --per_file_copt='external/imgui-sfml[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/imgui-sfml[:/]@-Wno-implicit-fallthrough'
build:linux --per_file_copt='external/imgui-sfml[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/imgui-sfml[:/]@-Wno-switch'
build:linux --per_file_copt='external/imgui[:/]@-Wno-deprecated-enum-enum-conversion'
build:linux --per_file_copt='external/imgui[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/libpng[:/]@-Wno-null-pointer-subtraction'
build:linux --per_file_copt='external/libpng[:/]@-Wno-undef'
build:linux --per_file_copt='external/libpng[:/]@-Wno-unused-but-set-variable'
build:linux --per_file_copt='external/rules_fuzzing[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/rules_fuzzing[:/]@-Wno-gcc-compat'
build:linux --per_file_copt='external/rules_fuzzing[:/]@-Wno-pedantic'
build:linux --per_file_copt='external/sfml[:/]@-Wno-double-promotion'
build:linux --per_file_copt='external/sfml[:/]@-Wno-implicit-fallthrough'
build:linux --per_file_copt='external/sfml[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/sfml[:/]@-Wno-shadow'
build:linux --per_file_copt='external/sfml[:/]@-Wno-sign-compare'
build:linux --per_file_copt='external/sfml[:/]@-Wno-undef'
build:linux --per_file_copt='external/sfml[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/udev-zero[:/]@-Wno-format-nonliteral'
build:linux --per_file_copt='external/udev-zero[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/xext[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/xext[:/]@-Wno-sign-compare'
build:linux --per_file_copt='external/xext[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/xrandr[:/]@-Wno-type-limits'
build:linux --per_file_copt='external/xrandr[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/xrender[:/]@-Wno-sign-compare'
build:linux --per_file_copt='external/xrender[:/]@-Wno-unused-parameter'
build:linux --per_file_copt='external/zlib[:/]@-Wno-format-nonliteral'
build:linux --per_file_copt='external/zlib[:/]@-Wno-implicit-fallthrough'
build:linux --per_file_copt='external/zlib[:/]@-Wno-missing-declarations'
build:linux --per_file_copt='external/zlib[:/]@-Wno-strict-prototypes'
# Force DWARF-4 format for debug symbols for compatibility with valgrind.
# See: https://bugs.kde.org/show_bug.cgi?id=452758
@@ -107,56 +29,19 @@ build:linux --copt='-gdwarf-4'
build:gcc10 --cxxopt='-fcoroutines'
build:gcc12 --per_file_copt='external/freetype2[:/]@-Wno-dangling-pointer'
build:gcc12 --per_file_copt='external/glew[:/]@-Wno-address'
build:gcc12 --per_file_copt='external/libpng[:/]@-Wno-maybe-uninitialized'
build:clang15 --per_file_copt='external/com_google_absl[:/]@-Wno-deprecated-builtins'
build:clang15 --per_file_copt='external/ftxui[:/]@-Wno-deprecated-declarations'
build:clang15 --per_file_copt='external/rules_fuzzing[:/]@-Wno-deprecated-builtins'
build:clang15 --per_file_copt='external/xext[:/]@-Wno-invalid-utf8'
build:clang15 --per_file_copt='external/zlib[:/]@-Wno-deprecated-non-prototype'
build:windows --enable_runfiles
build:windows --cxxopt='/std:c++20'
build:windows --cxxopt='/GR-' # Disable rtti.
build:windows --copt='/W4' # More warnings.
build:windows --copt='/WX' # Treat warnings as errors.
build:windows --copt='/permissive-' # Conform to the standard.
build:windows --copt='/Zc:__cplusplus' # Report the real supported C++ version, not just C++98.
build:windows --per_file_copt='external/boringssl[:/]@/wd4100' # C4100: 'out_public_key': unreferenced formal parameter
build:windows --per_file_copt='external/boringssl[:/]@/wd4127' # C4127: conditional expression is constant
build:windows --per_file_copt='external/boringssl[:/]@/wd4244' # C4244: '=': conversion from 'unsigned int' to 'uint8_t', possible loss of data
build:windows --per_file_copt='external/boringssl[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'int', possible loss of data
build:windows --per_file_copt='external/boringssl[:/]@/wd4706' # C4706: assignment within conditional expression
build:windows --per_file_copt='external/freetype2[:/]@/wd4018' # C4018: '>': signed/unsigned mismatch
build:windows --per_file_copt='external/freetype2[:/]@/wd4244' # C4244: '=': conversion from '__int64' to 'FT_Int', possible loss of data
build:windows --per_file_copt='external/freetype2[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'FT_ULong', possible loss of data
build:windows --per_file_copt='external/freetype2[:/]@/wd4701' # C4701: potentially uninitialized local variable 'cbox' used
build:windows --per_file_copt='external/ftxui[:/]@/wd4244' # C4244: '=': conversion from 'int' to 'uint8_t', possible loss of data
build:windows --per_file_copt='external/ftxui[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'int', possible loss of data
build:windows --per_file_copt='external/imgui-sfml[:/]@/wd4244' # C4244: 'argument': conversion from 'const unsigned int' to 'float', possible loss of data
build:windows --per_file_copt='external/sfml[:/]@/wd4100' # C4100: 'visible': unreferenced formal parameter
build:windows --per_file_copt='external/sfml[:/]@/wd4244' # C4244: 'initializing': conversion from 'sf::Uint32' to 'sf::Uint8', possible loss of data
build:windows --per_file_copt='external/sfml[:/]@/wd4456' # C4456: declaration of 'i' hides previous local declaration
build:windows --per_file_copt='external/sfml[:/]@/wd4701' # C4701: potentially uninitialized local variable 'shape' used
build:windows --per_file_copt='external/sfml[:/]@/wd4703' # C4703: potentially uninitialized local pointer variable 'shape' used
build:windows --per_file_copt='external/zlib[:/]@/wd4127' # C4127: conditional expression is constant
build:windows --per_file_copt='external/zlib[:/]@/wd4131' # C4131: 'adler32_z': uses old-style declarator
build:windows --per_file_copt='external/zlib[:/]@/wd4244' # C4244: '+=': conversion from 'int' to 'ush', possible loss of data
# Special build options
# =========================================================
# TODO(robinlinden): Our compilation flag management needs some cleanup for this
# to be well-supported.
# https://bazel.build/docs/windows#clang
build:clang-cl --extra_toolchains=@local_config_cc//:cc-toolchain-x64_windows-clang-cl
build:clang-cl --extra_execution_platforms=//:x64_windows-clang-cl
build:clang-cl --platforms=//:x64_windows-clang-cl
build:clang-cl --copt='-Wno-error'
build:clang-cl --copt='-Wno-missing-field-initializers'
build:clang-cl --copt='-Wno-unused-command-line-argument'
build:libc++ --cxxopt=-stdlib=libc++
build:libc++ --cxxopt=-fexperimental-library