mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00

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.
55 lines
1.5 KiB
C++
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;
|
|
};
|