1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
11 #include "cmLocalGenerator.h"
13 class cmGeneratorTarget;
14 class cmGlobalGenerator;
18 /** \class cmLocalCommonGenerator
19 * \brief Common infrastructure for Makefile and Ninja local generators.
21 class cmLocalCommonGenerator : public cmLocalGenerator
31 cmLocalCommonGenerator(cmGlobalGenerator* gg, cmMakefile* mf, WorkDir wd);
32 ~cmLocalCommonGenerator() override;
34 std::vector<std::string> const& GetConfigNames() const
36 return this->ConfigNames;
39 std::string const& GetWorkingDirectory() const;
41 std::string MaybeRelativeToWorkDir(std::string const& path) const;
43 std::string GetTargetFortranFlags(cmGeneratorTarget const* target,
44 std::string const& config) override;
46 void ComputeObjectFilenames(
47 std::map<cmSourceFile const*, std::string>& mapping,
48 cmGeneratorTarget const* gt = nullptr) override;
51 WorkDir WorkingDirectory;
53 std::vector<std::string> ConfigNames;
55 friend class cmCommonTargetGenerator;