From 5255bbb7a5b690dc0dcefca5dd46dde11825a021 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexander=20K=C3=B6plinger?= Date: Wed, 4 Aug 2021 16:19:07 +0200 Subject: [PATCH] Fix build with Xcode 13 / MacOSX12.0.sdk (#56829) The macOS 12 SDK bundled in Xcode 13 seems to contain a subset of icu headers now which means we're finding utypes.h in `Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk/usr/include/unicode` now. When compiling System.Globalization.Native however we run into this error because ucurr.h isn't included in MacOSX12.0.sdk: ``` In file included from /Users/alexander/dev/runtime/src/libraries/Native/Unix/System.Globalization.Native/pal_casing.c:9: /Users/alexander/dev/runtime/src/libraries/Native/Unix/System.Globalization.Native/pal_icushim_internal.h:22:10: fatal error: 'unicode/ucurr.h' file not found #include ^~~~~~~~~~~~~~~~~ 1 error generated. ``` To workaround this check for ucurr.h in CMakeLists.txt instead so we continue to find ICU headers from Homebrew. --- .../Native/Unix/System.Globalization.Native/CMakeLists.txt | 8 ++++---- .../Native/Unix/System.Globalization.Native/configure.cmake | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt index 4682178..644d777 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt +++ b/src/libraries/Native/Unix/System.Globalization.Native/CMakeLists.txt @@ -19,9 +19,9 @@ if(CLR_CMAKE_TARGET_UNIX) set(ICU_HOMEBREW_INC_PATH "${brew_prefix}/opt/icu4c/include") endif() - find_path(UTYPES_H "unicode/utypes.h" PATHS ${ICU_HOMEBREW_INC_PATH}) - if(UTYPES_H STREQUAL UTYPES_H-NOTFOUND) - message(FATAL_ERROR "Cannot find utypes.h, try installing libicu-dev (or the appropriate package for your platform)") + find_path(UCURR_H "unicode/ucurr.h" PATHS ${ICU_HOMEBREW_INC_PATH}) + if(UCURR_H STREQUAL UCURR_H-NOTFOUND) + message(FATAL_ERROR "Cannot find ucurr.h, try installing libicu-dev (or the appropriate package for your platform)") return() endif() @@ -42,7 +42,7 @@ if(CLR_CMAKE_TARGET_UNIX) endif() endif() - include_directories(${UTYPES_H}) + include_directories(${UCURR_H}) endif() endif() diff --git a/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake b/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake index 73e47b0..fc00d10 100644 --- a/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake +++ b/src/libraries/Native/Unix/System.Globalization.Native/configure.cmake @@ -6,7 +6,7 @@ else() include(CheckSymbolExists) if (CLR_CMAKE_TARGET_UNIX) - set(CMAKE_REQUIRED_INCLUDES ${UTYPES_H} ${ICU_HOMEBREW_INC_PATH}) + set(CMAKE_REQUIRED_INCLUDES ${UCURR_H} ${ICU_HOMEBREW_INC_PATH}) CHECK_C_SOURCE_COMPILES(" #include -- 2.7.4