From 663d093d454902269a83d7f07c6546e773328086 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Mon, 18 Apr 2016 20:32:44 +0200 Subject: [PATCH] Autogen: Check added for name collisions of generated ui_NAME.h files --- Source/cmQtAutoGenerators.cxx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 08749dd96..18a2bcaa1 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -1243,6 +1243,7 @@ bool cmQtAutoGenerators::GenerateUiFiles( { // single map with input / output names std::map > uiGenMap; + std::map testMap; for(std::map >::const_iterator it = includedUis.begin(); it != includedUis.end(); ++it) { @@ -1260,9 +1261,24 @@ bool cmQtAutoGenerators::GenerateUiFiles( const std::string uiInputFile = sourcePath + uiFileName + ".ui"; const std::string uiOutputFile = "ui_" + uiFileName + ".h"; sourceMap[uiInputFile] = uiOutputFile; + testMap[uiInputFile] = uiOutputFile; } } + // look for name collisions + { + std::multimap collisions; + if( this->NameCollisionTest ( testMap, collisions ) ) + { + std::cerr << "AUTOGEN: error: The same ui_NAME.h file will be generated " + "from different sources." << std::endl + << "To avoid this error rename the source files." << std::endl; + this->NameCollisionLog ( collisions ); + ::exit(EXIT_FAILURE); + } + } + testMap.clear(); + // generate ui files for(std::map >:: const_iterator it = uiGenMap.begin(); it != uiGenMap.end(); ++it)