summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-07-11 19:03:21 (GMT)
committerBrad King <brad.king@kitware.com>2012-07-11 19:10:40 (GMT)
commit8720aa0496bad1381a6636a3c4a6d5d550381960 (patch)
tree68ffe5cf57608b695ca5e1c10b33ad4f65afa60e
parentb71e731b9b91f9f79ab49838baae5bb5ab42c30e (diff)
downloadCMake-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
-rw-r--r--Source/cmCommandArgumentsHelper.cxx2
-rw-r--r--Source/cmCommandArgumentsHelper.h3
-rw-r--r--Source/cmInstallCommandArguments.cxx7
-rw-r--r--Source/cmInstallCommandArguments.h1
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();
};