CMake/Source/cmExportBuildPackageInfoGenerator.h
Kitware Robot 1772622772 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 10:43:35 -05:00

54 lines
1.7 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 <iosfwd>
#include <string>
#include <vector>
#include "cmExportBuildFileGenerator.h"
#include "cmExportPackageInfoGenerator.h"
namespace Json {
class Value;
}
class cmGeneratorTarget;
/** \class cmExportBuildPackageInfoGenerator
* \brief Generate a file exporting targets from a build tree.
*
* cmExportBuildCMakeConfigGenerator generates a file exporting targets from
* a build tree. This exports the targets to the Common Package Specification
* (https://cps-org.github.io/cps/).
*
* This is used to implement the export() command.
*/
class cmExportBuildPackageInfoGenerator
: public cmExportBuildFileGenerator
, public cmExportPackageInfoGenerator
{
public:
cmExportBuildPackageInfoGenerator(
std::string packageName, std::string version, std::string versionCompat,
std::string versionSchema, std::vector<std::string> defaultTargets,
std::vector<std::string> defaultConfigurations);
protected:
// Implement virtual methods from the superclass.
bool GenerateMainFile(std::ostream& os) override;
void GenerateImportTargetsConfig(std::ostream&, std::string const&,
std::string const&) override
{
}
void GenerateInterfacePropertiesConfig(Json::Value& configurations,
cmGeneratorTarget* target,
std::string const& config);
std::string GetCxxModulesDirectory() const override;
// TODO: Generate C++ module info in a not-CMake-specific format.
};