MCPcopy Create free account
hub / github.com/Kitware/CMake / GetRecursiveMakeCall

Method GetRecursiveMakeCall

Source/cmLocalUnixMakefileGenerator3.cxx:2135–2177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2133}
2134
2135std::string cmLocalUnixMakefileGenerator3::GetRecursiveMakeCall(
2136 std::string const& makefile, std::string const& tgt)
2137{
2138 // Call make on the given file.
2139 std::string cmd = cmStrCat(
2140 "$(MAKE) $(MAKESILENT) -f ",
2141 this->ConvertToOutputFormat(makefile, cmOutputConverter::SHELL), ' ');
2142
2143 cmGlobalUnixMakefileGenerator3* gg =
2144 static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
2145 // Pass down verbosity level.
2146 if (!gg->MakeSilentFlag.empty()) {
2147 cmd += gg->MakeSilentFlag;
2148 cmd += " ";
2149 }
2150
2151 // Most unix makes will pass the command line flags to make down to
2152 // sub-invoked makes via an environment variable. However, some
2153 // makes do not support that, so you have to pass the flags
2154 // explicitly.
2155 if (gg->PassMakeflags) {
2156 cmd += "-$(MAKEFLAGS) ";
2157 }
2158
2159 // Add the target.
2160 if (!tgt.empty()) {
2161 // The make target is always relative to the top of the build tree.
2162 std::string tgt2 = this->MaybeRelativeToTopBinDir(tgt);
2163
2164 // The target may have been written with windows paths.
2165 cmSystemTools::ConvertToOutputSlashes(tgt2);
2166
2167 // Escape one extra time if the make tool requires it.
2168 if (this->MakeCommandEscapeTargetTwice) {
2169 tgt2 = this->EscapeForShell(tgt2, true, false);
2170 }
2171
2172 // The target name is now a string that should be passed verbatim
2173 // on the command line.
2174 cmd += this->EscapeForShell(tgt2, true, false);
2175 }
2176 return cmd;
2177}
2178
2179void cmLocalUnixMakefileGenerator3::WriteDivider(std::ostream& os)
2180{

Callers 5

WriteLocalAllRulesMethod · 0.95
WriteConvenienceRulesMethod · 0.80

Calls 5

EscapeForShellMethod · 0.80
cmStrCatFunction · 0.70
ConvertToOutputFormatMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected