summaryrefslogtreecommitdiff
path: root/Source/cmGlobalXCodeGenerator.cxx
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2005-04-28 18:34:58 -0400
committerAndy Cedilnik <andy.cedilnik@kitware.com>2005-04-28 18:34:58 -0400
commit064ca3834b213152110ce8f2c099d1a2bb65eaff (patch)
treec440194823079fd1dd98d2e2b27d5ab3f2f497fb /Source/cmGlobalXCodeGenerator.cxx
parentcb3ea2328a72a82b6e6174bdc9055459a207c26f (diff)
downloadcmake-064ca3834b213152110ce8f2c099d1a2bb65eaff.tar.gz
ENH: Start working on command that will abstract generating of build command
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.cxx')
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx50
1 files changed, 18 insertions, 32 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 0168ebf45c..d139ce3f76 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;
}
//----------------------------------------------------------------------------