[Cmake-commits] CMake branch, next, updated. v3.5.0-539-ga27d069

Brad King brad.king at kitware.com
Fri Mar 18 11:13:18 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  a27d069287eb0ed75c64ba0b7f9a8f393fecfa10 (commit)
       via  d84ba668d7dd77ac38b3795f92e4ef0f894c696e (commit)
      from  8628ae30966f971b86e10abb729224ee9ad2c307 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a27d069287eb0ed75c64ba0b7f9a8f393fecfa10
commit a27d069287eb0ed75c64ba0b7f9a8f393fecfa10
Merge: 8628ae3 d84ba66
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Mar 18 11:13:17 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Mar 18 11:13:17 2016 -0400

    Merge topic 'cpack-osx-optional-CoreServices' into next
    
    d84ba668 CPack: Avoid using OS X CoreServices if compiler fails on header (#16021)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d84ba668d7dd77ac38b3795f92e4ef0f894c696e
commit d84ba668d7dd77ac38b3795f92e4ef0f894c696e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Mar 18 08:49:02 2016 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Mar 18 11:12:51 2016 -0400

    CPack: Avoid using OS X CoreServices if compiler fails on header (#16021)
    
    Some compilers on OS X report errors in the CoreServices framework headers.
    Check for support of the header ahead of time and compile the relevant code
    only when the header is available.

diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index 5b67a2d..4ef0e80 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -728,7 +728,20 @@ endif()
 add_library(CPackLib ${CPACK_SRCS})
 target_link_libraries(CPackLib CMakeLib)
 if(APPLE)
-  target_link_libraries(CPackLib "-framework CoreServices")
+  # Some compilers produce errors in the CoreServices framework headers.
+  # Ideally such errors should be fixed by either the compiler vendor
+  # or the framework source, but we try to workaround it and build anyway.
+  # If it does not work, build with reduced functionality and warn.
+  check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
+  if(HAVE_CoreServices)
+    set_property(SOURCE CPack/cmCPackDragNDropGenerator.cxx PROPERTY COMPILE_DEFINITIONS HAVE_CoreServices)
+    target_link_libraries(CPackLib "-framework CoreServices")
+  else()
+    message(WARNING "This compiler does not appear to support\n"
+      "  #include <CoreServices/CoreServices.h>\n"
+      "Some CPack functionality may be limited.\n"
+      "See CMakeFiles/CMakeError.log for details of the failure.")
+  endif()
 endif()
 
 if(APPLE)
diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx
index 521b395..d6de77d 100644
--- a/Source/CPack/cmCPackDragNDropGenerator.cxx
+++ b/Source/CPack/cmCPackDragNDropGenerator.cxx
@@ -22,10 +22,12 @@
 
 #include <CoreFoundation/CoreFoundation.h>
 
+#ifdef HAVE_CoreServices
 // 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>
+#endif
 
 static const char* SLAHeader =
 "data 'LPic' (5000) {\n"
@@ -643,9 +645,11 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
                            kCFStringEncodingMacRoman);
         LangCode lang = 0;
         RegionCode region = 0;
+#ifdef HAVE_CoreServices
         OSStatus err = LocaleStringToLangAndRegionCodes(iso_language_cstr,
                                                         &lang, &region);
         if (err != noErr)
+#endif
           {
           cmCPackLogger(cmCPackLog::LOG_ERROR,
             "No language/region code available for " << iso_language_cstr
@@ -653,10 +657,12 @@ int cmCPackDragNDropGenerator::CreateDMG(const std::string& src_dir,
           free(iso_language_cstr);
           return 0;
           }
+#ifdef HAVE_CoreServices
         free(iso_language_cstr);
         header_data.push_back(region);
         header_data.push_back(i);
         header_data.push_back(0);
+#endif
         }
       ofs << "data 'LPic' (5000) {\n";
       ofs << std::hex << std::uppercase << std::setfill('0');

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list