CMake/Modules/Platform
Brad King 42ba1b08f3 VS: Separate compiler and linker PDB files (#11899, #14062)
The MS tools create two types of PDB files as explained here:

 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.71%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.80%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.90%29.aspx
 http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.100%29.aspx

One is created by the compiler (/Fd) and the other by the linker (/pdb).
The two options should not specify the same file.  Split them up.

In the VS IDE generators, simply drop ProgramDataBaseFileName to
take the VS default "/Fd$(IntDir)vc$(PlatformToolsetVersion).pdb".

In the Makefile generators, set "/Fd" on the compile line to be
the directory containing object files (with a trailing slash the
compiler will add the "vc$(PlatformToolsetVersion).pdb" filename
automatically).  Drop the /Fd option from the exe link command
line and add "/pdb" instead (already done for dll linking).
Update these rules for both MSVC and Intel tools.

Drop support for PDB_OUTPUT_DIRECTORY and PDB_NAME in STATIC
libraries because the generated .pdb files are only from /Fd
and not real linker-generated .pdb files.  Update documentation to
clarify that the PDB_* properties are only for linker .pdb files.

This regresses the PDBDirectoryAndName test for STATIC libraries.
Since it is not clear at this time what should be done for STATIC
library .pdb files, comment out the relevant portion of the test
and leave a TODO comment.
2013-04-05 11:25:09 -04: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 Merge topic 'aix-shared-flags' 2013-03-12 13:47:04 -04:00
AIX-VisualAge-C.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
AIX-VisualAge-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
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 AIX: Do not use -brtl to create shared libraries (#13997) 2013-03-11 09:01:27 -04: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 Split XL compiler information files 2009-09-30 09:37:35 -04:00
Darwin-VisualAge-CXX.cmake Split XL compiler information files 2009-09-30 09:37:35 -04:00
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 Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
Linux-VisualAge-CXX.cmake Fix XL C++ compiler flags on Linux 2009-09-16 12:33:24 -04:00
Linux-VisualAge-Fortran.cmake Teach compiler id about VisualAge -> XL rebranding 2009-08-07 10:13:07 -04:00
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 Embarcadero: Fix default link stack/heap flags (#13912) 2013-02-13 13:35:25 -05: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 VS: Separate compiler and linker PDB files (#11899, #14062) 2013-04-05 11:25:09 -04: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 VS: Separate compiler and linker PDB files (#11899, #14062) 2013-04-05 11:25:09 -04:00
Windows-NMcl.cmake ENH: add platform file for bounds checker 2008-08-15 15:07:56 -04:00
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