blob: 39cfd09ea2b294c06325fe93975cc354557aef8f [file] [log] [blame] [edit]
# Copyright 2021 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.
import("//build_overrides/pigweed.gni")
import("$dir_pw_build/target_types.gni")
import("micro_ecc.gni")
if (dir_pw_third_party_micro_ecc != "") {
config("public_config") {
include_dirs = [ "$dir_pw_third_party_micro_ecc/" ]
}
config("internal_config") {
# Suppress all upstream introduced warnings.
cflags = [ "-w" ]
# Disabling point compression saves 200 bytes.
defines = [ "uECC_SUPPORT_COMPRESSED_POINT=0" ]
}
# Endianess is a public configuration for uECC as it determines how large
# integers are interpreted in uECC public APIs.
#
# Big endian is a lot more common and thus is recommended unless you are
# really resource-constrained or another uECC client expects little
# endian.
config("big_endian_config") {
defines = [ "uECC_VLI_NATIVE_LITTLE_ENDIAN=0" ]
}
# Little endian can reduce call stack usage in native little endian
# execution environments (as determined by processor state, memory
# access config etc.)
config("little_endian_config") {
defines = [ "uECC_VLI_NATIVE_LITTLE_ENDIAN=1" ]
}
pw_source_set("micro_ecc") {
public_configs = [
":big_endian_config",
":public_config",
]
configs = [ ":internal_config" ]
sources = [ "$dir_pw_third_party_micro_ecc/uECC.c" ]
}
pw_source_set("micro_ecc_little_endian") {
public_configs = [
":little_endian_config",
":public_config",
]
configs = [ ":internal_config" ]
sources = [ "$dir_pw_third_party_micro_ecc/uECC.c" ]
}
} else {
group("micro_ecc") {
}
}