summaryrefslogtreecommitdiffstats
path: root/Source/cmInstallCMakeConfigExportGenerator.cxx
blob: 4f5b82ea1205c7c3800945a59ddd2ab51de32182 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file LICENSE.rst or https://cmake.org/licensing for details.  */
#include "cmInstallCMakeConfigExportGenerator.h"

#include <utility>

#include <cm/memory>

#include "cmExportInstallCMakeConfigGenerator.h"
#include "cmExportInstallFileGenerator.h"
#include "cmListFileCache.h"

class cmExportSet;

cmInstallCMakeConfigExportGenerator::cmInstallCMakeConfigExportGenerator(
  cmExportSet* exportSet, std::string destination, std::string filePermissions,
  std::vector<std::string> const& configurations, std::string component,
  MessageLevel message, bool excludeFromAll, std::string filename,
  std::string targetNamespace, std::string cxxModulesDirectory, bool exportOld,
  bool exportPackageDependencies, cmListFileBacktrace backtrace)
  : cmInstallExportGenerator(
      exportSet, std::move(destination), std::move(filePermissions),
      configurations, std::move(component), message, excludeFromAll,
      std::move(filename), std::move(targetNamespace),
      std::move(cxxModulesDirectory), std::move(backtrace))
  , ExportOld(exportOld)
  , ExportPackageDependencies(exportPackageDependencies)
{
  this->EFGen = cm::make_unique<cmExportInstallCMakeConfigGenerator>(this);
}

cmInstallCMakeConfigExportGenerator::~cmInstallCMakeConfigExportGenerator() =
  default;

void cmInstallCMakeConfigExportGenerator::GenerateScript(std::ostream& os)
{
  auto* const efgen =
    static_cast<cmExportInstallCMakeConfigGenerator*>(this->EFGen.get());
  efgen->SetExportOld(this->ExportOld);
  efgen->SetExportPackageDependencies(this->ExportPackageDependencies);

  this->cmInstallExportGenerator::GenerateScript(os);
}