From 52a55eba694b2544ab00dbdfa87f7c7607352b2b Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Fri, 25 Oct 2024 11:04:22 -0400 Subject: [PATCH] [libc++] Split Apple and Freebsd locale support into their own headers For now these headers don't provide much benefit, however as we refactor the locale base API they will provide a location to specify the localization interface on these platforms. --- libcxx/include/CMakeLists.txt | 2 ++ libcxx/include/__locale_dir/locale_base_api.h | 6 ++++-- .../include/__locale_dir/locale_base_api/apple.h | 15 +++++++++++++++ .../__locale_dir/locale_base_api/freebsd.h | 15 +++++++++++++++ libcxx/include/module.modulemap | 2 ++ 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 libcxx/include/__locale_dir/locale_base_api/apple.h create mode 100644 libcxx/include/__locale_dir/locale_base_api/freebsd.h diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt index 506ed721d0843..bb152af82cad5 100644 --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -492,8 +492,10 @@ set(files __locale __locale_dir/locale_base_api.h __locale_dir/locale_base_api/android.h + __locale_dir/locale_base_api/apple.h __locale_dir/locale_base_api/bsd_locale_defaults.h __locale_dir/locale_base_api/bsd_locale_fallbacks.h + __locale_dir/locale_base_api/freebsd.h __locale_dir/locale_base_api/fuchsia.h __locale_dir/locale_base_api/ibm.h __locale_dir/locale_base_api/musl.h diff --git a/libcxx/include/__locale_dir/locale_base_api.h b/libcxx/include/__locale_dir/locale_base_api.h index eab7fa8bf62fa..b6c80255b4d19 100644 --- a/libcxx/include/__locale_dir/locale_base_api.h +++ b/libcxx/include/__locale_dir/locale_base_api.h @@ -21,8 +21,10 @@ # include <__locale_dir/locale_base_api/fuchsia.h> #elif defined(__wasi__) || defined(_LIBCPP_HAS_MUSL_LIBC) # include <__locale_dir/locale_base_api/musl.h> -#elif defined(__APPLE__) || defined(__FreeBSD__) -# include +#elif defined(__APPLE__) +# include <__locale_dir/locale_base_api/apple.h> +#elif defined(__FreeBSD__) +# include <__locale_dir/locale_base_api/freebsd.h> #endif #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__locale_dir/locale_base_api/apple.h b/libcxx/include/__locale_dir/locale_base_api/apple.h new file mode 100644 index 0000000000000..ec5986c3a19f1 --- /dev/null +++ b/libcxx/include/__locale_dir/locale_base_api/apple.h @@ -0,0 +1,15 @@ +// -*- C++ -*- +//===-----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_APPLE_H +#define _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_APPLE_H + +#include + +#endif // _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_APPLE_H diff --git a/libcxx/include/__locale_dir/locale_base_api/freebsd.h b/libcxx/include/__locale_dir/locale_base_api/freebsd.h new file mode 100644 index 0000000000000..45ecf1977471b --- /dev/null +++ b/libcxx/include/__locale_dir/locale_base_api/freebsd.h @@ -0,0 +1,15 @@ +// -*- C++ -*- +//===-----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_FREEBSD_H +#define _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_FREEBSD_H + +#include + +#endif // _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_FREEBSD_H diff --git a/libcxx/include/module.modulemap b/libcxx/include/module.modulemap index f92e8bf5fc9ab..05d08cfbd7cd2 100644 --- a/libcxx/include/module.modulemap +++ b/libcxx/include/module.modulemap @@ -1446,8 +1446,10 @@ module std [system] { header "__locale_dir/locale_guard.h" module locale_base_api { textual header "__locale_dir/locale_base_api/android.h" + textual header "__locale_dir/locale_base_api/apple.h" textual header "__locale_dir/locale_base_api/bsd_locale_defaults.h" textual header "__locale_dir/locale_base_api/bsd_locale_fallbacks.h" + textual header "__locale_dir/locale_base_api/freebsd.h" textual header "__locale_dir/locale_base_api/fuchsia.h" textual header "__locale_dir/locale_base_api/ibm.h" textual header "__locale_dir/locale_base_api/musl.h"