[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, ®ion);
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