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
AIX-GNU-CXX.cmake
AIX-GNU-Fortran.cmake
AIX-GNU.cmake Merge topic 'aix-shared-flags' 2013-03-12 13:47:04 -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 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
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
BSDOS.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
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
CYGWIN-GNU-CXX.cmake
CYGWIN-GNU-Fortran.cmake
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
Darwin-Absoft-Fortran.cmake Absoft: Detect implicit link libraries on Linux and Mac 2011-05-20 08:57:51 -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-CXX.cmake Prefer generic system compilers by default for C, C++, and Fortran 2012-08-02 13:26:01 -04: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
Darwin-GNU.cmake OS X: Detect implicit link directories on modern toolchains 2012-12-11 15:15:51 -05: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-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.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
eCos.cmake Remove CMake-language block-end command arguments 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
gas.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04: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-Common.cmake Remove CMake-language block-end command arguments 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-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
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
Haiku.cmake Remove CMake-language block-end command arguments 2012-08-13 14:19:16 -04:00
HP-UX-GNU-C.cmake
HP-UX-GNU-CXX.cmake
HP-UX-GNU-Fortran.cmake
HP-UX-GNU.cmake
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
IRIX64.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
kFreeBSD.cmake Convert CMake-language commands to lower case 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-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-como.cmake Convert CMake-language commands to lower case 2012-08-13 14:19:16 -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-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
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-PathScale-C.cmake
Linux-PathScale-CXX.cmake
Linux-PathScale-Fortran.cmake
Linux-PathScale.cmake Add platform variables for position independent code flags 2012-06-12 15:37:53 -04:00
Linux-PGI-C.cmake
Linux-PGI-CXX.cmake
Linux-PGI-Fortran.cmake
Linux-PGI.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.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
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
OSF1.cmake Remove CMake-language block-end command arguments 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
SunOS-GNU-CXX.cmake
SunOS-GNU-Fortran.cmake
SunOS-GNU.cmake
SunOS.cmake Remove CMake-language block-end command arguments 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
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-df.cmake Ninja: move <OBJECTS> in front of the first linker option 2012-10-01 17:06:38 -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
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
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
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
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