Files
CMake/Source/cmInstallGetRuntimeDependenciesGenerator.h
Taylor SasserandTyler Yankee 0ea2d28b54 Ninja: Add install_prep targets for minimal builds
Add `install_prep/<component>` convenience targets to the Ninja
generators to build dependencies of install components, and
`install_prep/all` to build the dependencies of all install components.

This is similar in flavor to commit ba6b6fbc24 (Ninja: Add Build
Dependencies for Tests, 2026-04-07), but here for the install command.

Co-authored-by: Tyler Yankee <tyler.yankee@kitware.com>
Issue: #27643
2026-10-12 12:23:46 -04:00

65 lines
2.2 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 <iosfwd>
#include <string>
#include <vector>
#include "cmInstallGenerator.h"
#include "cmPolicies.h"
class cmListFileBacktrace;
class cmLocalGenerator;
class cmInstallRuntimeDependencySet;
class cmInstallGetRuntimeDependenciesGenerator : public cmInstallGenerator
{
public:
cmInstallGetRuntimeDependenciesGenerator(
cmInstallRuntimeDependencySet* runtimeDependencySet,
std::vector<std::string> directories,
std::vector<std::string> preIncludeRegexes,
std::vector<std::string> preExcludeRegexes,
std::vector<std::string> postIncludeRegexes,
std::vector<std::string> postExcludeRegexes,
std::vector<std::string> postIncludeFiles,
std::vector<std::string> postExcludeFiles, std::string libraryComponent,
std::string frameworkComponent, bool noInstallRPath, char const* depsVar,
char const* rpathPrefix, std::vector<std::string> const& configurations,
MessageLevel message, bool excludeFromAll, cmListFileBacktrace backtrace,
cmPolicies::PolicyStatus policyStatusCMP0207);
bool Compute(cmLocalGenerator* lg) override;
void GetInstallBuildDependencies(
std::string const& config,
std::vector<BuildDependency>& dependencies) const override;
void GetInstallBuildDependencyComponents(
std::vector<std::string>& components) const override;
protected:
void GenerateScript(std::ostream& os) override;
void GenerateScriptForConfig(std::ostream& os, std::string const& config,
Indent indent) override;
private:
cmInstallRuntimeDependencySet* RuntimeDependencySet;
std::vector<std::string> Directories;
std::vector<std::string> PreIncludeRegexes;
std::vector<std::string> PreExcludeRegexes;
std::vector<std::string> PostIncludeRegexes;
std::vector<std::string> PostExcludeRegexes;
std::vector<std::string> PostIncludeFiles;
std::vector<std::string> PostExcludeFiles;
std::string LibraryComponent;
std::string FrameworkComponent;
cmPolicies::PolicyStatus PolicyStatusCMP0207;
bool NoInstallRPath;
char const* DepsVar;
char const* RPathPrefix;
cmLocalGenerator* LocalGenerator = nullptr;
};