mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 12:09:48 +00:00
20d5e77a27
Ext and External were used inconsistently in the code and the docs. This change converts all uses of Ext to External, including within variable names used by the generator.
90 lines
2.7 KiB
C++
90 lines
2.7 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#ifndef cmCPackExternalGenerator_h
|
|
#define cmCPackExternalGenerator_h
|
|
|
|
#include "cmCPackGenerator.h"
|
|
#include "cm_sys_stat.h"
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
class cmGlobalGenerator;
|
|
namespace Json {
|
|
class Value;
|
|
}
|
|
|
|
/** \class cmCPackExternalGenerator
|
|
* \brief A generator for CPack External packaging tools
|
|
*/
|
|
class cmCPackExternalGenerator : public cmCPackGenerator
|
|
{
|
|
public:
|
|
cmCPackTypeMacro(cmCPackExternalGenerator, cmCPackGenerator);
|
|
|
|
const char* GetOutputExtension() override { return ".json"; }
|
|
|
|
protected:
|
|
int InitializeInternal() override;
|
|
|
|
int PackageFiles() override;
|
|
|
|
bool SupportsComponentInstallation() const override;
|
|
|
|
int InstallProjectViaInstallCommands(
|
|
bool setDestDir, const std::string& tempInstallDirectory) override;
|
|
int InstallProjectViaInstallScript(
|
|
bool setDestDir, const std::string& tempInstallDirectory) override;
|
|
int InstallProjectViaInstalledDirectories(
|
|
bool setDestDir, const std::string& tempInstallDirectory,
|
|
const mode_t* default_dir_mode) override;
|
|
|
|
int RunPreinstallTarget(const std::string& installProjectName,
|
|
const std::string& installDirectory,
|
|
cmGlobalGenerator* globalGenerator,
|
|
const std::string& buildConfig) override;
|
|
int InstallCMakeProject(bool setDestDir, const std::string& installDirectory,
|
|
const std::string& baseTempInstallDirectory,
|
|
const mode_t* default_dir_mode,
|
|
const std::string& component, bool componentInstall,
|
|
const std::string& installSubDirectory,
|
|
const std::string& buildConfig,
|
|
std::string& absoluteDestFiles) override;
|
|
|
|
private:
|
|
bool StagingEnabled() const;
|
|
|
|
class cmCPackExternalVersionGenerator
|
|
{
|
|
public:
|
|
cmCPackExternalVersionGenerator(cmCPackExternalGenerator* parent);
|
|
|
|
virtual ~cmCPackExternalVersionGenerator() = default;
|
|
|
|
virtual int WriteToJSON(Json::Value& root);
|
|
|
|
protected:
|
|
virtual int GetVersionMajor() = 0;
|
|
virtual int GetVersionMinor() = 0;
|
|
|
|
int WriteVersion(Json::Value& root);
|
|
|
|
cmCPackExternalGenerator* Parent;
|
|
};
|
|
|
|
class cmCPackExternalVersion1Generator
|
|
: public cmCPackExternalVersionGenerator
|
|
{
|
|
public:
|
|
using cmCPackExternalVersionGenerator::cmCPackExternalVersionGenerator;
|
|
|
|
protected:
|
|
int GetVersionMajor() override { return 1; }
|
|
int GetVersionMinor() override { return 0; }
|
|
};
|
|
|
|
std::unique_ptr<cmCPackExternalVersionGenerator> Generator;
|
|
};
|
|
|
|
#endif
|