[Cmake-commits] [cmake-commits] king committed cmMakefileExecutableTargetGenerator.cxx 1.61 1.62 cmMakefileLibraryTargetGenerator.cxx 1.77 1.78 cmMakefileTargetGenerator.cxx 1.121 1.122

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Sep 17 08:42:42 EDT 2009


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv6912/Source

Modified Files:
	cmMakefileExecutableTargetGenerator.cxx 
	cmMakefileLibraryTargetGenerator.cxx 
	cmMakefileTargetGenerator.cxx 
Log Message:
Do not call CollapseFullPath for PDB file names

Some vendor tools convert PDB file names given on the command line to
lower-case before creating the file.  When CMake places a mixed-case PDB
file name into the build system, the file does not exist the first time
and it is written with mixed case.  After the first build though the
native tool has created a lower-case version of the file.  If CMake does
CollapseFullPath again, the file exists so the actual-case lookup gets
the lower-case name.  This causes the build files to change so the
project rebuilds.

The solution is to avoid calling CollapseFullPath for files generated by
the build.  In the case of PDB files we already construct them from
paths that have been collapsed, so we can just skip the call altogether.
See issue #9350.


Index: cmMakefileLibraryTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v
retrieving revision 1.77
retrieving revision 1.78
diff -C 2 -d -r1.77 -r1.78
*** cmMakefileLibraryTargetGenerator.cxx	8 Jul 2009 17:04:03 -0000	1.77
--- cmMakefileLibraryTargetGenerator.cxx	17 Sep 2009 12:42:30 -0000	1.78
***************
*** 427,431 ****
    // arguments.
    std::string targetOutPathPDB = 
!     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL,
                    cmLocalGenerator::SHELL);
    std::string targetOutPath = 
--- 427,431 ----
    // arguments.
    std::string targetOutPathPDB = 
!     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::NONE,
                    cmLocalGenerator::SHELL);
    std::string targetOutPath = 

Index: cmMakefileExecutableTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v
retrieving revision 1.61
retrieving revision 1.62
diff -C 2 -d -r1.61 -r1.62
*** cmMakefileExecutableTargetGenerator.cxx	8 Jul 2009 17:04:02 -0000	1.61
--- cmMakefileExecutableTargetGenerator.cxx	17 Sep 2009 12:42:27 -0000	1.62
***************
*** 162,166 ****
    std::string targetOutPathPDB = 
      this->Convert(targetFullPathPDB.c_str(),
!                   cmLocalGenerator::FULL,
                    cmLocalGenerator::SHELL);
    // Convert to the output path to use in constructing commands.
--- 162,166 ----
    std::string targetOutPathPDB = 
      this->Convert(targetFullPathPDB.c_str(),
!                   cmLocalGenerator::NONE,
                    cmLocalGenerator::SHELL);
    // Convert to the output path to use in constructing commands.

Index: cmMakefileTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileTargetGenerator.cxx,v
retrieving revision 1.121
retrieving revision 1.122
diff -C 2 -d -r1.121 -r1.122
*** cmMakefileTargetGenerator.cxx	3 Jul 2009 14:34:10 -0000	1.121
--- cmMakefileTargetGenerator.cxx	17 Sep 2009 12:42:31 -0000	1.122
***************
*** 614,618 ****
      }
    targetOutPathPDB =
!     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL,
                    cmLocalGenerator::SHELL);
    }
--- 614,618 ----
      }
    targetOutPathPDB =
!     this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::NONE,
                    cmLocalGenerator::SHELL);
    }



More information about the Cmake-commits mailing list