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

Method Generate

Source/cmFastbuildNormalTargetGenerator.cxx:854–1000  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

852}
853
854void cmFastbuildNormalTargetGenerator::Generate()
855{
856 this->GeneratorTarget->CheckCxxModuleStatus(Config);
857
858 FastbuildTarget fastbuildTarget;
859 auto const addUtilDepToTarget = [&fastbuildTarget](std::string depName) {
860 FastbuildTargetDep dep{ depName };
861 dep.Type = FastbuildTargetDepType::UTIL;
862 fastbuildTarget.PreBuildDependencies.emplace(std::move(dep));
863 };
864
865 fastbuildTarget.Name = GetTargetName();
866 fastbuildTarget.BaseName = this->GeneratorTarget->GetName();
867
868 LogMessage("<-------------->");
869 LogMessage("Generate target: " + fastbuildTarget.Name);
870 LogMessage("Config: " + Config);
871
872 LogMessage("Deps: ");
873 for (cmTargetDepend const& dep : TargetDirectDependencies) {
874 auto const tname = dep->GetName();
875 LogMessage(tname);
876 FastbuildTargetDep targetDep{ tname };
877 if (dep->GetType() == cmStateEnums::OBJECT_LIBRARY) {
878 targetDep.Type = FastbuildTargetDepType::ORDER_ONLY;
879 }
880 fastbuildTarget.PreBuildDependencies.emplace(std::move(targetDep));
881 }
882
883 ComputePaths(fastbuildTarget);
884 AddCompilerLaunchersForLanguages();
885 AddLinkerLauncher();
886 AddCMakeLauncher();
887
888 for (auto& cc : GenerateCommands(FastbuildBuildStep::PRE_BUILD).Nodes) {
889 fastbuildTarget.PreBuildExecNodes.PreBuildDependencies.emplace(cc.Name);
890 addUtilDepToTarget(cc.Name);
891 this->GetGlobalGenerator()->AddTarget(std::move(cc));
892 }
893 for (auto& cc : GenerateCommands(FastbuildBuildStep::PRE_LINK).Nodes) {
894 cc.PreBuildDependencies.emplace(fastbuildTarget.Name +
895 FASTBUILD_DEPS_ARTIFACTS_ALIAS_POSTFIX);
896 fastbuildTarget.PreLinkExecNodes.Nodes.emplace_back(std::move(cc));
897 }
898 for (auto& cc : GenerateCommands(FastbuildBuildStep::REST).Nodes) {
899 fastbuildTarget.ExecNodes.PreBuildDependencies.emplace(cc.Name);
900 this->GetGlobalGenerator()->AddTarget(std::move(cc));
901 }
902 for (auto& cc : GenerateCommands(FastbuildBuildStep::POST_BUILD).Nodes) {
903 fastbuildTarget.PostBuildExecNodes.Alias.PreBuildDependencies.emplace(
904 cc.Name);
905 fastbuildTarget.PostBuildExecNodes.Nodes.emplace_back(std::move(cc));
906 }
907
908 GenerateObjects(fastbuildTarget);
909
910 std::vector<std::string> objectDepends;
911 AddObjectDependencies(fastbuildTarget, objectDepends);

Callers

nothing calls this directly

Calls 15

moveFunction · 0.85
CheckCxxModuleStatusMethod · 0.80
emplaceMethod · 0.80
AddTargetMethod · 0.80
emplace_backMethod · 0.80
GenerateAliasesMethod · 0.80
AddIDEProjectMethod · 0.80
ErrorClass · 0.70
GetNameMethod · 0.45
GetTypeMethod · 0.45
GetGlobalGeneratorMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected