diff options
author | Brad King <brad.king@kitware.com> | 2012-07-11 19:03:21 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-07-11 19:10:40 (GMT) |
commit | 8720aa0496bad1381a6636a3c4a6d5d550381960 (patch) | |
tree | 68ffe5cf57608b695ca5e1c10b33ad4f65afa60e /Source | |
parent | b71e731b9b91f9f79ab49838baae5bb5ab42c30e (diff) | |
download | CMake-8720aa0496bad1381a6636a3c4a6d5d550381960.zip CMake-8720aa0496bad1381a6636a3c4a6d5d550381960.tar.gz CMake-8720aa0496bad1381a6636a3c4a6d5d550381960.tar.bz2 |
install: Fix COMPONENT option
Since commit 7ced0732 (make default install component name configurable,
2012-05-13) the COMPONENT option has not worked in all cases. The
change restored use of the broken SetDefaultString previously removed by
commit 43cad3e4 (fix the default "Unspecified" component, 2008-03-26).
Remove SetDefaultString and use the default component name only when an
invocation does not specify a non-empty COMPONENT option value.
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680825
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmCommandArgumentsHelper.cxx | 2 | ||||
-rw-r--r-- | Source/cmCommandArgumentsHelper.h | 3 | ||||
-rw-r--r-- | Source/cmInstallCommandArguments.cxx | 7 | ||||
-rw-r--r-- | Source/cmInstallCommandArguments.h | 1 |
4 files changed, 7 insertions, 6 deletions
diff --git a/Source/cmCommandArgumentsHelper.cxx b/Source/cmCommandArgumentsHelper.cxx index 1c906a6..d920137 100644 --- a/Source/cmCommandArgumentsHelper.cxx +++ b/Source/cmCommandArgumentsHelper.cxx @@ -178,7 +178,7 @@ bool cmCAString::DoConsume(const std::string& arg, unsigned int index) void cmCAString::DoReset() { - this->String = this->DefaultString; + this->String = ""; } cmCAEnabler::cmCAEnabler(cmCommandArgumentsHelper* args, diff --git a/Source/cmCommandArgumentsHelper.h b/Source/cmCommandArgumentsHelper.h index cb33ccd..3b0b058 100644 --- a/Source/cmCommandArgumentsHelper.h +++ b/Source/cmCommandArgumentsHelper.h @@ -125,11 +125,8 @@ class cmCAString : public cmCommandArgument /// Return the string const std::string& GetString() const {return this->String;} const char* GetCString() const {return this->String.c_str();} - void SetDefaultString(const char* text) - {this->DefaultString = (text ? text : "");} private: std::string String; - std::string DefaultString; unsigned int DataStart; virtual bool DoConsume(const std::string& arg, unsigned int index); virtual void DoReset(); diff --git a/Source/cmInstallCommandArguments.cxx b/Source/cmInstallCommandArguments.cxx index 0ba21c7..8e48f08 100644 --- a/Source/cmInstallCommandArguments.cxx +++ b/Source/cmInstallCommandArguments.cxx @@ -36,8 +36,8 @@ cmInstallCommandArguments::cmInstallCommandArguments( ,NamelinkOnly (&Parser, "NAMELINK_ONLY" , &ArgumentGroup) ,NamelinkSkip (&Parser, "NAMELINK_SKIP" , &ArgumentGroup) ,GenericArguments(0) +,DefaultComponentName(defaultComponent) { - this->Component.SetDefaultString(defaultComponent.c_str()); } const std::string& cmInstallCommandArguments::GetDestination() const @@ -63,7 +63,10 @@ const std::string& cmInstallCommandArguments::GetComponent() const { return this->GenericArguments->GetComponent(); } - + if (!this->DefaultComponentName.empty()) + { + return this->DefaultComponentName; + } static std::string unspecifiedComponent = "Unspecified"; return unspecifiedComponent; } diff --git a/Source/cmInstallCommandArguments.h b/Source/cmInstallCommandArguments.h index 321454a..01f7d56 100644 --- a/Source/cmInstallCommandArguments.h +++ b/Source/cmInstallCommandArguments.h @@ -61,6 +61,7 @@ class cmInstallCommandArguments cmInstallCommandArguments* GenericArguments; static const char* PermissionsTable[]; static const std::string EmptyString; + std::string DefaultComponentName; bool CheckPermissions(); }; |