# Copyright 2022 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.

load(
    "@pw_toolchain//cc_toolchain:defs.bzl",
    "pw_cc_flag_set",
    "pw_cc_toolchain",
)

licenses(["notice"])

cc_library(
    name = "newlib_os_interface_stubs",
    srcs = ["newlib_os_interface_stubs.cc"],
    linkopts = [
        "-Wl,--wrap=__sread",
        "-Wl,--wrap=__swrite",
        "-Wl,--wrap=__sseek",
        "-Wl,--wrap=__sclose",
    ],
    visibility = ["//visibility:public"],
    deps = ["//pw_assert"],
    alwayslink = 1,
)

cc_library(
    name = "arm_none_eabi_gcc_support",
    visibility = ["//visibility:public"],
    deps = [
        ":newlib_os_interface_stubs",
        "//pw_toolchain:wrap_abort",
    ],
)

# Although we use similar warnings for clang and arm_gcc, we don't have one
# centralized list, since we might want to use different warnings based on the
# compiler in the future.
pw_cc_flag_set(
    name = "warnings",
    actions = [
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
    ],
    flags = [
        "-Wall",
        "-Wextra",
        # Make all warnings errors, except for the exemptions below.
        "-Werror",
        "-Wno-error=cpp",  # preprocessor #warning statement
        "-Wno-error=deprecated-declarations",  # [[deprecated]] attribute
        "-Wno-psabi",  # Silence the really verbose ARM warnings.
    ],
)

pw_cc_flag_set(
    name = "thumb_abi",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mabi=aapcs",
        "-mthumb",
    ],
)

# This flag prevents Arm GCC from printing the resolved paths of symlinks,
# which prevents compilation actions from being hermetic. See
# https://github.com/bazelbuild/bazel/issues/21981 and
# https://pwbug.dev/319665090.
pw_cc_flag_set(
    name = "no_canonical_system_headers",
    actions = [
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
    ],
    flags = [
        "-fno-canonical-system-headers",
    ],
)

pw_cc_flag_set(
    name = "cortex_common",
    actions = [
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
    ],
    flags = [
        "-ffreestanding",
        "-specs=nano.specs",
        "-specs=nosys.specs",
    ],
)

pw_cc_flag_set(
    name = "cortex_common_link",
    actions = ["@pw_toolchain//actions:all_link_actions"],
    flags = [
        "-Wl,--gc-sections",
        "-specs=nano.specs",
        "-specs=nosys.specs",
        "-lstdc++",
        "-lnosys",
        "-lc",
        "-lm",
        "-Wl,--no-warn-rwx-segment",
    ],
)

pw_cc_flag_set(
    name = "cortex-m0",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m0",
        "-mfloat-abi=soft",
    ],
)

pw_cc_flag_set(
    name = "cortex-m0plus",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m0plus",
        "-mfloat-abi=soft",
    ],
)

pw_cc_flag_set(
    name = "cortex-m3",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m3",
        "-mfloat-abi=soft",
    ],
)

pw_cc_flag_set(
    name = "cortex-m4",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m4",
        "-mfloat-abi=hard",
    ],
)

pw_cc_flag_set(
    name = "cortex-m4+nofp",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m4+nofp",
        "-mfloat-abi=soft",
    ],
)

pw_cc_flag_set(
    name = "cortex-m7",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m7",
        "-mfloat-abi=hard",
    ],
)

pw_cc_flag_set(
    name = "cortex-m33",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m33",
        "-mfloat-abi=hard",
    ],
)

pw_cc_flag_set(
    name = "cortex-m33+nofp",
    actions = [
        "@pw_toolchain//actions:all_asm_actions",
        "@pw_toolchain//actions:all_c_compiler_actions",
        "@pw_toolchain//actions:all_cpp_compiler_actions",
        "@pw_toolchain//actions:all_link_actions",
    ],
    flags = [
        "-mcpu=cortex-m33+nofp",
        "-mfloat-abi=soft",
    ],
)

pw_cc_toolchain(
    name = "arm_gcc_toolchain_cortex-m",
    action_configs = [
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-ar",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-gcc",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-g++",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-gcov",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-ld",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-objcopy",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-objdump",
        "@gcc_arm_none_eabi_toolchain//:arm-none-eabi-strip",
    ],
    builtin_sysroot = "external/gcc_arm_none_eabi_toolchain",
    compiler = "gcc",
    cxx_builtin_include_directories = [
        "%sysroot%/arm-none-eabi/include/newlib-nano",
        "%sysroot%/arm-none-eabi/include/c++/12.2.1",
        "%sysroot%/arm-none-eabi/include/c++/12.2.1/arm-none-eabi",
        "%sysroot%/arm-none-eabi/include/c++/12.2.1/backward",
        "%sysroot%/lib/gcc/arm-none-eabi/12.2.1/include",
        "%sysroot%/lib/gcc/arm-none-eabi/12.2.1/include-fixed",
        "%sysroot%/arm-none-eabi/include",
    ],
    flag_sets = [
        "@pw_toolchain//flag_sets:o2",
        "@pw_toolchain//flag_sets:c++17",
        "@pw_toolchain//flag_sets:debugging",
        "@pw_toolchain//flag_sets:reduced_size",
        "@pw_toolchain//flag_sets:no_canonical_prefixes",
        "@pw_toolchain//flag_sets:no_rtti",
        "@pw_toolchain//flag_sets:wno_register",
        "@pw_toolchain//flag_sets:wnon_virtual_dtor",
    ] + select({
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0": [":cortex-m0"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0plus": [":cortex-m0plus"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m3": [":cortex-m3"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33": [":cortex-m33"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33+nofp": [":cortex-m33+nofp"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4": [":cortex-m4"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4+nofp": [":cortex-m4+nofp"],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m7": [":cortex-m7"],
        "@pw_toolchain//constraints/arm_mcpu:none": [],
    }) + [
        ":thumb_abi",
        ":cortex_common",
        ":cortex_common_link",
        ":no_canonical_system_headers",
        ":warnings",
    ],
    target_compatible_with = select({
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0plus": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m3": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33+nofp": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4+nofp": [],
        "@pw_toolchain//constraints/arm_mcpu:cortex-m7": [],
        "@pw_toolchain//constraints/arm_mcpu:none": ["@platforms//:incompatible"],
    }),
    toolchain_identifier = "arm-gcc-toolchain",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m0",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m0plus",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0plus",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m3",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m3",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m4",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m4+nofp",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m4+nofp",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m7",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m7",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m33",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

toolchain(
    name = "arm_gcc_cc_toolchain_cortex-m33+nofp",
    target_compatible_with = [
        "@pw_toolchain//constraints/arm_mcpu:cortex-m33+nofp",
    ],
    toolchain = ":arm_gcc_toolchain_cortex-m",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)
