diff options
-rw-r--r-- | Source/cmQtAutoGenInitializer.cxx | 39 | ||||
-rw-r--r-- | Source/cmQtAutoGenInitializer.h | 2 | ||||
-rw-r--r-- | Source/cmQtAutoGeneratorMocUic.cxx | 13 | ||||
-rw-r--r-- | Source/cmQtAutoGeneratorRcc.cxx | 4 |
4 files changed, 28 insertions, 30 deletions
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index fd9829fb07..19cdd39ef2 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx @@ -244,6 +244,21 @@ bool cmQtAutoGenInitializer::InitCustomTargets() // Working directory this->DirWork = cbd; cmSystemTools::ConvertToUnixSlashes(this->DirWork); + + // Include directory + this->DirInclude = this->DirBuild; + this->DirInclude += "/include"; + if (this->MultiConfig) { + this->DirInclude += "_$<CONFIG>"; + } + if (this->MultiConfig) { + for (std::string const& cfg : this->ConfigsList) { + std::string& dir = this->DirConfigInclude[cfg]; + dir = this->DirBuild; + dir += "/include_"; + dir += cfg; + } + } } // Autogen files @@ -305,12 +320,7 @@ bool cmQtAutoGenInitializer::InitCustomTargets() // Add autogen includes directory to the origin target INCLUDE_DIRECTORIES if (this->Moc.Enabled || this->Uic.Enabled || (this->Rcc.Enabled && this->MultiConfig)) { - std::string includeDir = this->DirBuild; - includeDir += "/include"; - if (this->MultiConfig) { - includeDir += "_$<CONFIG>"; - } - this->Target->AddIncludeDirectory(includeDir, true); + this->Target->AddIncludeDirectory(this->DirInclude, true); } // Acquire rcc executable and features @@ -833,15 +843,6 @@ bool cmQtAutoGenInitializer::SetupCustomTargets() return false; } - // Configuration include directories - std::string includeDir = "include"; - std::map<std::string, std::string> includeDirs; - for (std::string const& cfg : this->ConfigsList) { - std::string& dir = includeDirs[cfg]; - dir = "include_"; - dir += cfg; - } - // Generate autogen target info file if (this->Moc.Enabled || this->Uic.Enabled) { if (this->Moc.Enabled) { @@ -913,9 +914,9 @@ bool cmQtAutoGenInitializer::SetupCustomTargets() MfDef("CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE")); CWrite("AM_BUILD_DIR", this->DirBuild); if (this->MultiConfig) { - CWriteMap("AM_INCLUDE_DIR", includeDirs); + CWriteMap("AM_INCLUDE_DIR", this->DirConfigInclude); } else { - CWrite("AM_INCLUDE_DIR", includeDir); + CWrite("AM_INCLUDE_DIR", this->DirInclude); } ofs << "# Files\n"; @@ -1014,9 +1015,9 @@ bool cmQtAutoGenInitializer::SetupCustomTargets() ofs << "# Directories\n"; CWrite("ARCC_BUILD_DIR", this->DirBuild); if (this->MultiConfig) { - CWriteMap("ARCC_INCLUDE_DIR", includeDirs); + CWriteMap("ARCC_INCLUDE_DIR", this->DirConfigInclude); } else { - CWrite("ARCC_INCLUDE_DIR", includeDir); + CWrite("ARCC_INCLUDE_DIR", this->DirInclude); } ofs << "# Rcc executable\n"; diff --git a/Source/cmQtAutoGenInitializer.h b/Source/cmQtAutoGenInitializer.h index 0999e0f845..387b3bc390 100644 --- a/Source/cmQtAutoGenInitializer.h +++ b/Source/cmQtAutoGenInitializer.h @@ -90,6 +90,8 @@ private: std::string DirInfo; std::string DirBuild; std::string DirWork; + std::string DirInclude; + std::map<std::string, std::string> DirConfigInclude; // Sources std::vector<std::string> Headers; std::vector<std::string> Sources; diff --git a/Source/cmQtAutoGeneratorMocUic.cxx b/Source/cmQtAutoGeneratorMocUic.cxx index a6b0247022..c36470065f 100644 --- a/Source/cmQtAutoGeneratorMocUic.cxx +++ b/Source/cmQtAutoGeneratorMocUic.cxx @@ -1247,14 +1247,11 @@ bool cmQtAutoGeneratorMocUic::Init(cmMakefile* makefile) return false; } // include directory - { - std::string dirRel = InfoGetConfig("AM_INCLUDE_DIR"); - if (dirRel.empty()) { - Log().ErrorFile(GeneratorT::GEN, InfoFile(), - "Autogen include directory missing"); - return false; - } - Base_.AutogenIncludeDir = Base_.AbsoluteBuildPath(dirRel); + Base_.AutogenIncludeDir = InfoGetConfig("AM_INCLUDE_DIR"); + if (Base_.AutogenIncludeDir.empty()) { + Log().ErrorFile(GeneratorT::GEN, InfoFile(), + "Autogen include directory missing"); + return false; } // - Files diff --git a/Source/cmQtAutoGeneratorRcc.cxx b/Source/cmQtAutoGeneratorRcc.cxx index e49599f116..6caa0d8c36 100644 --- a/Source/cmQtAutoGeneratorRcc.cxx +++ b/Source/cmQtAutoGeneratorRcc.cxx @@ -141,9 +141,7 @@ bool cmQtAutoGeneratorRcc::Init(cmMakefile* makefile) // Compute rcc output file name if (IsMultiConfig()) { - RccFileOutput_ = AutogenBuildDir_; - RccFileOutput_ += '/'; - RccFileOutput_ += IncludeDir_; + RccFileOutput_ = IncludeDir_; RccFileOutput_ += '/'; RccFileOutput_ += MultiConfigOutput(); } else { |