2019-11-01 00:37:12 +00:00
|
|
|
# Copyright 2019 The Pigweed Authors
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
|
|
# use this file except in compliance with the License. You may obtain a copy of
|
|
|
|
# the License at
|
|
|
|
#
|
|
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
# License for the specific language governing permissions and limitations under
|
|
|
|
# the License.
|
|
|
|
|
|
|
|
# Standard compiler flags to reduce output binary size.
|
|
|
|
config("reduced_size") {
|
|
|
|
cflags = [
|
|
|
|
"-fno-common",
|
|
|
|
"-fno-exceptions",
|
|
|
|
"-ffunction-sections",
|
|
|
|
"-fdata-sections",
|
|
|
|
]
|
|
|
|
cflags_cc = [ "-fno-rtti" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
config("strict_warnings") {
|
|
|
|
cflags = [
|
|
|
|
"-Wall",
|
|
|
|
"-Wextra",
|
2019-11-05 18:29:26 +00:00
|
|
|
|
2019-11-07 01:17:45 +00:00
|
|
|
# Make all warnings errors, except for the exemptions below.
|
|
|
|
"-Werror",
|
|
|
|
"-Wno-error=cpp", # preprocessor #warning statement
|
|
|
|
"-Wno-error=deprecated-declarations", # [[deprecated]] attribute
|
2019-11-01 00:37:12 +00:00
|
|
|
]
|
2019-12-06 18:06:13 +00:00
|
|
|
cflags_cc = [ "-Wnon-virtual-dtor" ]
|
2019-11-01 00:37:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
config("cpp17") {
|
2019-11-07 01:17:45 +00:00
|
|
|
cflags_cc = [
|
|
|
|
"-std=c++17",
|
|
|
|
|
|
|
|
# Allow uses of the register keyword, which may appear in C headers.
|
|
|
|
"-Wno-register",
|
|
|
|
]
|
2019-11-01 00:37:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# Default C++ version for Pigweed modules.
|
|
|
|
config("pw_default_cpp") {
|
|
|
|
configs = [ ":cpp17" ]
|
|
|
|
}
|