ICU-22072 Update Darwin Specific Macros

* Update `U_PF_IPHONE` to be 0 when building for macOS/macCatalyst.
* add macro definition for `attribute((visibility("hidden")))` for cases
  where internal structs exist within exposed classes.
This commit is contained in:
Cyndy Ishida 2022-06-23 06:50:39 -07:00 committed by Peter Edberg
parent bebcd6b8bb
commit 48124d1706
4 changed files with 14 additions and 6 deletions

View file

@ -168,7 +168,7 @@
# define U_PLATFORM U_PF_LINUX
#elif defined(__APPLE__) && defined(__MACH__)
# include <TargetConditionals.h>
# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE /* variant of TARGET_OS_MAC */
# if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && (defined(TARGET_OS_MACCATALYST) && !TARGET_OS_MACCATALYST) /* variant of TARGET_OS_MAC */
# define U_PLATFORM U_PF_IPHONE
# else
# define U_PLATFORM U_PF_DARWIN
@ -847,6 +847,14 @@ namespace std {
# define U_IMPORT
#endif
#ifdef U_HIDDEN
/* Use the predefined value. */
#elif defined(__GNUC__)
# define U_HIDDEN __attribute__((visibility("hidden")))
#else
# define U_HIDDEN
#endif
/**
* \def U_CALLCONV
* Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary

View file

@ -343,7 +343,7 @@ private:
/**
* Internal struct used to load resource bundle data.
*/
struct DateIntervalSink;
struct U_HIDDEN DateIntervalSink;
/**
* Following is for saving the interval patterns.

View file

@ -658,9 +658,9 @@ private:
static void U_CALLCONV loadAllowedHourFormatsData(UErrorCode &status);
void getAllowedHourFormats(const Locale &locale, UErrorCode &status);
struct AppendItemFormatsSink;
struct AppendItemNamesSink;
struct AvailableFormatsSink;
struct U_HIDDEN AppendItemFormatsSink;
struct U_HIDDEN AppendItemNamesSink;
struct U_HIDDEN AvailableFormatsSink;
} ;// end class DateTimePatternGenerator
U_NAMESPACE_END

View file

@ -268,7 +268,7 @@ class U_I18N_API ListFormatter : public UObject{
static void initializeHash(UErrorCode& errorCode);
static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
struct ListPatternsSink;
struct U_HIDDEN ListPatternsSink;
static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
ListFormatter() = delete;