# 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. import("//build_overrides/pi_pico.gni") import("//build_overrides/pigweed.gni") import("$dir_pw_build/target_types.gni") # TODO(amontanez): This can go away if the GN build can be upstreamed to the # Pi Pico repo. _CWD = "${PICO_SRC_DIR}/src/rp2_common/pico_stdio" import("${PICO_ROOT}/src/common/pico_stdlib/pico_stdio.gni") config("public_include_dirs") { include_dirs = [ "${_CWD}/include" ] defines = [ "${PICO_STDIO}=1" ] } config("printf_wrappers") { ldflags = [ "-Wl,--wrap=printf", "-Wl,--wrap=vprintf", "-Wl,--wrap=puts", "-Wl,--wrap=putchar", "-Wl,--wrap=getchar", ] } # TODO(amontanez): This is definitely a facade. For now, just have header and # header+impl build targets to simulate. pw_source_set("headers") { public_configs = [ ":public_include_dirs", "${PICO_ROOT}/gn:disable_warnings", ] public_deps = [ "${PICO_ROOT}/src/common/pico_base", "${PICO_ROOT}/src/rp2_common/pico_platform", ] public = [ "${_CWD}/include/pico/stdio.h", "${_CWD}/include/pico/stdio/driver.h", ] } pw_source_set("pico_stdio") { public_configs = [ "${PICO_ROOT}/gn:disable_warnings" ] all_dependent_configs = [ ":printf_wrappers" ] public_deps = [ ":headers" ] deps = [ "${PICO_ROOT}/src/common/pico_sync", "${PICO_ROOT}/src/common/pico_time", "${PICO_ROOT}/src/rp2_common/pico_printf", ] if (PICO_STDIO == ENUM_LIB_PICO_STDIO.UART) { deps += [ "${PICO_ROOT}/src/rp2_common/pico_stdio_uart" ] } else if (PICO_STDIO == ENUM_LIB_PICO_STDIO.USB) { deps += [ "${PICO_ROOT}/src/rp2_common/pico_stdio_usb" ] } else if (PICO_STDIO == ENUM_LIB_PICO_STDIO.SEMIHOSTING) { deps += [ "${PICO_ROOT}/src/rp2_common/pico_stdio_semihosting" ] } sources = [ "${_CWD}/stdio.c" ] # Due to disabling CRLF support. cflags = [ "-Wno-unused-parameter" ] }