summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-11-07 16:45:33 (GMT)
committerBrad King <brad.king@kitware.com>2014-11-07 16:45:33 (GMT)
commit098bea14e3e14ad0e4da7238d5b02957bc185aa4 (patch)
tree4166215afa69fbc908a237e355d88415f94e348d
parent06c3b7a8224b9864f1771de62926c1d1fb3476cc (diff)
parentcaa4b7b88b3845a23d0767b9e63ee6e31ca614e5 (diff)
downloadCMake-098bea14e3e14ad0e4da7238d5b02957bc185aa4.zip
CMake-098bea14e3e14ad0e4da7238d5b02957bc185aa4.tar.gz
CMake-098bea14e3e14ad0e4da7238d5b02957bc185aa4.tar.bz2
Merge branch 'genex-target-objects-ordering' into release
-rw-r--r--Source/cmGeneratorExpressionEvaluator.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/cmGeneratorExpressionEvaluator.cxx b/Source/cmGeneratorExpressionEvaluator.cxx
index c1478df..67a1a6d 100644
--- a/Source/cmGeneratorExpressionEvaluator.cxx
+++ b/Source/cmGeneratorExpressionEvaluator.cxx
@@ -1286,12 +1286,16 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
std::string obj_dir = gt->ObjectDirectory;
std::string result;
const char* sep = "";
- for(std::map<cmSourceFile const*, std::string>::const_iterator it
- = mapping.begin(); it != mapping.end(); ++it)
+ for(std::vector<cmSourceFile const*>::const_iterator it
+ = objectSources.begin(); it != objectSources.end(); ++it)
{
- assert(!it->second.empty());
+ // Find the object file name corresponding to this source file.
+ std::map<cmSourceFile const*, std::string>::const_iterator
+ map_it = mapping.find(*it);
+ // It must exist because we populated the mapping just above.
+ assert(!map_it->second.empty());
result += sep;
- std::string objFile = obj_dir + it->second;
+ std::string objFile = obj_dir + map_it->second;
cmSourceFile* sf = context->Makefile->GetOrCreateSource(objFile, true);
sf->SetObjectLibrary(tgtName);
sf->SetProperty("EXTERNAL_OBJECT", "1");