summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2012-05-24 17:37:54 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2012-05-24 17:37:54 (GMT)
commit59bdb879e8355537a30aa5a39b72ad54146d2c9b (patch)
tree23fc51c3b277658428f693a3b615abe1f5243581 /Source
parent1e3dde2ddb20457d6a5ca3399d3add46f37c2516 (diff)
parentb71e731b9b91f9f79ab49838baae5bb5ab42c30e (diff)
downloadCMake-59bdb879e8355537a30aa5a39b72ad54146d2c9b.zip
CMake-59bdb879e8355537a30aa5a39b72ad54146d2c9b.tar.gz
CMake-59bdb879e8355537a30aa5a39b72ad54146d2c9b.tar.bz2
Merge topic 'MakeDefaultInstallComponentNameConfigurable'
b71e731 -add docs for ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME} 7ced073 make default install component name configurable b6fba35 -strip trailing whitespace
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDocumentVariables.cxx10
-rw-r--r--Source/cmInstallCommand.cxx77
-rw-r--r--Source/cmInstallCommand.h4
-rw-r--r--Source/cmInstallCommandArguments.cxx19
-rw-r--r--Source/cmInstallCommandArguments.h11
-rw-r--r--Source/cmInstallFilesCommand.cxx32
-rw-r--r--Source/cmInstallProgramsCommand.cxx26
-rw-r--r--Source/cmInstallTargetsCommand.cxx3
8 files changed, 105 insertions, 77 deletions
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 897e516..6881236 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -523,6 +523,16 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
"Variables That Change Behavior");
cm->DefineProperty
+ ("CMAKE_INSTALL_DEFAULT_COMPONENT_NAME", cmProperty::VARIABLE,
+ "Default component used in install() commands.",
+ "If an install() command is used without the COMPONENT argument, "
+ "these files will be grouped into a default component. The name of this "
+ "default install component will be taken from this variable. "
+ "It defaults to \"Unspecified\". ",
+ false,
+ "Variables That Change Behavior");
+
+ cm->DefineProperty
("CMAKE_FIND_LIBRARY_PREFIXES", cmProperty::VARIABLE,
"Prefixes to prepend when looking for libraries.",
"This specifies what prefixes to add to library names when "
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index c656487..4016734 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -23,25 +23,25 @@
static cmInstallTargetGenerator* CreateInstallTargetGenerator(cmTarget& target,
const cmInstallCommandArguments& args, bool impLib, bool forceOpt = false)
{
- return new cmInstallTargetGenerator(target, args.GetDestination().c_str(),
- impLib, args.GetPermissions().c_str(),
+ return new cmInstallTargetGenerator(target, args.GetDestination().c_str(),
+ impLib, args.GetPermissions().c_str(),
args.GetConfigurations(), args.GetComponent().c_str(),
args.GetOptional() || forceOpt);
}
static cmInstallFilesGenerator* CreateInstallFilesGenerator(
- const std::vector<std::string>& absFiles,
+ const std::vector<std::string>& absFiles,
const cmInstallCommandArguments& args, bool programs)
{
- return new cmInstallFilesGenerator(absFiles, args.GetDestination().c_str(),
- programs, args.GetPermissions().c_str(),
+ return new cmInstallFilesGenerator(absFiles, args.GetDestination().c_str(),
+ programs, args.GetPermissions().c_str(),
args.GetConfigurations(), args.GetComponent().c_str(),
args.GetRename().c_str(), args.GetOptional());
}
// cmInstallCommand
-bool cmInstallCommand::InitialPass(std::vector<std::string> const& args,
+bool cmInstallCommand::InitialPass(std::vector<std::string> const& args,
cmExecutionStatus &)
{
// Allow calling with no arguments so that arguments may be built up
@@ -55,6 +55,13 @@ bool cmInstallCommand::InitialPass(std::vector<std::string> const& args,
this->Makefile->GetLocalGenerator()
->GetGlobalGenerator()->EnableInstallTarget();
+ this->DefaultComponentName = this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME");
+ if (this->DefaultComponentName.empty())
+ {
+ this->DefaultComponentName = "Unspecified";
+ }
+
// Switch among the command modes.
if(args[0] == "SCRIPT")
{
@@ -95,7 +102,7 @@ bool cmInstallCommand::InitialPass(std::vector<std::string> const& args,
//----------------------------------------------------------------------------
bool cmInstallCommand::HandleScriptMode(std::vector<std::string> const& args)
{
- std::string component("Unspecified");
+ std::string component = this->DefaultComponentName;
int componentCount = 0;
bool doing_script = false;
bool doing_code = false;
@@ -190,7 +197,7 @@ bool cmInstallCommand::HandleScriptMode(std::vector<std::string> const& args)
/*struct InstallPart
{
- InstallPart(cmCommandArgumentsHelper* helper, const char* key,
+ InstallPart(cmCommandArgumentsHelper* helper, const char* key,
cmCommandArgumentGroup* group);
cmCAStringVector argVector;
cmInstallCommandArguments args;
@@ -222,7 +229,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// ARCHIVE, RUNTIME etc. (see above)
// These generic args also contain the targets and the export stuff
std::vector<std::string> unknownArgs;
- cmInstallCommandArguments genericArgs;
+ cmInstallCommandArguments genericArgs(this->DefaultComponentName);
cmCAStringVector targetList(&genericArgs.Parser, "TARGETS");
cmCAString exports(&genericArgs.Parser,"EXPORT", &genericArgs.ArgumentGroup);
targetList.Follows(0);
@@ -230,16 +237,16 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
genericArgs.Parse(&genericArgVector.GetVector(), &unknownArgs);
bool success = genericArgs.Finalize();
- cmInstallCommandArguments archiveArgs;
- cmInstallCommandArguments libraryArgs;
- cmInstallCommandArguments runtimeArgs;
- cmInstallCommandArguments frameworkArgs;
- cmInstallCommandArguments bundleArgs;
- cmInstallCommandArguments privateHeaderArgs;
- cmInstallCommandArguments publicHeaderArgs;
- cmInstallCommandArguments resourceArgs;
+ cmInstallCommandArguments archiveArgs(this->DefaultComponentName);
+ cmInstallCommandArguments libraryArgs(this->DefaultComponentName);
+ cmInstallCommandArguments runtimeArgs(this->DefaultComponentName);
+ cmInstallCommandArguments frameworkArgs(this->DefaultComponentName);
+ cmInstallCommandArguments bundleArgs(this->DefaultComponentName);
+ cmInstallCommandArguments privateHeaderArgs(this->DefaultComponentName);
+ cmInstallCommandArguments publicHeaderArgs(this->DefaultComponentName);
+ cmInstallCommandArguments resourceArgs(this->DefaultComponentName);
- // now parse the args for specific parts of the target (e.g. LIBRARY,
+ // now parse the args for specific parts of the target (e.g. LIBRARY,
// RUNTIME, ARCHIVE etc.
archiveArgs.Parse (&archiveArgVector.GetVector(), &unknownArgs);
libraryArgs.Parse (&libraryArgVector.GetVector(), &unknownArgs);
@@ -345,7 +352,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
this->Makefile->IsOn("CYGWIN") ||
this->Makefile->IsOn("MINGW"));
- for(std::vector<std::string>::const_iterator
+ for(std::vector<std::string>::const_iterator
targetIt=targetList.GetVector().begin();
targetIt!=targetList.GetVector().end();
++targetIt)
@@ -422,7 +429,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
case cmTarget::SHARED_LIBRARY:
{
// Shared libraries are handled differently on DLL and non-DLL
- // platforms. All windows platforms are DLL platforms including
+ // platforms. All windows platforms are DLL platforms including
// cygwin. Currently no other platform is a DLL platform.
if(dll_platform)
{
@@ -436,13 +443,13 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
if(!archiveArgs.GetDestination().empty())
{
// The import library uses the ARCHIVE properties.
- archiveGenerator = CreateInstallTargetGenerator(target,
+ archiveGenerator = CreateInstallTargetGenerator(target,
archiveArgs, true);
}
if(!runtimeArgs.GetDestination().empty())
{
// The DLL uses the RUNTIME properties.
- runtimeGenerator = CreateInstallTargetGenerator(target,
+ runtimeGenerator = CreateInstallTargetGenerator(target,
runtimeArgs, false);
}
if ((archiveGenerator==0) && (runtimeGenerator==0))
@@ -467,7 +474,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// Use the FRAMEWORK properties.
if (!frameworkArgs.GetDestination().empty())
{
- frameworkGenerator = CreateInstallTargetGenerator(target,
+ frameworkGenerator = CreateInstallTargetGenerator(target,
frameworkArgs, false);
}
else
@@ -484,7 +491,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// The shared library uses the LIBRARY properties.
if (!libraryArgs.GetDestination().empty())
{
- libraryGenerator = CreateInstallTargetGenerator(target,
+ libraryGenerator = CreateInstallTargetGenerator(target,
libraryArgs, false);
libraryGenerator->SetNamelinkMode(namelinkMode);
namelinkOnly =
@@ -507,7 +514,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// Static libraries use ARCHIVE properties.
if (!archiveArgs.GetDestination().empty())
{
- archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs,
+ archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs,
false);
}
else
@@ -525,7 +532,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// Modules use LIBRARY properties.
if (!libraryArgs.GetDestination().empty())
{
- libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs,
+ libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs,
false);
libraryGenerator->SetNamelinkMode(namelinkMode);
namelinkOnly =
@@ -548,7 +555,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// Application bundles use the BUNDLE properties.
if (!bundleArgs.GetDestination().empty())
{
- bundleGenerator = CreateInstallTargetGenerator(target, bundleArgs,
+ bundleGenerator = CreateInstallTargetGenerator(target, bundleArgs,
false);
}
else if(!runtimeArgs.GetDestination().empty())
@@ -580,7 +587,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
// Executables use the RUNTIME properties.
if (!runtimeArgs.GetDestination().empty())
{
- runtimeGenerator = CreateInstallTargetGenerator(target,
+ runtimeGenerator = CreateInstallTargetGenerator(target,
runtimeArgs, false);
}
else
@@ -600,7 +607,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
target.IsExecutableWithExports())
{
// The import library uses the ARCHIVE properties.
- archiveGenerator = CreateInstallTargetGenerator(target,
+ archiveGenerator = CreateInstallTargetGenerator(target,
archiveArgs, true, true);
}
}
@@ -710,7 +717,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
installsRuntime = installsRuntime || runtimeGenerator != 0;
installsFramework = installsFramework || frameworkGenerator != 0;
installsBundle = installsBundle || bundleGenerator != 0;
- installsPrivateHeader = installsPrivateHeader
+ installsPrivateHeader = installsPrivateHeader
|| privateHeaderGenerator != 0;
installsPublicHeader = installsPublicHeader || publicHeaderGenerator != 0;
installsResource = installsResource || resourceGenerator;
@@ -729,7 +736,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
if(!exports.GetString().empty() && !namelinkOnly)
{
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
- ->AddTargetToExports(exports.GetCString(), &target,
+ ->AddTargetToExports(exports.GetCString(), &target,
archiveGenerator, runtimeGenerator,
libraryGenerator, frameworkGenerator,
bundleGenerator, publicHeaderGenerator);
@@ -788,7 +795,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
{
// This is the FILES mode.
bool programs = (args[0] == "PROGRAMS");
- cmInstallCommandArguments ica;
+ cmInstallCommandArguments ica(this->DefaultComponentName);
cmCAStringVector files(&ica.Parser, programs ? "PROGRAMS" : "FILES");
files.Follows(0);
ica.ArgumentGroup.Follows(&files);
@@ -803,7 +810,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector<std::string> const& args)
this->SetError(e.str().c_str());
return false;
}
-
+
// Check if there is something to do.
if(files.GetVector().empty())
{
@@ -865,7 +872,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
std::string permissions_file;
std::string permissions_dir;
std::vector<std::string> configurations;
- std::string component = "Unspecified";
+ std::string component = this->DefaultComponentName;
std::string literal_args;
for(unsigned int i=1; i < args.size(); ++i)
{
@@ -1179,7 +1186,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector<std::string> const& args)
bool cmInstallCommand::HandleExportMode(std::vector<std::string> const& args)
{
// This is the EXPORT mode.
- cmInstallCommandArguments ica;
+ cmInstallCommandArguments ica(this->DefaultComponentName);
cmCAString exp(&ica.Parser, "EXPORT");
cmCAString name_space(&ica.Parser, "NAMESPACE", &ica.ArgumentGroup);
cmCAString filename(&ica.Parser, "FILE", &ica.ArgumentGroup);
diff --git a/Source/cmInstallCommand.h b/Source/cmInstallCommand.h
index 3403c38..bf9fd9e 100644
--- a/Source/cmInstallCommand.h
+++ b/Source/cmInstallCommand.h
@@ -337,10 +337,12 @@ private:
bool HandleFilesMode(std::vector<std::string> const& args);
bool HandleDirectoryMode(std::vector<std::string> const& args);
bool HandleExportMode(std::vector<std::string> const& args);
- bool MakeFilesFullPath(const char* modeName,
+ bool MakeFilesFullPath(const char* modeName,
const std::vector<std::string>& relFiles,
std::vector<std::string>& absFiles);
bool CheckCMP0006(bool& failure);
+
+ std::string DefaultComponentName;
};
diff --git a/Source/cmInstallCommandArguments.cxx b/Source/cmInstallCommandArguments.cxx
index 13ef8ed..0ba21c7 100644
--- a/Source/cmInstallCommandArguments.cxx
+++ b/Source/cmInstallCommandArguments.cxx
@@ -23,7 +23,8 @@ const char* cmInstallCommandArguments::PermissionsTable[] =
const std::string cmInstallCommandArguments::EmptyString;
-cmInstallCommandArguments::cmInstallCommandArguments()
+cmInstallCommandArguments::cmInstallCommandArguments(
+ const std::string& defaultComponent)
:Parser()
,ArgumentGroup()
,Destination (&Parser, "DESTINATION" , &ArgumentGroup)
@@ -35,7 +36,9 @@ cmInstallCommandArguments::cmInstallCommandArguments()
,NamelinkOnly (&Parser, "NAMELINK_ONLY" , &ArgumentGroup)
,NamelinkSkip (&Parser, "NAMELINK_SKIP" , &ArgumentGroup)
,GenericArguments(0)
-{}
+{
+ this->Component.SetDefaultString(defaultComponent.c_str());
+}
const std::string& cmInstallCommandArguments::GetDestination() const
{
@@ -130,7 +133,7 @@ bool cmInstallCommandArguments::GetNamelinkSkip() const
return false;
}
-const std::vector<std::string>&
+const std::vector<std::string>&
cmInstallCommandArguments::GetConfigurations() const
{
if (!this->Configurations.GetVector().empty())
@@ -156,7 +159,7 @@ bool cmInstallCommandArguments::Finalize()
return true;
}
-void cmInstallCommandArguments::Parse(const std::vector<std::string>* args,
+void cmInstallCommandArguments::Parse(const std::vector<std::string>* args,
std::vector<std::string>* unconsumedArgs)
{
this->Parser.Parse(args, unconsumedArgs);
@@ -166,9 +169,9 @@ void cmInstallCommandArguments::Parse(const std::vector<std::string>* args,
bool cmInstallCommandArguments::CheckPermissions()
{
this->PermissionsString = "";
- for(std::vector<std::string>::const_iterator
- permIt = this->Permissions.GetVector().begin();
- permIt != this->Permissions.GetVector().end();
+ for(std::vector<std::string>::const_iterator
+ permIt = this->Permissions.GetVector().begin();
+ permIt != this->Permissions.GetVector().end();
++permIt)
{
if (!this->CheckPermissions(*permIt, this->PermissionsString))
@@ -183,7 +186,7 @@ bool cmInstallCommandArguments::CheckPermissions(
const std::string& onePermission, std::string& permissions)
{
// Check the permission against the table.
- for(const char** valid = cmInstallCommandArguments::PermissionsTable;
+ for(const char** valid = cmInstallCommandArguments::PermissionsTable;
*valid; ++valid)
{
if(onePermission == *valid)
diff --git a/Source/cmInstallCommandArguments.h b/Source/cmInstallCommandArguments.h
index 16033ce..321454a 100644
--- a/Source/cmInstallCommandArguments.h
+++ b/Source/cmInstallCommandArguments.h
@@ -19,10 +19,10 @@
class cmInstallCommandArguments
{
public:
- cmInstallCommandArguments();
- void SetGenericArguments(cmInstallCommandArguments* args)
+ cmInstallCommandArguments(const std::string& defaultComponent);
+ void SetGenericArguments(cmInstallCommandArguments* args)
{this->GenericArguments = args;}
- void Parse(const std::vector<std::string>* args,
+ void Parse(const std::vector<std::string>* args,
std::vector<std::string>* unconsumedArgs);
// Compute destination path.and check permissions
@@ -37,14 +37,15 @@ class cmInstallCommandArguments
bool GetNamelinkOnly() const;
bool GetNamelinkSkip() const;
- // once HandleDirectoryMode() is also switched to using
+ // once HandleDirectoryMode() is also switched to using
// cmInstallCommandArguments then these two functions can become non-static
// private member functions without arguments
- static bool CheckPermissions(const std::string& onePerm,
+ static bool CheckPermissions(const std::string& onePerm,
std::string& perm);
cmCommandArgumentsHelper Parser;
cmCommandArgumentGroup ArgumentGroup;
private:
+ cmInstallCommandArguments(); // disabled
cmCAString Destination;
cmCAString Component;
cmCAString Rename;
diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx
index 0ec3030..cc62c4b 100644
--- a/Source/cmInstallFilesCommand.cxx
+++ b/Source/cmInstallFilesCommand.cxx
@@ -34,7 +34,7 @@ bool cmInstallFilesCommand
if((args.size() > 1) && (args[1] == "FILES"))
{
- this->IsFilesForm = true;
+ this->IsFilesForm = true;
for(std::vector<std::string>::const_iterator s = args.begin()+2;
s != args.end(); ++s)
{
@@ -53,45 +53,46 @@ bool cmInstallFilesCommand
this->FinalArgs.push_back(*s);
}
}
-
+
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
- ->AddInstallComponent("Unspecified");
+ ->AddInstallComponent(this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"));
return true;
}
-void cmInstallFilesCommand::FinalPass()
+void cmInstallFilesCommand::FinalPass()
{
// No final pass for "FILES" form of arguments.
if(this->IsFilesForm)
{
return;
}
-
+
std::string testf;
std::string ext = this->FinalArgs[0];
-
+
// two different options
if (this->FinalArgs.size() > 1)
{
// now put the files into the list
std::vector<std::string>::iterator s = this->FinalArgs.begin();
++s;
- // for each argument, get the files
+ // for each argument, get the files
for (;s != this->FinalArgs.end(); ++s)
{
// replace any variables
std::string temps = *s;
if (cmSystemTools::GetFilenamePath(temps).size() > 0)
{
- testf = cmSystemTools::GetFilenamePath(temps) + "/" +
+ testf = cmSystemTools::GetFilenamePath(temps) + "/" +
cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext;
}
else
{
testf = cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext;
}
-
+
// add to the result
this->Files.push_back(this->FindInstallSource(testf.c_str()));
}
@@ -102,9 +103,9 @@ void cmInstallFilesCommand::FinalPass()
std::string regex = this->FinalArgs[0].c_str();
cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(),
regex.c_str(), files);
-
+
std::vector<std::string>::iterator s = files.begin();
- // for each argument, get the files
+ // for each argument, get the files
for (;s != files.end(); ++s)
{
this->Files.push_back(this->FindInstallSource(s->c_str()));
@@ -128,13 +129,14 @@ void cmInstallFilesCommand::CreateInstallGenerator() const
// Use a file install generator.
const char* no_permissions = "";
const char* no_rename = "";
- const char* no_component = "Unspecified";
+ std::string no_component = this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME");
std::vector<std::string> no_configurations;
this->Makefile->AddInstallGenerator(
new cmInstallFilesGenerator(this->Files,
destination.c_str(), false,
no_permissions, no_configurations,
- no_component, no_rename));
+ no_component.c_str(), no_rename));
}
@@ -151,7 +153,7 @@ std::string cmInstallFilesCommand::FindInstallSource(const char* name) const
// This is a full path.
return name;
}
-
+
// This is a relative path.
std::string tb = this->Makefile->GetCurrentOutputDirectory();
tb += "/";
@@ -159,7 +161,7 @@ std::string cmInstallFilesCommand::FindInstallSource(const char* name) const
std::string ts = this->Makefile->GetCurrentDirectory();
ts += "/";
ts += name;
-
+
if(cmSystemTools::FileExists(tb.c_str()))
{
// The file exists in the binary tree. Use it.
diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx
index 7e6c9ce..3a0a322 100644
--- a/Source/cmInstallProgramsCommand.cxx
+++ b/Source/cmInstallProgramsCommand.cxx
@@ -31,26 +31,27 @@ bool cmInstallProgramsCommand
for (++s;s != args.end(); ++s)
{
this->FinalArgs.push_back(*s);
- }
-
+ }
+
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
- ->AddInstallComponent("Unspecified");
+ ->AddInstallComponent(this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"));
return true;
}
-void cmInstallProgramsCommand::FinalPass()
+void cmInstallProgramsCommand::FinalPass()
{
bool files_mode = false;
if(!this->FinalArgs.empty() && this->FinalArgs[0] == "FILES")
{
files_mode = true;
}
-
+
// two different options
if (this->FinalArgs.size() > 1 || files_mode)
{
- // for each argument, get the programs
+ // for each argument, get the programs
std::vector<std::string>::iterator s = this->FinalArgs.begin();
if(files_mode)
{
@@ -68,9 +69,9 @@ void cmInstallProgramsCommand::FinalPass()
std::vector<std::string> programs;
cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(),
this->FinalArgs[0].c_str(), programs);
-
+
std::vector<std::string>::iterator s = programs.begin();
- // for each argument, get the programs
+ // for each argument, get the programs
for (;s != programs.end(); ++s)
{
this->Files.push_back(this->FindInstallSource(s->c_str()));
@@ -89,13 +90,14 @@ void cmInstallProgramsCommand::FinalPass()
// Use a file install generator.
const char* no_permissions = "";
const char* no_rename = "";
- const char* no_component = "Unspecified";
+ std::string no_component = this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME");
std::vector<std::string> no_configurations;
this->Makefile->AddInstallGenerator(
new cmInstallFilesGenerator(this->Files,
destination.c_str(), true,
no_permissions, no_configurations,
- no_component, no_rename));
+ no_component.c_str(), no_rename));
}
/**
@@ -112,7 +114,7 @@ std::string cmInstallProgramsCommand
// This is a full path.
return name;
}
-
+
// This is a relative path.
std::string tb = this->Makefile->GetCurrentOutputDirectory();
tb += "/";
@@ -120,7 +122,7 @@ std::string cmInstallProgramsCommand
std::string ts = this->Makefile->GetCurrentDirectory();
ts += "/";
ts += name;
-
+
if(cmSystemTools::FileExists(tb.c_str()))
{
// The file exists in the binary tree. Use it.
diff --git a/Source/cmInstallTargetsCommand.cxx b/Source/cmInstallTargetsCommand.cxx
index 27fc175..277ccea 100644
--- a/Source/cmInstallTargetsCommand.cxx
+++ b/Source/cmInstallTargetsCommand.cxx
@@ -58,7 +58,8 @@ bool cmInstallTargetsCommand
}
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()
- ->AddInstallComponent("Unspecified");
+ ->AddInstallComponent(this->Makefile->GetSafeDefinition(
+ "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"));
return true;
}