summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2021-09-14 16:41:44 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2021-09-15 16:30:41 (GMT)
commit7aeb2622789d04e57051f3592908c5f27d31bb17 (patch)
tree408b13f24fee934ba22e6fa937817895d8bf63d7
parent1375862764faad681b45e6ca99e542862e9ae62c (diff)
downloadCMake-7aeb2622789d04e57051f3592908c5f27d31bb17.zip
CMake-7aeb2622789d04e57051f3592908c5f27d31bb17.tar.gz
CMake-7aeb2622789d04e57051f3592908c5f27d31bb17.tar.bz2
cmCPackGenerator::SetOption accepts cmProp or std::string
-rw-r--r--Source/CPack/cmCPackGenerator.cxx29
-rw-r--r--Source/CPack/cmCPackGenerator.h16
2 files changed, 41 insertions, 4 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 4ad25ad..f55b068 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -994,17 +994,29 @@ bool cmCPackGenerator::ReadListFile(const char* moduleName)
return retval;
}
-void cmCPackGenerator::SetOptionIfNotSet(const std::string& op,
- const char* value)
+template <typename ValueType>
+void cmCPackGenerator::StoreOptionIfNotSet(const std::string& op,
+ ValueType value)
{
cmProp def = this->MakefileMap->GetDefinition(op);
if (cmNonempty(def)) {
return;
}
- this->SetOption(op, value);
+ this->StoreOption(op, value);
}
-void cmCPackGenerator::SetOption(const std::string& op, const char* value)
+void cmCPackGenerator::SetOptionIfNotSet(const std::string& op,
+ const char* value)
+{
+ this->StoreOptionIfNotSet(op, value);
+}
+void cmCPackGenerator::SetOptionIfNotSet(const std::string& op, cmProp value)
+{
+ this->StoreOptionIfNotSet(op, value);
+}
+
+template <typename ValueType>
+void cmCPackGenerator::StoreOption(const std::string& op, ValueType value)
{
if (!value) {
this->MakefileMap->RemoveDefinition(op);
@@ -1016,6 +1028,15 @@ void cmCPackGenerator::SetOption(const std::string& op, const char* value)
this->MakefileMap->AddDefinition(op, value);
}
+void cmCPackGenerator::SetOption(const std::string& op, const char* value)
+{
+ this->StoreOption(op, value);
+}
+void cmCPackGenerator::SetOption(const std::string& op, cmProp value)
+{
+ this->StoreOption(op, value);
+}
+
int cmCPackGenerator::DoPackage()
{
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h
index 1968c35..e63a830 100644
--- a/Source/CPack/cmCPackGenerator.h
+++ b/Source/CPack/cmCPackGenerator.h
@@ -85,7 +85,17 @@ public:
//! Set and get the options
void SetOption(const std::string& op, const char* value);
+ void SetOption(const std::string& op, const std::string& value)
+ {
+ this->SetOption(op, cmProp(value));
+ }
+ void SetOption(const std::string& op, cmProp value);
void SetOptionIfNotSet(const std::string& op, const char* value);
+ void SetOptionIfNotSet(const std::string& op, const std::string& value)
+ {
+ this->SetOptionIfNotSet(op, cmProp(value));
+ }
+ void SetOptionIfNotSet(const std::string& op, cmProp value);
cmProp GetOption(const std::string& op) const;
std::vector<std::string> GetOptions() const;
bool IsSet(const std::string& name) const;
@@ -324,6 +334,12 @@ protected:
bool TraceExpand;
cmMakefile* MakefileMap;
+
+private:
+ template <typename ValueType>
+ void StoreOption(const std::string& op, ValueType value);
+ template <typename ValueType>
+ void StoreOptionIfNotSet(const std::string& op, ValueType value);
};
#define cmCPackTypeMacro(klass, superclass) \