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

Method ComputeDefines

Source/cmExtraSublimeTextGenerator.cxx:381–412  ·  view source on GitHub ↗

TODO: Refactor with void cmMakefileTargetGenerator::WriteTargetLanguageFlags().

Source from the content-addressed store, hash-verified

379// TODO: Refactor with
380// void cmMakefileTargetGenerator::WriteTargetLanguageFlags().
381std::string cmExtraSublimeTextGenerator::ComputeDefines(
382 cmSourceFile* source, cmLocalGenerator* lg, cmGeneratorTarget* target)
383
384{
385 std::set<std::string> defines;
386 cmMakefile* makefile = lg->GetMakefile();
387 std::string const& language = source->GetOrDetermineLanguage();
388 std::string const& config = makefile->GetSafeDefinition("CMAKE_BUILD_TYPE");
389 cmGeneratorExpressionInterpreter genexInterpreter(lg, config, target,
390 language);
391
392 // Add preprocessor definitions for this target and configuration.
393 lg->GetTargetDefines(target, config, language, defines);
394 std::string const COMPILE_DEFINITIONS("COMPILE_DEFINITIONS");
395 if (cmValue compile_defs = source->GetProperty(COMPILE_DEFINITIONS)) {
396 lg->AppendDefines(
397 defines, genexInterpreter.Evaluate(*compile_defs, COMPILE_DEFINITIONS));
398 }
399
400 std::string defPropName =
401 cmStrCat("COMPILE_DEFINITIONS_", cmSystemTools::UpperCase(config));
402 if (cmValue config_compile_defs = source->GetProperty(defPropName)) {
403 lg->AppendDefines(
404 defines,
405 genexInterpreter.Evaluate(*config_compile_defs, COMPILE_DEFINITIONS));
406 }
407
408 std::string definesString;
409 lg->JoinDefines(defines, definesString, language);
410
411 return definesString;
412}
413
414std::string cmExtraSublimeTextGenerator::ComputeIncludes(
415 cmSourceFile* source, cmLocalGenerator* lg, cmGeneratorTarget* target)

Callers 1

AppendTargetMethod · 0.95

Calls 7

GetTargetDefinesMethod · 0.80
JoinDefinesMethod · 0.80
cmStrCatFunction · 0.70
GetMakefileMethod · 0.45
GetPropertyMethod · 0.45
AppendDefinesMethod · 0.45
EvaluateMethod · 0.45

Tested by

no test coverage detected