CMake/Modules/Platform
Brad King cc676c3a08 OS X: Detect implicit linker framework search paths
Previously we hard-coded a list of implicit framework directories but
did not account for CMAKE_OSX_SYSROOT or for changes to the list across
OS X versions.  Instead we should automatically detect the framework
directories for the active toolchain.

The parent commit added the "-Wl,-v" option to ask "ld" to print its
implicit directories.  It displays a block such as:

 Framework search paths:
	/...

Parse this block to extract the list of framework directories.

Detection may fail on toolchains that do not list their framework
directories, such as older OS X linkers.  Always treat the paths

 <sdk>/Library/Frameworks
 <sdk>/System/Library/Frameworks
 <sdk>/Network/Library/Frameworks # Older OS X only
 /System/Library/Frameworks

as implicit.  Note that /System/Library/Frameworks should always be
considered implicit so that frameworks CMake finds there will not
override the SDK copies.
2012-12-11 15:15:52 -05:00
..
AIX-GNU-ASM.cmake Add ASM platform information for GNU compiler on AIX (#13390) 2012-07-10 15:18:55 -04:00
AIX-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
AIX-GNU.cmake AIX-GNU: Link shared libs with -brtl,-bnoipath (#13352) 2012-07-09 17:18:41 -04:00
AIX-VisualAge-C.cmake
AIX-VisualAge-CXX.cmake
AIX-VisualAge-Fortran.cmake XL: Fix old VisualAge branding of Fortran compiler 2011-08-02 17:26:29 -04:00
AIX-XL-ASM.cmake Add ASM platform information for XL compiler on AIX 2011-03-02 13:48:04 -05:00
AIX-XL-C.cmake Factor AIX and XL compiler flags into common module 2011-03-02 11:20:50 -05:00
AIX-XL-CXX.cmake Factor AIX and XL compiler flags into common module 2011-03-02 11:20:50 -05:00
AIX-XL-Fortran.cmake Factor AIX and XL compiler flags into common module 2011-03-02 11:20:50 -05:00
AIX-XL.cmake Move RPATH flags to AIX per-compiler information files 2011-03-02 11:21:54 -05:00
AIX.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
BSDOS.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
BeOS.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
BlueGeneL.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
BlueGeneP-base.cmake Add platform variables for position independent code flags 2012-06-12 15:37:53 -04:00
BlueGeneP-dynamic-GNU-C.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic-GNU-CXX.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic-GNU-Fortran.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic-XL-C.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic-XL-CXX.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic-XL-Fortran.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-dynamic.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-GNU-C.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-GNU-CXX.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-GNU-Fortran.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-XL-C.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-XL-CXX.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static-XL-Fortran.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
BlueGeneP-static.cmake Add platform files for BlueGene/P systems 2010-08-13 12:17:57 -04:00
CYGWIN-CXX.cmake Prefer generic system compilers by default for C, C++, and Fortran 2012-08-02 13:26:01 -04:00
CYGWIN-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
CYGWIN-GNU.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
CYGWIN-windres.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
CYGWIN.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Catamount.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Darwin-Absoft-Fortran.cmake Absoft: Detect implicit link libraries on Linux and Mac 2011-05-20 08:57:51 -04:00
Darwin-CXX.cmake Prefer generic system compilers by default for C, C++, and Fortran 2012-08-02 13:26:01 -04:00
Darwin-Clang-C.cmake OS X: Add platform-specific Clang compiler info files (#13536) 2012-09-17 15:36:41 -04:00
Darwin-Clang-CXX.cmake OS X: Add platform-specific Clang compiler info files (#13536) 2012-09-17 15:36:41 -04:00
Darwin-Clang.cmake OS X: Detect implicit link directories on modern toolchains 2012-12-11 15:15:51 -05:00
Darwin-GNU-C.cmake OS X: Always generate -isysroot if any SDK is in use 2012-09-21 08:53:42 -04:00
Darwin-GNU-CXX.cmake OS X: Always generate -isysroot if any SDK is in use 2012-09-21 08:53:42 -04:00
Darwin-GNU-Fortran.cmake Fix OS X dylib and module GNU flags 2009-12-02 15:09:03 -05:00
Darwin-GNU.cmake OS X: Detect implicit link directories on modern toolchains 2012-12-11 15:15:51 -05:00
Darwin-NAG-Fortran.cmake Add NAG Fortran compiler information files 2010-12-09 18:12:34 -05:00
Darwin-VisualAge-C.cmake
Darwin-VisualAge-CXX.cmake
Darwin-XL-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Darwin-XL-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Darwin-icc.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Darwin-icpc.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Darwin.cmake OS X: Detect implicit linker framework search paths 2012-12-11 15:15:52 -05:00
DragonFly.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
FreeBSD.cmake BSD: Do not require dlfcn.h to build shared libs (#13573) 2012-10-05 10:08:28 -04:00
GNU.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
GNUtoMS_lib.bat.in Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
GNUtoMS_lib.cmake Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
Generic-ADSP-ASM.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Generic-ADSP-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Generic-ADSP-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Generic-ADSP-Common.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Generic-SDCC-C.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Generic.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
HP-UX-GNU-C.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU-Fortran.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
HP-UX-GNU.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
HP-UX-HP-ASM.cmake HP: Drive shared library linking with compiler front end 2011-12-14 09:32:27 -05:00
HP-UX-HP-C.cmake HP: Drive shared library linking with compiler front end 2011-12-14 09:32:27 -05:00
HP-UX-HP-CXX.cmake HP: Drive shared library linking with compiler front end 2011-12-14 09:32:27 -05:00
HP-UX-HP-Fortran.cmake HP: Drive shared library linking with compiler front end 2011-12-14 09:32:27 -05:00
HP-UX-HP.cmake Add platform variables for position independent code flags 2012-06-12 15:37:53 -04:00
HP-UX.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Haiku.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
IRIX.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
IRIX64.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Linux-Absoft-Fortran.cmake Absoft: Detect implicit link libraries on Linux and Mac 2011-05-20 08:57:51 -04:00
Linux-CXX.cmake Prefer generic system compilers by default for C, C++, and Fortran 2012-08-02 13:26:01 -04:00
Linux-Clang-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-Clang-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-GNU-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-GNU-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-GNU-Fortran.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-GNU.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
Linux-Intel-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-Intel-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-Intel-Fortran.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-Intel.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Linux-NAG-Fortran.cmake Add NAG Fortran compiler information files 2010-12-09 18:12:34 -05:00
Linux-PGI-C.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI-CXX.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI-Fortran.cmake Generalize support for Portland Group Compiler 2009-12-04 10:21:57 -05:00
Linux-PGI.cmake Add platform variables for position independent code flags 2012-06-12 15:37:53 -04:00
Linux-PathScale-C.cmake Add PathScale shared library flags on Linux 2010-01-21 09:09:27 -05:00
Linux-PathScale-CXX.cmake Add PathScale shared library flags on Linux 2010-01-21 09:09:27 -05:00
Linux-PathScale-Fortran.cmake Add PathScale shared library flags on Linux 2010-01-21 09:09:27 -05:00
Linux-PathScale.cmake Add platform variables for position independent code flags 2012-06-12 15:37:53 -04:00
Linux-SunPro-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-TinyCC-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-VisualAge-C.cmake
Linux-VisualAge-CXX.cmake
Linux-VisualAge-Fortran.cmake
Linux-XL-C.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-XL-CXX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-XL-Fortran.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux-como.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Linux.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
MP-RAS.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
NetBSD.cmake BSD: Do not require dlfcn.h to build shared libs (#13573) 2012-10-05 10:08:28 -04:00
OSF1.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
OpenBSD.cmake OpenBSD: Install shared libraries without executable permission 2012-12-04 08:25:33 -05:00
OpenVMS.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
QNX.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
RISCos.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
SCO_SV.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
SINIX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
SunOS-GNU-C.cmake Fix GNU C and Fortran flags on SunOS 2009-12-04 08:51:46 -05:00
SunOS-GNU-CXX.cmake Split GNU compiler information files 2009-12-02 09:52:00 -05:00
SunOS-GNU-Fortran.cmake Fix GNU C and Fortran flags on SunOS 2009-12-04 08:51:46 -05:00
SunOS-GNU.cmake Modules: Fix spelling 'To distributed' -> 'To distribute' 2010-08-09 08:48:31 -04:00
SunOS.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Tru64.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
ULTRIX.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
UNIX_SV.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
UnixPaths.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
UnixWare.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Windows-Borland-C.cmake Recognize Embarcadero compiler (#12604) 2012-02-20 10:09:44 -05:00
Windows-Borland-CXX.cmake Recognize Embarcadero compiler (#12604) 2012-02-20 10:09:44 -05:00
Windows-CXX.cmake Prefer generic system compilers by default for C, C++, and Fortran 2012-08-02 13:26:01 -04:00
Windows-Embarcadero-C.cmake Recognize Embarcadero compiler (#12604) 2012-02-20 10:09:44 -05:00
Windows-Embarcadero-CXX.cmake Recognize Embarcadero compiler (#12604) 2012-02-20 10:09:44 -05:00
Windows-Embarcadero.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Windows-G95-Fortran.cmake Teach CMake how to work with G95 on mingw. 2010-03-23 11:32:40 -04:00
Windows-GNU-C-ABI.cmake Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
Windows-GNU-C.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-GNU-CXX-ABI.cmake Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
Windows-GNU-CXX.cmake Modernize GNU compiler info on Windows 2009-12-02 11:27:59 -05:00
Windows-GNU-Fortran-ABI.cmake Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib 2011-12-05 18:13:49 -05:00
Windows-GNU-Fortran.cmake Fortran: Detect pointer size in gfortran on MinGW 2011-12-05 16:32:29 -05:00
Windows-GNU.cmake Find mingw's windres also when Unix Makefiles are used 2012-08-27 16:54:21 +02:00
Windows-Intel-ASM.cmake Add support for the Intel compiler used for ASM under Windows 2011-03-02 16:46:25 +01:00
Windows-Intel-C.cmake Modernize Intel compiler info on Windows 2010-12-16 09:50:05 -05:00
Windows-Intel-CXX.cmake Intel: On Windows use /EHsc instead of deprecated /GX (#13163) 2012-04-24 09:00:37 -04:00
Windows-Intel-Fortran.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Windows-Intel.cmake CMake: Remove "/STACK:10000000" from default linker flags (#12437) 2012-11-23 11:41:58 -05:00
Windows-MSVC-C.cmake Modernize MSVC compiler information files 2012-08-30 09:42:49 -04:00
Windows-MSVC-CXX.cmake Modernize MSVC compiler information files 2012-08-30 09:42:49 -04:00
Windows-MSVC.cmake CMake: Remove "/STACK:10000000" from default linker flags (#12437) 2012-11-23 11:41:58 -05:00
Windows-NMcl.cmake
Windows-df.cmake Ninja: move <OBJECTS> in front of the first linker option 2012-10-01 17:06:38 -04:00
Windows-wcl386.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
Windows-windres.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Windows.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
WindowsCE-MSVC-C.cmake Add WindowsCE platform information files 2012-09-05 07:38:45 -04:00
WindowsCE-MSVC-CXX.cmake Add WindowsCE platform information files 2012-09-05 07:38:45 -04:00
WindowsCE-MSVC.cmake Add WindowsCE platform information files 2012-09-05 07:38:45 -04:00
WindowsCE.cmake Add WindowsCE platform information files 2012-09-05 07:38:45 -04:00
WindowsPaths.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
Xenix.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
eCos.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
gas.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
kFreeBSD.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -04:00
syllable.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00