summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2005-06-16 15:48:43 (GMT)
committerKen Martin <ken.martin@kitware.com>2005-06-16 15:48:43 (GMT)
commitfbf40e202a86c22868ce5394014606de331356c5 (patch)
tree60b862f32489ccc7b54beb4a9ed5f9467d77be29
parent0fa75654078f81b19ab7bcee9ecc6642a13dcabb (diff)
downloadCMake-fbf40e202a86c22868ce5394014606de331356c5.zip
CMake-fbf40e202a86c22868ce5394014606de331356c5.tar.gz
CMake-fbf40e202a86c22868ce5394014606de331356c5.tar.bz2
ENH: add first cut at support for exe with same name as lib
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx11
-rw-r--r--Source/cmLocalVisualStudio6Generator.cxx19
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx11
-rw-r--r--Source/cmSetTargetPropertiesCommand.h2
4 files changed, 37 insertions, 6 deletions
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index cee2a0d..51c5a31 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1314,7 +1314,16 @@ cmLocalUnixMakefileGenerator3
targetFullPath += ".app/Contents/MacOS/";
}
#endif
- targetFullPath += target.GetName();
+
+ // do we have a different executable name?
+ if (target.GetProperty("OUTPUT_NAME"))
+ {
+ targetFullPath += target.GetProperty("OUTPUT_NAME");
+ }
+ else
+ {
+ targetFullPath += target.GetName();
+ }
targetFullPath += cmSystemTools::GetExecutableExtension();
// Convert to the output path to use in constructing commands.
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index f463717..dfb1ca5 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -739,9 +739,11 @@ inline std::string removeQuotes(const std::string& s)
}
-void cmLocalVisualStudio6Generator::WriteDSPHeader(std::ostream& fout, const char *libName,
- const cmTarget &target,
- std::vector<cmSourceGroup> &)
+void cmLocalVisualStudio6Generator
+::WriteDSPHeader(std::ostream& fout,
+ const char *libName,
+ const cmTarget &target,
+ std::vector<cmSourceGroup> &)
{
std::set<std::string> pathEmitted;
@@ -948,7 +950,16 @@ void cmLocalVisualStudio6Generator::WriteDSPHeader(std::ostream& fout, const cha
std::string extraLinkOptions;
if(target.GetType() == cmTarget::EXECUTABLE)
{
- extraLinkOptions = m_Makefile->GetRequiredDefinition("CMAKE_EXE_LINKER_FLAGS");
+ extraLinkOptions =
+ m_Makefile->GetRequiredDefinition("CMAKE_EXE_LINKER_FLAGS");
+
+ // if the executable has an output name then add the appropriate flag
+ if (target.GetProperty("OUTPUT_NAME"))
+ {
+ libMultiLineOptions += "# ADD LINK32 /out:";
+ libMultiLineOptions += target.GetProperty("OUTPUT_NAME");
+ libMultiLineOptions += " \n";
+ }
}
if(target.GetType() == cmTarget::SHARED_LIBRARY)
{
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 649c6e0..3760893 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -726,7 +726,16 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
temp = m_ExecutableOutputPath;
temp += configName;
temp += "/";
- temp += libName;
+
+ // do we have a different executable name?
+ if (target.GetProperty("OUTPUT_NAME"))
+ {
+ temp += target.GetProperty("OUTPUT_NAME");
+ }
+ else
+ {
+ temp += libName;
+ }
temp += ".exe";
fout << "\t\t\t\tOutputFile=\"" << this->ConvertToXMLOutputPathSingle(temp.c_str()) << "\"\n";
for(std::map<cmStdString, cmStdString>::iterator i = flagMap.begin();
diff --git a/Source/cmSetTargetPropertiesCommand.h b/Source/cmSetTargetPropertiesCommand.h
index cf877f1..0dc5160 100644
--- a/Source/cmSetTargetPropertiesCommand.h
+++ b/Source/cmSetTargetPropertiesCommand.h
@@ -65,6 +65,8 @@ public:
"sources. PRE_INSTALL_SCRIPT specifies CMake script that is run "
"prior to installing the target. POST_INSTALL_SCRIPT specifies "
"CMake script that is run after target is installed. "
+ "The OUTPUT_NAME can be used to set an output name that is "
+ "used in place of the target name when creating executables."
"If not set here then it is set to target_EXPORTS by default "
"(with some substitutions if target is not a valid C identifier). "
"You can use and prop value pair you want and extract it later with "