diff options
author | Brad King <brad.king@kitware.com> | 2005-08-19 21:57:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2005-08-19 21:57:36 (GMT) |
commit | 05e6c3f3ba03bf33e860feff3392e3a21e4d3b2e (patch) | |
tree | e7ab126fcbbd06797074ec4ef233f05105c6279f | |
parent | 98e51196642d384336b08461ca56eb7c651a9eb0 (diff) | |
download | CMake-05e6c3f3ba03bf33e860feff3392e3a21e4d3b2e.zip CMake-05e6c3f3ba03bf33e860feff3392e3a21e4d3b2e.tar.gz CMake-05e6c3f3ba03bf33e860feff3392e3a21e4d3b2e.tar.bz2 |
BUG: Fixed OUTPUT_NAME feature for VS6 generator. It was not working for Debug builds and was not paying attention to the executable output path.
-rw-r--r-- | Source/cmLocalVisualStudio6Generator.cxx | 21 | ||||
-rw-r--r-- | Templates/EXEHeader.dsptemplate | 4 |
2 files changed, 19 insertions, 6 deletions
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx index bc60b27..ec81861 100644 --- a/Source/cmLocalVisualStudio6Generator.cxx +++ b/Source/cmLocalVisualStudio6Generator.cxx @@ -964,20 +964,24 @@ void cmLocalVisualStudio6Generator } } } + std::string outputName = "(OUTPUT_NAME is for executables only)"; std::string extraLinkOptions; if(target.GetType() == cmTarget::EXECUTABLE) { 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")) + // Use the OUTPUT_NAME property if it was set. This is supported + // only for executables. + if(const char* outName = target.GetProperty("OUTPUT_NAME")) { - libMultiLineOptions += "# ADD LINK32 /out:"; - libMultiLineOptions += target.GetProperty("OUTPUT_NAME"); - libMultiLineOptions += " \n"; + outputName = outName; + } + else + { + outputName = target.GetName(); } + outputName += ".exe"; } if(target.GetType() == cmTarget::SHARED_LIBRARY) { @@ -1095,6 +1099,11 @@ void cmLocalVisualStudio6Generator cmSystemTools::ReplaceString(line, "CM_MULTILINE_OPTIMIZED_LIBRARIES", libMultiLineOptimizedOptions.c_str()); + // Replace the template file text OUTPUT_NAME with the real output + // name that will be used. Only the executable template should + // have this text. + cmSystemTools::ReplaceString(line, "OUTPUT_NAME", outputName.c_str()); + cmSystemTools::ReplaceString(line, "BUILD_INCLUDES", m_IncludeOptions.c_str()); cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME",libName); diff --git a/Templates/EXEHeader.dsptemplate b/Templates/EXEHeader.dsptemplate index 1805397..0ee4091 100644 --- a/Templates/EXEHeader.dsptemplate +++ b/Templates/EXEHeader.dsptemplate @@ -69,6 +69,7 @@ BSC32=bscmake.exe LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:console /machine:I386 /IGNORE:4089
# ADD LINK32 /nologo /subsystem:console /machine:I386 /IGNORE:4089
+# ADD LINK32 /out:"EXECUTABLE_OUTPUT_PATHRelease\OUTPUT_NAME"
CM_MULTILINE_OPTIMIZED_LIBRARIES
CM_MULTILINE_LIBRARIES
@@ -101,6 +102,7 @@ BSC32=bscmake.exe LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /IGNORE:4089
# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /IGNORE:4089
+# ADD LINK32 /out:"EXECUTABLE_OUTPUT_PATHDebug\OUTPUT_NAME"
CM_MULTILINE_DEBUG_LIBRARIES
CM_MULTILINE_LIBRARIES_FOR_DEBUG
@@ -130,6 +132,7 @@ BSC32=bscmake.exe LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:console /machine:I386 /IGNORE:4089
# ADD LINK32 /nologo /subsystem:console /machine:I386 /IGNORE:4089
+# ADD LINK32 /out:"EXECUTABLE_OUTPUT_PATHMinSizeRel\OUTPUT_NAME"
CM_MULTILINE_OPTIMIZED_LIBRARIES
CM_MULTILINE_LIBRARIES
@@ -160,6 +163,7 @@ BSC32=bscmake.exe LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:console /debug /machine:I386 /IGNORE:4089
# ADD LINK32 /nologo /subsystem:console /debug /machine:I386 /IGNORE:4089
+# ADD LINK32 /out:"EXECUTABLE_OUTPUT_PATHRelWithDebInfo\OUTPUT_NAME"
CM_MULTILINE_OPTIMIZED_LIBRARIES
CM_MULTILINE_LIBRARIES
|