blob: edc8617f1e1faeb60044bf754311df42e507902a [file] [log] [blame]
# Copyright 2022 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Common compiler options."""
load(":includes.bzl", "CRASHPAD_COMPAT_INCLUDES_COPTS")
# Keep in sync with config("unicode") from Chromium's build/config/win/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/win/BUILD.gn;l=570;drc=804d5a91d49d0ad79d3d5529e6ba2610225cfe55
CRASHPAD_WINDOWS_UNICODE_COPTS = [
"-DUNICODE",
"-D_UNICODE",
]
# Keep in sync with config("winver") from Chromium's build/config/win/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/win/BUILD.gn;l=287;drc=804d5a91d49d0ad79d3d5529e6ba2610225cfe55
CRASHPAD_WINDOWS_WINVER_COPTS = [
"-DNTDDI_VERSION=NTDDI_WIN10_FE",
"-D_WIN32_WINNT=0x0A00",
"-DWINVER=0x0A00",
]
# Keep in sync with config("nominmax") from Chromium's build/config/win/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/win/BUILD.gn;l=592;drc=804d5a91d49d0ad79d3d5529e6ba2610225cfe55
CRASHPAD_WINDOWS_NOMINMAX_COPTS = [
"-DNOMINMAX",
]
# Keep in sync with config("lean_and_mean") from Chromium's build/config/win/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/win/BUILD.gn;l=582;drc=804d5a91d49d0ad79d3d5529e6ba2610225cfe55
CRASHPAD_WINDOWS_LEAN_AND_MEAN_COPTS = [
"-DWIN32_LEAN_AND_MEAN",
]
# Keep in sync with config("runtime_library") from Chromium's build/config/win/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/win/BUILD.gn;l=216;drc=804d5a91d49d0ad79d3d5529e6ba2610225cfe55
CRASHPAD_WINDOWS_RUNTIME_LIBRARY_COPTS = [
"-D__STD_C",
"-D_CRT_RAND_S",
"-D_CRT_SECURE_NO_DEPRECATE",
"-D_SCL_SECURE_NO_DEPRECATE",
"-D_ATL_NO_OPENGL",
"-D_WINDOWS",
"-DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS",
"-DPSAPI_VERSION=2",
"-DWIN32",
"-D_SECURE_ATL",
"-DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP",
]
# Keep in sync with config("no_exceptions") from Chromium's build/config/compiler/BUILD.gn:
# https://source.chromium.org/chromium/chromium/src/+/main:build/config/compiler/BUILD.gn;l=1862;drc=cf59bae1055c82caefd5c5f95250ee5f3b4ee05b
CRASHPAD_WINDOWS_NO_EXCEPTIONS_COPTS = [
"-D_HAS_EXCEPTIONS=0",
]
CRASHPAD_MINI_CHROMIUM_INCLUDES = [
"-Ithird_party/mini_chromium/mini_chromium",
]
WINDOWS_COPTS = CRASHPAD_MINI_CHROMIUM_INCLUDES + CRASHPAD_WINDOWS_UNICODE_COPTS + CRASHPAD_WINDOWS_WINVER_COPTS + CRASHPAD_WINDOWS_NOMINMAX_COPTS + CRASHPAD_WINDOWS_LEAN_AND_MEAN_COPTS + CRASHPAD_WINDOWS_RUNTIME_LIBRARY_COPTS + CRASHPAD_WINDOWS_NO_EXCEPTIONS_COPTS
DEFAULT_COPTS = CRASHPAD_MINI_CHROMIUM_INCLUDES + ["-Wa,--noexecstack", "-Wno-non-virtual-dtor"]
CRASHPAD_COMMON_COPTS_SELECTOR = {
"//conditions:default": DEFAULT_COPTS,
}
CRASHPAD_COMMON_COPTS = select(CRASHPAD_COMMON_COPTS_SELECTOR) + CRASHPAD_COMPAT_INCLUDES_COPTS