in cmake-runner-agent/src/jetbrains/buildServer/cmakerunner/agent/CMakeConfigureBuildService.java [28:105]
public ProgramCommandLine makeProgramCommandLine() throws RunBuildException {
final List<String> arguments = new ArrayList<String>();
final Map<String, String> runnerParameters = getRunnerParameters(); // all server-ui options
final Map<String, String> environment = new HashMap<String, String>(System.getenv());
environment.putAll(getBuildParameters().getEnvironmentVariables());
// Path to 'cmake'
String programPath = runnerParameters.get(UI_CMAKE_COMMAND);
if (programPath == null) {
programPath = DEFAULT_CMAKE_PROGRAM;
}
// Check for program exist
// if (!FileUtil2.checkIfExists(programPath) && FileUtil2.findExecutableByNameInPATH(programPath, environment) == null)
// throw new RunBuildException("Cannot locate `" + programPath + "' executable");
// CMake options
final String generator = runnerParameters.get(UI_MAKEFILE_GENERATOR);
if (generator != null && !generator.equalsIgnoreCase("Default")) {
arguments.add(RUNNER_MAKEFILE_GENERATOR);
arguments.add(generator);
}
final Boolean devWarn = Boolean.valueOf(runnerParameters.get(UI_DEVELOPER_WARNINGS));
arguments.add(devWarn ? RUNNER_DEVELOPER_WARNINGS_ON : RUNNER_DEVELOPER_WARNINGS_OFF);
if (devWarn) {
if (Boolean.valueOf(runnerParameters.get(UI_WARN_UNINITIALIZED))) {
arguments.add(RUNNER_WARN_UNINITIALIZED);
}
if (Boolean.valueOf(runnerParameters.get(UI_WARN_UNUSED_VARS))) {
arguments.add(RUNNER_WARN_UNUSED_VARS);
}
if (Boolean.valueOf(runnerParameters.get(UI_NO_WARN_UNUSED_CLI))) {
arguments.add(RUNNER_NO_WARN_UNUSED_CLI);
}
if (Boolean.valueOf(runnerParameters.get(UI_PRINT_TRACE))) {
arguments.add(RUNNER_PRINT_TRACE);
}
if (Boolean.valueOf(runnerParameters.get(UI_DEBUG_MODE))) {
arguments.add(RUNNER_DEBUG_MODE);
}
}
final String buildTypeName = runnerParameters.get(UI_CMAKE_BUILD_TYPE);
CMakeBuildType buildType = null;
for (final CMakeBuildType type : Arrays.asList(CMakeBuildType.values())) {
if (type.getNormalName().equals(buildTypeName)) {
buildType = type;
break;
}
}
if (buildType != null && buildType != CMakeBuildType.Default) {
arguments.add(getVariableToArgument(RUNNER_CMAKE_BUILD_TYPE, buildType.getNormalName()));
}
// Other arguments
addCustomArguments(arguments, runnerParameters.get(UI_ADDITIONAL_PARAMS));
// Directory contains CMakeLists.txt
String sourcePath = runnerParameters.get(UI_SOURCE_PATH);
if (sourcePath == null) {
sourcePath = ".";
}
arguments.add(sourcePath);
final boolean redirectStdErr = Boolean.valueOf(runnerParameters.get(UI_REDIRECT_STDERR));
// Result:
final SimpleProgramCommandLine pcl = new SimpleProgramCommandLine(environment,
getWorkingDirectory().getAbsolutePath(),
programPath,
arguments);
return redirectStdErr ? OutputRedirectProcessor.wrap(getBuild(), pcl) : pcl;
}