瀏覽代碼

CPack: Avoid requiring Carbon framework on OS X (#16021)

In commit v3.5.0-rc1~232^2 (CPackDMG: Add support for multilingual SLAs,
2015-10-19) we added use of the Carbon framework in order to get access
to its APIs to convert Script Manager RegionCode values.  This is not
necessary.  Instead we can use CoreServices.

While at it, replace individual CoreFoundation includes with including
the entire framework, which is the correct way.
Sean McBride 9 年之前
父節點
當前提交
c718070c08
共有 2 個文件被更改,包括 7 次插入16 次删除
  1. 1 1
      Source/CMakeLists.txt
  2. 6 15
      Source/CPack/cmCPackDragNDropGenerator.cxx

+ 1 - 1
Source/CMakeLists.txt

@@ -728,7 +728,7 @@ endif()
 add_library(CPackLib ${CPACK_SRCS})
 target_link_libraries(CPackLib CMakeLib)
 if(APPLE)
-  target_link_libraries(CPackLib "-framework Carbon")
+  target_link_libraries(CPackLib "-framework CoreServices")
 endif()
 
 if(APPLE)

+ 6 - 15
Source/CPack/cmCPackDragNDropGenerator.cxx

@@ -20,21 +20,12 @@
 
 #include <iomanip>
 
-#include <CoreFoundation/CFBase.h>
-#include <CoreFoundation/CFString.h>
-#include <CoreFoundation/CFLocale.h>
-
-// The carbon framework is deprecated, but the Region codes it supplies are
-// needed for the LPic data structure used for generating multi-lingual SLAs.
-// There does not seem to be a replacement API for these region codes.
-#if defined(__clang__)
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wdeprecated-declarations"
-#endif
-#include <Carbon/Carbon.h>
-#if defined(__clang__)
-# pragma clang diagnostic pop
-#endif
+#include <CoreFoundation/CoreFoundation.h>
+
+// For the old LocaleStringToLangAndRegionCodes() function, to convert
+// to the old Script Manager RegionCode values needed for the 'LPic' data
+// structure used for generating multi-lingual SLAs.
+#include <CoreServices/CoreServices.h>
 
 static const char* SLAHeader =
 "data 'LPic' (5000) {\n"