mirror of
https://github.com/reactos/CMake.git
synced 2024-11-28 14:01:21 +00:00
CPack: Restore support for custom package configuration templates
Refactoring in commit 98617f1be0
(Refactor: Move CPack internal files to
`Internal/CPack/` directory, 2019-07-09, v3.16.0-rc1~449^2) accidentally
changed the public-facing names of the templates. The name passed to
`FindTemplate` is searched in `CMAKE_MODULE_PATH` and should not change.
Remove the `Internal/CPack/` prefix on the names added by that commit.
Teach `FindTemplate` to use our builtin default directly when the
public-facing name is not found in `CMAKE_MODULE_PATH`.
Fixes: #19979
This commit is contained in:
parent
c1d5d5eb11
commit
7d6ab5dc5b
@ -610,7 +610,7 @@ std::string cmCPackWIXGenerator::GetRootFolderId() const
|
||||
|
||||
bool cmCPackWIXGenerator::GenerateMainSourceFileFromTemplate()
|
||||
{
|
||||
std::string wixTemplate = FindTemplate("Internal/CPack/WIX.template.in");
|
||||
std::string wixTemplate = FindTemplate("WIX.template.in");
|
||||
if (GetOption("CPACK_WIX_TEMPLATE") != 0) {
|
||||
wixTemplate = GetOption("CPACK_WIX_TEMPLATE");
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "cmState.h"
|
||||
#include "cmStateSnapshot.h"
|
||||
#include "cmStringAlgorithms.h"
|
||||
#include "cmSystemTools.h"
|
||||
#include "cmVersion.h"
|
||||
#include "cmWorkingDirectory.h"
|
||||
#include "cmXMLSafe.h"
|
||||
@ -1262,7 +1263,17 @@ std::string cmCPackGenerator::FindTemplate(const char* name)
|
||||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||
"Look for template: " << (name ? name : "(NULL)")
|
||||
<< std::endl);
|
||||
// Search CMAKE_MODULE_PATH for a custom template.
|
||||
std::string ffile = this->MakefileMap->GetModulesFile(name);
|
||||
if (ffile.empty()) {
|
||||
// Fall back to our internal builtin default.
|
||||
ffile = cmStrCat(cmSystemTools::GetCMakeRoot(), "/Modules/Internal/CPack/",
|
||||
name);
|
||||
cmSystemTools::ConvertToUnixSlashes(ffile);
|
||||
if (!cmSystemTools::FileExists(ffile)) {
|
||||
ffile.clear();
|
||||
}
|
||||
}
|
||||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||
"Found template: " << ffile << std::endl);
|
||||
return ffile;
|
||||
|
@ -39,8 +39,7 @@ int cmCPackNSISGenerator::PackageFiles()
|
||||
{
|
||||
// TODO: Fix nsis to force out file name
|
||||
|
||||
std::string nsisInFileName =
|
||||
this->FindTemplate("Internal/CPack/NSIS.template.in");
|
||||
std::string nsisInFileName = this->FindTemplate("NSIS.template.in");
|
||||
if (nsisInFileName.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
"CPack error: Could not find NSIS installer template file."
|
||||
@ -48,7 +47,7 @@ int cmCPackNSISGenerator::PackageFiles()
|
||||
return false;
|
||||
}
|
||||
std::string nsisInInstallOptions =
|
||||
this->FindTemplate("Internal/CPack/NSIS.InstallOptions.ini.in");
|
||||
this->FindTemplate("NSIS.InstallOptions.ini.in");
|
||||
if (nsisInInstallOptions.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
"CPack error: Could not find NSIS installer options file."
|
||||
|
@ -240,7 +240,7 @@ bool cmCPackOSXX11Generator::CopyResourcePlistFile(
|
||||
const std::string& name, const std::string& dir,
|
||||
const char* outputFileName /* = 0 */, bool copyOnly /* = false */)
|
||||
{
|
||||
std::string inFName = cmStrCat("Internal/CPack/CPack.", name, ".in");
|
||||
std::string inFName = cmStrCat("CPack.", name, ".in");
|
||||
std::string inFileName = this->FindTemplate(inFName.c_str());
|
||||
if (inFileName.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
|
@ -49,7 +49,7 @@ std::string cmCPackPKGGenerator::GetPackageName(
|
||||
void cmCPackPKGGenerator::WriteDistributionFile(const char* metapackageFile)
|
||||
{
|
||||
std::string distributionTemplate =
|
||||
this->FindTemplate("Internal/CPack/CPack.distribution.dist.in");
|
||||
this->FindTemplate("CPack.distribution.dist.in");
|
||||
if (distributionTemplate.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
"Cannot find input file: " << distributionTemplate
|
||||
@ -300,7 +300,7 @@ bool cmCPackPKGGenerator::CopyResourcePlistFile(const std::string& name,
|
||||
outName = name.c_str();
|
||||
}
|
||||
|
||||
std::string inFName = cmStrCat("Internal/CPack/CPack.", name, ".in");
|
||||
std::string inFName = cmStrCat("CPack.", name, ".in");
|
||||
std::string inFileName = this->FindTemplate(inFName.c_str());
|
||||
if (inFileName.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
|
@ -27,8 +27,7 @@ int cmCPackSTGZGenerator::InitializeInternal()
|
||||
{
|
||||
this->SetOptionIfNotSet("CPACK_INCLUDE_TOPLEVEL_DIRECTORY", "0");
|
||||
|
||||
std::string inFile =
|
||||
this->FindTemplate("Internal/CPack/CPack.STGZ_Header.sh.in");
|
||||
std::string inFile = this->FindTemplate("CPack.STGZ_Header.sh.in");
|
||||
if (inFile.empty()) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
"Cannot find template file: " << inFile << std::endl);
|
||||
|
Loading…
Reference in New Issue
Block a user