From c1c3149d162ed2071db76d1b1ad4740ebb4c129d Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 13 Nov 2002 18:27:29 -0500 Subject: [PATCH] BUG: fix for build out of dir for windows --- Source/cmLocalUnixMakefileGenerator.cxx | 29 +++++++++++++++++++++++++ Source/cmLocalUnixMakefileGenerator.h | 5 +++++ 2 files changed, 34 insertions(+) diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index c89a4d64b..bb244f1a1 100644 --- a/Source/cmLocalUnixMakefileGenerator.cxx +++ b/Source/cmLocalUnixMakefileGenerator.cxx @@ -1222,12 +1222,41 @@ void cmLocalUnixMakefileGenerator::OutputDependLibs(std::ostream& fout) } } +void cmLocalUnixMakefileGenerator::OutputBuildTargetInDirWindows(std::ostream& fout, + const char* path, + const char* library, + const char* fullpath, + const char* libOutPath) +{ + const char* makeTarget = library; + std::string currentDir = + cmSystemTools::ConvertToOutputPath(m_Makefile->GetCurrentOutputDirectory()); + std::string wpath = cmSystemTools::ConvertToOutputPath(path); + std::string wfullpath = cmSystemTools::ConvertToOutputPath(fullpath); + if(libOutPath && strcmp( libOutPath, "" ) != 0) + { + makeTarget = wfullpath.c_str(); + } + fout << wfullpath + << ":\n\tcd " << wpath << "\n" + << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.depends\n" + << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) cmake.check_depends\n" + << "\t$(MAKE) -$(MAKEFLAGS) $(MAKESILENT) -f cmake.check_depends\n" + << "\t$(MAKE) $(MAKESILENT) " << makeTarget + << "\n\tcd " << currentDir << "\n"; +} + void cmLocalUnixMakefileGenerator::OutputBuildTargetInDir(std::ostream& fout, const char* path, const char* library, const char* fullpath, const char* outputPath) { + if(m_WindowsShell) + { + this->OutputBuildTargetInDirWindows(fout, path, library, fullpath, outputPath); + return; + } const char* makeTarget = library; if(outputPath && strcmp( outputPath, "" ) != 0) { diff --git a/Source/cmLocalUnixMakefileGenerator.h b/Source/cmLocalUnixMakefileGenerator.h index 70a43d64e..c2604f0da 100644 --- a/Source/cmLocalUnixMakefileGenerator.h +++ b/Source/cmLocalUnixMakefileGenerator.h @@ -164,6 +164,11 @@ protected: const char* command2 = 0, const char* command3 = 0, const char* command4 = 0); + virtual void OutputBuildTargetInDirWindows(std::ostream& fout, + const char* path, + const char* library, + const char* fullpath, + const char* outputPath); virtual void OutputBuildTargetInDir(std::ostream& fout, const char* path, const char* library,