Files
CMake/Source/cmLocalGhsMultiGenerator.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

45 lines
1.1 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 <map>
#include <string>
#include "cmLocalGenerator.h"
class cmGeneratorTarget;
class cmGlobalGenerator;
class cmMakefile;
struct cmObjectLocations;
class cmSourceFile;
namespace cmStateEnums {
enum class IntermediateDirKind;
}
/** \class cmLocalGhsMultiGenerator
* \brief Write Green Hills MULTI project files.
*
* cmLocalGhsMultiGenerator produces a set of .gpj
* file for each target in its mirrored directory.
*/
class cmLocalGhsMultiGenerator : public cmLocalGenerator
{
public:
cmLocalGhsMultiGenerator(cmGlobalGenerator* gg, cmMakefile* mf);
~cmLocalGhsMultiGenerator() override;
/**
* Generate the makefile for this directory.
*/
void Generate() override;
std::string GetTargetDirectory(
cmGeneratorTarget const* target,
cmStateEnums::IntermediateDirKind kind) const override;
void ComputeObjectFilenames(
std::map<cmSourceFile const*, cmObjectLocations>& mapping,
cmGeneratorTarget const* gt = nullptr) override;
};