ENH: add first cut at support for exe with same name as lib

This commit is contained in:
Ken Martin 2005-06-16 11:48:43 -04:00
parent 0fa7565407
commit fbf40e202a
4 changed files with 37 additions and 6 deletions

View File

@ -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.

View File

@ -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)
{

View File

@ -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();

View File

@ -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 "