diff options
author | Marc Chevrier <marc.chevrier@gmail.com> | 2021-09-14 16:41:44 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@gmail.com> | 2021-09-15 16:30:41 (GMT) |
commit | 7aeb2622789d04e57051f3592908c5f27d31bb17 (patch) | |
tree | 408b13f24fee934ba22e6fa937817895d8bf63d7 | |
parent | 1375862764faad681b45e6ca99e542862e9ae62c (diff) | |
download | CMake-7aeb2622789d04e57051f3592908c5f27d31bb17.zip CMake-7aeb2622789d04e57051f3592908c5f27d31bb17.tar.gz CMake-7aeb2622789d04e57051f3592908c5f27d31bb17.tar.bz2 |
cmCPackGenerator::SetOption accepts cmProp or std::string
-rw-r--r-- | Source/CPack/cmCPackGenerator.cxx | 29 | ||||
-rw-r--r-- | Source/CPack/cmCPackGenerator.h | 16 |
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) \ |