diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-04-28 22:34:58 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2005-04-28 22:34:58 (GMT) |
commit | 064ca3834b213152110ce8f2c099d1a2bb65eaff (patch) | |
tree | c440194823079fd1dd98d2e2b27d5ab3f2f497fb | |
parent | cb3ea2328a72a82b6e6174bdc9055459a207c26f (diff) | |
download | CMake-064ca3834b213152110ce8f2c099d1a2bb65eaff.zip CMake-064ca3834b213152110ce8f2c099d1a2bb65eaff.tar.gz CMake-064ca3834b213152110ce8f2c099d1a2bb65eaff.tar.bz2 |
ENH: Start working on command that will abstract generating of build command
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 50 | ||||
-rw-r--r-- | Source/cmGlobalXCodeGenerator.h | 7 |
2 files changed, 20 insertions, 37 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 0168ebf..d139ce3 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -51,42 +51,39 @@ void cmGlobalXCodeGenerator::EnableLanguage(std::vector<std::string>const& } //---------------------------------------------------------------------------- -int cmGlobalXCodeGenerator::Build( - const char *, - const char *bindir, - const char *projectName, - const char *targetName, - std::string *output, - const char *makeCommandCSTR, - const char *, - bool clean) +std::string cmGlobalXCodeGenerator::GenerateBuildCommand(const char* makeProgram, + const char *projectName, const char *targetName, const char* config) { // now build the test - if(makeCommandCSTR == 0 || !strlen(makeCommandCSTR)) + if(makeProgram == 0 || !strlen(makeProgram)) { cmSystemTools::Error( "Generator cannot find the appropriate make command."); - return 1; + return ""; } std::string makeCommand = - cmSystemTools::ConvertToOutputPath(makeCommandCSTR); + cmSystemTools::ConvertToOutputPath(makeProgram); std::string lowerCaseCommand = makeCommand; cmSystemTools::LowerCase(lowerCaseCommand); - /** - * Run an executable command and put the stdout in output. - */ - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(bindir); - makeCommand += " -project "; makeCommand += projectName; makeCommand += ".xcode"; + bool clean = false; + if ( targetName && strcmp(targetName, "clean") == 0 ) + { + clean = true; + targetName = "ALL_BUILD"; + } if(clean) { - makeCommand += " clean "; + makeCommand += " clean"; + } + else + { + makeCommand += " build"; } - makeCommand += " build -target "; + makeCommand += " -target "; if (targetName && strlen(targetName)) { makeCommand += targetName; @@ -96,18 +93,7 @@ int cmGlobalXCodeGenerator::Build( makeCommand += "ALL_BUILD"; } makeCommand += " -buildstyle Development "; - int retVal; - int timeout = cmGlobalGenerator::s_TryCompileTimeout; - if (!cmSystemTools::RunSingleCommand(makeCommand.c_str(), output, &retVal, - 0, false, timeout)) - { - cmSystemTools::Error("Generator: execution of xcodebuild failed."); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd.c_str()); - return 1; - } - cmSystemTools::ChangeDirectory(cwd.c_str()); - return retVal; + return makeCommand; } //---------------------------------------------------------------------------- diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 5588d1f..85cbea0 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -57,11 +57,8 @@ public: * Try running cmake and building a file. This is used for dynalically * loaded commands, not as part of the usual build process. */ - virtual int Build(const char *srcdir, const char *bindir, - const char *projectName, const char *targetName, - std::string *output, - const char *makeProgram, - const char *config, bool clean); + virtual std::string GenerateBuildCommand(const char* makeProgram, + const char *projectName, const char *targetName, const char* config); /** * Generate the all required files for building this project/tree. This |