install: Fix COMPONENT option
Since commit7ced0732
(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 commit43cad3e4
(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
This commit is contained in:
parent
b71e731b9b
commit
8720aa0496
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ class cmInstallCommandArguments
|
|||
cmInstallCommandArguments* GenericArguments;
|
||||
static const char* PermissionsTable[];
|
||||
static const std::string EmptyString;
|
||||
std::string DefaultComponentName;
|
||||
bool CheckPermissions();
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue