Skip implicit link info for multiple OS X archs

Implicit link information contains architecture-specific libraries and
directories.  The link information cannot be explicitly specified safely
when CMAKE_OSX_ARCHITECTURES contains more than one architecture.

As a result, we currently cannot support mixed-language C++/Fortran
targets and OS X universal binaries simultaneously.  In order to avoid
conflicts for simple C/C++ cases, we now simply skip detection of
implicit link information in this case.
This commit is contained in:
Brad King 2009-09-22 16:02:39 -04:00
parent fe57e7252f
commit 5195a664b9
1 changed files with 6 additions and 2 deletions

View File

@ -45,10 +45,14 @@ FUNCTION(CMAKE_DETERMINE_COMPILER_ABI lang src)
ENDIF(ABI_NAME)
# Parse implicit linker information for this language, if available.
# Skip this with Xcode for now.
SET(implicit_dirs "")
SET(implicit_libs "")
IF(CMAKE_${lang}_VERBOSE_FLAG AND NOT "${CMAKE_GENERATOR}" MATCHES Xcode)
IF(CMAKE_${lang}_VERBOSE_FLAG
# Implicit link information cannot be used explicitly for
# multiple OS X architectures, so we skip it.
AND NOT "${CMAKE_OSX_ARCHITECTURES}" MATCHES ";"
# Skip this with Xcode for now.
AND NOT "${CMAKE_GENERATOR}" MATCHES Xcode)
CMAKE_PARSE_IMPLICIT_LINK_INFO("${OUTPUT}" implicit_libs implicit_dirs)
ENDIF()
SET(CMAKE_${lang}_IMPLICIT_LINK_LIBRARIES "${implicit_libs}" PARENT_SCOPE)