[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2723-gd69b4b6

Brad King brad.king at kitware.com
Fri Apr 5 11:58:51 EDT 2013


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  d69b4b641bac5afb9b2468d61ee3ba9639e814c5 (commit)
       via  42ba1b08f3bd5909238f7c49c31532105ef2b0e7 (commit)
      from  ca72fce0b94fbb15ad1f4585acfa88c77e9af680 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d69b4b641bac5afb9b2468d61ee3ba9639e814c5
commit d69b4b641bac5afb9b2468d61ee3ba9639e814c5
Merge: ca72fce 42ba1b0
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Apr 5 11:58:49 2013 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Apr 5 11:58:49 2013 -0400

    Merge topic 'vs-no-compiler-pdb-setting' into next
    
    42ba1b0 VS: Separate compiler and linker PDB files (#11899, #14062)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42ba1b08f3bd5909238f7c49c31532105ef2b0e7
commit 42ba1b08f3bd5909238f7c49c31532105ef2b0e7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Apr 5 08:38:21 2013 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Apr 5 11:25:09 2013 -0400

    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.

diff --git a/Modules/Platform/Windows-Intel.cmake b/Modules/Platform/Windows-Intel.cmake
index 8a9d630..69a7f2f 100644
--- a/Modules/Platform/Windows-Intel.cmake
+++ b/Modules/Platform/Windows-Intel.cmake
@@ -81,7 +81,7 @@ endif()
 
 macro(__windows_compiler_intel lang)
   set(CMAKE_${lang}_COMPILE_OBJECT
-    "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo<OBJECT> <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} /Fo<OBJECT> /Fd<OBJECT_DIR>/ <DEFINES> <FLAGS> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
     "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <DEFINES> <FLAGS> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
@@ -91,7 +91,7 @@ macro(__windows_compiler_intel lang)
   set(CMAKE_${lang}_CREATE_SHARED_MODULE "${CMAKE_${lang}_CREATE_SHARED_LIBRARY}")
   set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link")
   set(CMAKE_${lang}_LINK_EXECUTABLE
-    "<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> <OBJECTS> /link /implib:<TARGET_IMPLIB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> <OBJECTS> /link /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_FLAGS_INIT "/DWIN32 /D_WINDOWS /W3 /Zm1000${_FLAGS_${lang}}")
   set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Od /RTC1")
   set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/DNDEBUG /MD /O1")
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index f9df6d8..28abf05 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -228,7 +228,7 @@ macro(__windows_compiler_msvc lang)
   set(CMAKE_${lang}_CREATE_STATIC_LIBRARY  "<CMAKE_LINKER> /lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
 
   set(CMAKE_${lang}_COMPILE_OBJECT
-    "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /Fo<OBJECT> /Fd<TARGET_PDB> -c <SOURCE>${CMAKE_END_TEMP_FILE}")
+    "<CMAKE_${lang}_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> /Fo<OBJECT> /Fd<OBJECT_DIR>/ -c <SOURCE>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE
     "<CMAKE_${lang}_COMPILER> > <PREPROCESSED_SOURCE> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO}${_COMPILE_${lang}} <FLAGS> <DEFINES> -E <SOURCE>${CMAKE_END_TEMP_FILE}")
   set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE
@@ -237,7 +237,7 @@ macro(__windows_compiler_msvc lang)
   set(CMAKE_${lang}_COMPILER_LINKER_OPTION_FLAG_EXECUTABLE "/link")
   set(CMAKE_${lang}_USE_RESPONSE_FILE_FOR_OBJECTS 1)
   set(CMAKE_${lang}_LINK_EXECUTABLE
-    "${_CMAKE_VS_LINK_EXE}<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> /Fd<TARGET_PDB> <OBJECTS> /link /implib:<TARGET_IMPLIB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
+    "${_CMAKE_VS_LINK_EXE}<CMAKE_${lang}_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /Fe<TARGET> <OBJECTS> /link /implib:<TARGET_IMPLIB> /pdb:<TARGET_PDB> /version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
 
   set(CMAKE_${lang}_FLAGS_INIT "${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS /W3${_FLAGS_${lang}}")
   set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od ${_RTC1}")
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 50509a0..964ee05 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -1252,7 +1252,7 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
 
   cm->DefineProperty
     ("CMAKE_PDB_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
-     "Where to put all the MS debug symbol files.",
+     "Where to put all the MS debug symbol files from linker.",
      "This variable is used to initialize the "
      "PDB_OUTPUT_DIRECTORY property on all the targets. "
      "See that target property for additional information.",
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 7d0bc67..289612d 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -838,16 +838,6 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
   targetOptions.OutputPreprocessorDefinitions(fout, "\t\t\t\t", "\n", "CXX");
   fout << "\t\t\t\tAssemblerListingLocation=\"" << configName << "\"\n";
   fout << "\t\t\t\tObjectFile=\"$(IntDir)\\\"\n";
-  if(targetBuilds)
-    {
-    // We need to specify a program database file name even for
-    // non-debug configurations because VS still creates .idb files.
-    fout <<  "\t\t\t\tProgramDataBaseFileName=\""
-         << this->ConvertToXMLOutputPathSingle(
-              target.GetPDBDirectory(configName).c_str())
-         << "/"
-         << target.GetPDBName(configName) << "\"\n";
-    }
   fout << "/>\n";  // end of <Tool Name=VCCLCompilerTool
   tool = "VCCustomBuildTool";
   if(this->FortranProject)
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 66c22b1..4c3f1f8 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -873,9 +873,9 @@ void cmTarget::DefineProperties(cmake *cm)
 
   cm->DefineProperty
     ("PDB_NAME", cmProperty::TARGET,
-     "Output name for MS debug symbols .pdb file.",
+     "Output name for MS debug symbols .pdb file from linker.",
      "Set the base name for debug symbols file created for an "
-     "executable or library target.  "
+     "executable or shared library target.  "
      "If not set, the logical target name is used by default.  "
      "\n"
      "This property is not implemented by the Visual Studio 6 generator.");
@@ -1384,9 +1384,9 @@ void cmTarget::DefineProperties(cmake *cm)
 
   cm->DefineProperty
     ("PDB_OUTPUT_DIRECTORY", cmProperty::TARGET,
-     "Output directory for MS debug symbols .pdb files.",
+     "Output directory for MS debug symbols .pdb file from linker.",
      "This property specifies the directory into which the MS debug symbols "
-     "will be placed.  "
+     "will be placed by the linker.  "
      "This property is initialized by the value of the variable "
      "CMAKE_PDB_OUTPUT_DIRECTORY if it is set when a target is created."
      "\n"
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 1cb9f23..a236831 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1264,14 +1264,6 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
   *this->BuildFileStream << configName
                          << "</AssemblerListingLocation>\n";
   this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
-  if(this->Target->GetType() != cmTarget::OBJECT_LIBRARY)
-    {
-    this->WriteString("<ProgramDataBaseFileName>", 3);
-    *this->BuildFileStream << this->Target->GetPDBDirectory(configName.c_str())
-                           << "/"
-                           << this->Target->GetPDBName(configName.c_str())
-                           << "</ProgramDataBaseFileName>\n";
-    }
   this->WriteString("</ClCompile>\n", 2);
 }
 
diff --git a/Tests/PDBDirectoryAndName/CMakeLists.txt b/Tests/PDBDirectoryAndName/CMakeLists.txt
index bc2f013..28e46b1 100644
--- a/Tests/PDBDirectoryAndName/CMakeLists.txt
+++ b/Tests/PDBDirectoryAndName/CMakeLists.txt
@@ -20,7 +20,9 @@ set_target_properties(mylibB PROPERTIES
     PDB_NAME "mylibB_Special"
     PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mylibB_PDB"
 )
-list(APPEND my_targets mylibB)
+# TODO: The only .pdb available for a static library is that generated
+# by the compiler /Fd option which is not the same as the linker /pdb.
+# list(APPEND my_targets mylibB)
 
 add_library(mylibC SHARED mylibC.c)
 set_target_properties(mylibC PROPERTIES
@@ -32,7 +34,8 @@ add_library(mylibD STATIC mylibD.c)
 set_target_properties(mylibD PROPERTIES
     PDB_NAME "mylibD_Special"
 )
-list(APPEND my_targets mylibD)
+# TODO: See comment for mylibB.
+# list(APPEND my_targets mylibD)
 
 add_executable(myexe myexe.c)
 set_target_properties(myexe PROPERTIES
@@ -58,10 +61,6 @@ target_link_libraries(myexe2 mylibA mylibD)
 if("${CMAKE_GENERATOR}" MATCHES "Visual Studio 6")
   return()
 endif()
-# PDB output not fully implemented for Intel
-if("${CMAKE_C_COMPILER_ID}" MATCHES "^(Intel)$")
-  return()
-endif()
 
 set(pdbs "")
 foreach(t ${my_targets})

-----------------------------------------------------------------------

Summary of changes:
 Modules/Platform/Windows-Intel.cmake       |    4 ++--
 Modules/Platform/Windows-MSVC.cmake        |    4 ++--
 Source/cmDocumentVariables.cxx             |    2 +-
 Source/cmLocalVisualStudio7Generator.cxx   |   10 ----------
 Source/cmTarget.cxx                        |    8 ++++----
 Source/cmVisualStudio10TargetGenerator.cxx |    8 --------
 Tests/PDBDirectoryAndName/CMakeLists.txt   |   11 +++++------
 7 files changed, 14 insertions(+), 33 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list