diff --git a/CMakeLists.txt b/CMakeLists.txt index 59817b793..2a1d36fcc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,6 +156,10 @@ add_subdirectory(third_party/googletest EXCLUDE_FROM_ALL) if(CONFIG_ZEPHYR_PIGWEED_MODULE) add_subdirectory(zephyr) + if(CONFIG_PIGWEED_MINIMAL_CPP_STDLIB) + # Add include path to pw_minimal_cpp_stdlib to compiler + zephyr_compile_options(-isystem ${ZEPHYR_PIGWEED_MODULE_DIR}/pw_minimal_cpp_stdlib/public) + endif() else() add_subdirectory(targets/host EXCLUDE_FROM_ALL) diff --git a/Kconfig.zephyr b/Kconfig.zephyr index 5de67ec1f..d85771f68 100644 --- a/Kconfig.zephyr +++ b/Kconfig.zephyr @@ -13,7 +13,6 @@ # the License. config ZEPHYR_PIGWEED_MODULE - select REQUIRES_FULL_LIBCPP depends on STD_CPP17 || STD_CPP2A || STD_CPP20 || STD_CPP2B if ZEPHYR_PIGWEED_MODULE @@ -28,6 +27,7 @@ rsource "pw_function/Kconfig" rsource "pw_hdlc/Kconfig" rsource "pw_interrupt_zephyr/Kconfig" rsource "pw_log_zephyr/Kconfig" +rsource "pw_minimal_cpp_stdlib/Kconfig" rsource "pw_multisink/Kconfig" rsource "pw_polyfill/Kconfig" rsource "pw_preprocessor/Kconfig" diff --git a/pw_minimal_cpp_stdlib/Kconfig b/pw_minimal_cpp_stdlib/Kconfig new file mode 100644 index 000000000..8b9faf915 --- /dev/null +++ b/pw_minimal_cpp_stdlib/Kconfig @@ -0,0 +1,23 @@ +# Copyright 2023 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. + +config PIGWEED_MINIMAL_CPP_STDLIB + bool "Link pw_minimal_cpp_stdlib" + depends on STD_CPP17 || STD_CPP2A || STD_CPP20 || STD_CPP2B + help + Uses the pw_minimal_cpp_stdlib C++ standard library implementation. + The build must set `-nostdinc++` to exclude the toolchain's standard + library. This is NOT a full standard library implementation and may + only be used to build pw_tokenizer. + see :ref:'module-pw_minimal_cpp_stdlib' for module details.