srctree

Robin Linden parent 08c391dc 6aa8524f
build: Fix warnings only being applied to C++ code

inlinesplit
.bazelrc added: 64, removed: 32, total 32
@@ -8,33 +8,37 @@ build:release -c opt
# =========================================================
 
build:gnulike --cxxopt='-std=c++2a'
build:gnulike --cxxopt='-Wall'
build:gnulike --cxxopt='-Wextra'
build:gnulike --cxxopt='-pedantic-errors'
build:gnulike --cxxopt='-Werror'
build:gnulike --cxxopt='-Wdouble-promotion'
build:gnulike --cxxopt='-Wformat=2'
build:gnulike --cxxopt='-Wmissing-declarations'
build:gnulike --copt='-Wall'
build:gnulike --copt='-Wextra'
build:gnulike --copt='-pedantic-errors'
build:gnulike --copt='-Werror'
build:gnulike --copt='-Wdouble-promotion'
build:gnulike --copt='-Wformat=2'
build:gnulike --copt='-Wmissing-declarations'
build:gnulike --copt='-Wnull-dereference'
build:gnulike --copt='-Wshadow'
build:gnulike --copt='-Wsign-compare'
build:gnulike --copt='-Wundef'
build:gnulike --copt='-fno-common'
build:gnulike --cxxopt='-Wnon-virtual-dtor'
build:gnulike --cxxopt='-Wnull-dereference'
build:gnulike --cxxopt='-Woverloaded-virtual'
build:gnulike --cxxopt='-Wshadow'
build:gnulike --cxxopt='-Wsign-compare'
build:gnulike --cxxopt='-Wundef'
build:gnulike --cxxopt='-fno-common'
build:gnulike --cxxopt='-Wno-missing-field-initializers' # Common idiom for zeroing members.
build:gnulike --copt='-Wno-missing-field-initializers' # Common idiom for zeroing members.
build:gnulike --per_file_copt='http:get@-Wno-sign-compare' # asio leaks this into our code.
build:gnulike --per_file_copt='http:get@-Wno-undef' # asio leaks this into our code.
build:gnulike --per_file_copt='http:get@-Wno-shadow' # asio leaks this into our code.
build:gnulike --per_file_copt='external/asio[:/]@-Wno-sign-compare'
build:gnulike --per_file_copt='external/asio[:/]@-Wno-undef'
build:gnulike --per_file_copt='external/boringssl[:/]@-Wno-overlength-strings'
build:gnulike --per_file_copt='external/boringssl[:/]@-Wno-unused-parameter'
build:gnulike --per_file_copt='external/fmt[:/]@-Wno-shadow' # Fixed in master, but not in 7.1.3
build:gnulike --per_file_copt='external/freetype2[:/]@-Wno-double-promotion'
build:gnulike --per_file_copt='external/freetype2[:/]@-Wno-unused-parameter'
build:gnulike --per_file_copt='external/imgui-sfml[:/]@-Wno-double-promotion'
build:gnulike --per_file_copt='external/imgui-sfml[:/]@-Wno-implicit-fallthrough'
build:gnulike --per_file_copt='external/imgui-sfml[:/]@-Wno-undef'
build:gnulike --per_file_copt='external/imgui-sfml[:/]@-Wno-unused-parameter'
build:gnulike --per_file_copt='external/imgui[:/]@-Wno-double-promotion'
build:gnulike --per_file_copt='external/libpng[:/]@-Wno-undef'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-double-promotion'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-implicit-fallthrough'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-missing-declarations'
@@ -42,15 +46,37 @@ build:gnulike --per_file_copt='external/sfml[:/]@-Wno-shadow'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-sign-compare'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-undef'
build:gnulike --per_file_copt='external/sfml[:/]@-Wno-unused-parameter'
build:gnulike --per_file_copt='external/udev-zero[:/]@-Wno-format-nonliteral'
build:gnulike --per_file_copt='external/udev-zero[:/]@-Wno-unused-parameter'
build:gnulike --per_file_copt='external/zlib[:/]@-Wno-format-nonliteral'
 
build:clang --config=gnulike
build:clang --per_file_copt='external/boringssl[:/]@-Wno-extra-semi'
build:clang --per_file_copt='external/boringssl[:/]@-Wno-gnu-binary-literal'
 
build:gcc --config=gnulike
build:gcc --per_file_copt='external/boringssl[:/]@-Wno-cast-function-type'
build:gcc --per_file_copt='external/boringssl[:/]@-Wno-pedantic'
build:gcc --per_file_copt='external/freetype2[:/]@-Wno-cast-function-type'
build:gcc --per_file_copt='external/freetype2[:/]@-Wno-implicit-fallthrough'
build:gcc --per_file_copt='external/zlib[:/]@-Wno-implicit-fallthrough'
 
build:msvc --enable_runfiles
build:msvc --cxxopt='/std:c++latest'
build:msvc --cxxopt='/W4' # More warnings.
build:msvc --cxxopt='/WX' # Treat warnings as errors.
build:msvc --cxxopt='/permissive-' # Conform to the standard.
build:msvc --copt='/W4' # More warnings.
build:msvc --copt='/WX' # Treat warnings as errors.
build:msvc --copt='/permissive-' # Conform to the standard.
build:msvc --per_file_copt='external/boringssl[:/]@/wd4100' # C4100: 'out_public_key': unreferenced formal parameter
build:msvc --per_file_copt='external/boringssl[:/]@/wd4127' # C4127: conditional expression is constant
build:msvc --per_file_copt='external/boringssl[:/]@/wd4244' # C4244: '=': conversion from 'unsigned int' to 'uint8_t', possible loss of data
build:msvc --per_file_copt='external/boringssl[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'int', possible loss of data
build:msvc --per_file_copt='external/boringssl[:/]@/wd4706' # C4706: assignment within conditional expression
build:msvc --per_file_copt='external/freetype2[:/]@/wd4018' # C4018: '>': signed/unsigned mismatch
build:msvc --per_file_copt='external/freetype2[:/]@/wd4100' # C4100: 'msg_tag': unreferenced formal parameter
build:msvc --per_file_copt='external/freetype2[:/]@/wd4244' # C4244: '=': conversion from '__int64' to 'FT_Int', possible loss of data
build:msvc --per_file_copt='external/freetype2[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'FT_ULong', possible loss of data
build:msvc --per_file_copt='external/freetype2[:/]@/wd4312' # C4312: 'type cast': conversion from 'unsigned long' to 'void *' of greater size
build:msvc --per_file_copt='external/freetype2[:/]@/wd4702' # C4702: unreachable code
build:msvc --per_file_copt='external/ftxui[:/]@/wd4005' # C4005: 'NOMINMAX': macro redefinition
build:msvc --per_file_copt='external/ftxui[:/]@/wd4244' # C4244: '=': conversion from 'int' to 'uint8_t', possible loss of data
build:msvc --per_file_copt='external/ftxui[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'int', possible loss of data
@@ -60,6 +86,11 @@ build:msvc --per_file_copt='external/sfml[:/]@/wd4244' # C4244: 'initializing':
build:msvc --per_file_copt='external/sfml[:/]@/wd4456' # C4456: declaration of 'i' hides previous local declaration
build:msvc --per_file_copt='external/sfml[:/]@/wd4701' # C4701: potentially uninitialized local variable 'shape' used
build:msvc --per_file_copt='external/sfml[:/]@/wd4703' # C4703: potentially uninitialized local pointer variable 'shape' used
build:msvc --per_file_copt='external/zlib[:/]@/wd4127' # C4127: conditional expression is constant
build:msvc --per_file_copt='external/zlib[:/]@/wd4131' # C4131: 'adler32_z': uses old-style declarator
build:msvc --per_file_copt='external/zlib[:/]@/wd4244' # C4244: '+=': conversion from 'int' to 'ush', possible loss of data
build:msvc --per_file_copt='external/zlib[:/]@/wd4245' # C4245: '=': conversion from 'int' to 'unsigned int', signed/unsigned mismatch
build:msvc --per_file_copt='external/zlib[:/]@/wd4267' # C4267: '=': conversion from 'size_t' to 'int', possible loss of data
 
# Special build options
# =========================================================
 
.bazelrc.local.example added: 64, removed: 32, total 32
@@ -7,7 +7,8 @@ build --config debug
# build --config release
 
# Choose a compiler
build --config gnulike # gcc/clang
build --config clang
# build --config gcc
# build --config msvc
 
# Other interesting build options
 
.github/workflows/ci.yaml added: 64, removed: 32, total 32
@@ -12,11 +12,11 @@ jobs:
echo "CXX=g++-10" >> $GITHUB_ENV
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.9.0/bazelisk-linux-amd64 --output-document=bazel
- name: Build
run: bazel build //... --config gnulike
run: bazel build //... --config gcc
- name: Test
run: bazel test //... --config gnulike
run: bazel test //... --config gcc
- name: Run
run: bazel run browser --config gnulike
run: bazel run browser --config gcc
 
linux-clang:
runs-on: ubuntu-20.04
@@ -30,11 +30,11 @@ jobs:
echo "CXX=clang++-10" >> $GITHUB_ENV
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.9.0/bazelisk-linux-amd64 --output-document=bazel
- name: Build
run: bazel build //... --config gnulike
run: bazel build //... --config clang
- name: Test
run: bazel test //... --config gnulike
run: bazel test //... --config clang
- name: Run
run: bazel run browser --config gnulike
run: bazel run browser --config clang
 
linux-clang-asan:
runs-on: ubuntu-20.04
@@ -48,11 +48,11 @@ jobs:
echo "CXX=clang++-10" >> $GITHUB_ENV
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.9.0/bazelisk-linux-amd64 --output-document=bazel
- name: Build
run: bazel build //... --config gnulike --config asan
run: bazel build //... --config clang --config asan
- name: Test
run: bazel test //... --config gnulike --config asan
run: bazel test //... --config clang --config asan
- name: Run
run: bazel run browser --config gnulike --config asan
run: bazel run browser --config clang --config asan
 
linux-clang-ubsan:
runs-on: ubuntu-20.04
@@ -66,11 +66,11 @@ jobs:
echo "CXX=clang++-10" >> $GITHUB_ENV
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.9.0/bazelisk-linux-amd64 --output-document=bazel
- name: Build
run: bazel build //... --config gnulike --config ubsan
run: bazel build //... --config clang --config ubsan
- name: Test
run: bazel test //... --config gnulike --config ubsan
run: bazel test //... --config clang --config ubsan
- name: Run
run: bazel run browser --config gnulike --config ubsan
run: bazel run browser --config clang --config ubsan
 
windows-msvc:
runs-on: windows-2019