1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00
Files
CMake/Source/cmLocalCommonGenerator.h
Ben Boeckel fe0163cd23 autogen: compute short directories too
Not just short directory roots. The test suites did an improper
generator check and masked them as the generator masks were put in place
after the core development but before the autogen-specific logic tests
were created.
2025-09-02 12:56:23 -04:00

55 lines
1.5 KiB
C++

/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
#include <map>
#include <string>
#include <vector>
#include "cmLocalGenerator.h"
class cmGeneratorTarget;
class cmGlobalGenerator;
class cmMakefile;
struct cmObjectLocations;
class cmSourceFile;
namespace cmStateEnums {
enum class IntermediateDirKind;
}
/** \class cmLocalCommonGenerator
* \brief Common infrastructure for Makefile and Ninja local generators.
*/
class cmLocalCommonGenerator : public cmLocalGenerator
{
public:
cmLocalCommonGenerator(cmGlobalGenerator* gg, cmMakefile* mf);
~cmLocalCommonGenerator() override;
std::vector<std::string> const& GetConfigNames() const
{
return this->ConfigNames;
}
virtual std::string const& GetWorkingDirectory() const;
std::string GetTargetFortranFlags(cmGeneratorTarget const* target,
std::string const& config) override;
std::string ComputeLongTargetDirectory(cmGeneratorTarget const* gt) const;
std::string GetTargetDirectory(
cmGeneratorTarget const* target,
cmStateEnums::IntermediateDirKind kind) const override;
void ComputeObjectFilenames(
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
cmGeneratorTarget const* gt = nullptr) override;
protected:
std::vector<std::string> ConfigNames;
friend class cmCommonTargetGenerator;
};