diff options
author | Brad King <brad.king@kitware.com> | 2016-05-18 13:30:55 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-05-18 13:30:55 (GMT) |
commit | 570d689776761b67306fe8dc786eb36a2da4fef8 (patch) | |
tree | 14a78be593755091d619ca278f622c9af60e10d4 /Source | |
parent | 441dd9a7e448474042c4098c7b89dda615617f3b (diff) | |
parent | d7233a0472aae1f15f4c35f214294d9baf1b5e1f (diff) | |
download | CMake-570d689776761b67306fe8dc786eb36a2da4fef8.zip CMake-570d689776761b67306fe8dc786eb36a2da4fef8.tar.gz CMake-570d689776761b67306fe8dc786eb36a2da4fef8.tar.bz2 |
Merge topic 'ghs-shorter-object-names'
d7233a04 GHS: Use shorter object file names on collision
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGhsMultiTargetGenerator.cxx | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx index 325a86e..5e13d4c 100644 --- a/Source/cmGhsMultiTargetGenerator.cxx +++ b/Source/cmGhsMultiTargetGenerator.cxx @@ -18,7 +18,6 @@ #include "cmSourceFile.h" #include "cmTarget.h" #include <assert.h> -#include <cmAlgorithms.h> std::string const cmGhsMultiTargetGenerator::DDOption("-dynamic"); @@ -466,20 +465,14 @@ cmGhsMultiTargetGenerator::GetObjectNames( for (std::vector<cmSourceFile*>::const_iterator sf = duplicateSources.begin(); sf != duplicateSources.end(); ++sf) { - static std::string::size_type const MAX_FULL_PATH_LENGTH = 247; std::string const longestObjectDirectory( cmGhsMultiTargetGenerator::ComputeLongestObjectDirectory( localGhsMultiGenerator, generatorTarget, *sf)); - std::string fullFilename = (*sf)->GetFullPath(); - bool const ObjPathFound = cmLocalGeneratorCheckObjectName( - fullFilename, longestObjectDirectory.size(), MAX_FULL_PATH_LENGTH); - if (!ObjPathFound) { - cmSystemTools::Error("Object path \"", fullFilename.c_str(), - "\" too long", ""); - } - cmsys::SystemTools::ReplaceString(fullFilename, ":/", "_"); - cmsys::SystemTools::ReplaceString(fullFilename, "/", "_"); - objectNamesCorrected[*sf] = fullFilename; + std::string objFilenameName = + localGhsMultiGenerator->GetObjectFileNameWithoutTarget( + **sf, longestObjectDirectory); + cmsys::SystemTools::ReplaceString(objFilenameName, "/", "_"); + objectNamesCorrected[*sf] = objFilenameName; } return objectNamesCorrected; @@ -517,8 +510,7 @@ void cmGhsMultiTargetGenerator::WriteSources( this->WriteObjectLangOverride(this->FolderBuildStreams[sgPath], (*si)); if (objectNames.end() != objectNames.find(*si)) { *this->FolderBuildStreams[sgPath] - << " -o \"" << objectNames.find(*si)->second << ".o\"" - << std::endl; + << " -o \"" << objectNames.find(*si)->second << "\"" << std::endl; } this->WriteObjectDir(this->FolderBuildStreams[sgPath], |