[cmake-commits] hoffman committed CMakeLists.txt 1.289.2.8 1.289.2.9
cmGlobalKdevelopGenerator.cxx 1.10.2.5 1.10.2.6
cmInstallTargetGenerator.cxx 1.12.2.4 1.12.2.5
cmLocalKdevelopGenerator.cxx 1.19 NONE
cmLocalKdevelopGenerator.h 1.7 NONE
cmLocalUnixMakefileGenerator3.cxx 1.128.2.9 1.128.2.10
cmLocalVisualStudio7Generator.cxx 1.125.2.9 1.125.2.10
cmLocalVisualStudio7Generator.h 1.22.2.4 1.22.2.5
cmLocalVisualStudioGenerator.cxx 1.2.2.3 1.2.2.4
cmMakefileExecutableTargetGenerator.cxx 1.12.2.8 1.12.2.9
cmMakefileLibraryTargetGenerator.cxx 1.14.2.6 1.14.2.7
cmMakefileTargetGenerator.cxx 1.16.2.9 1.16.2.10
cmSystemTools.cxx 1.327.2.3 1.327.2.4 cmSystemTools.h 1.133.2.1
1.133.2.2 cmTarget.cxx 1.96.2.8 1.96.2.9 cmTarget.h 1.62.2.3 1.62.2.4
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Feb 5 13:21:34 EST 2007
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv30870/Source
Modified Files:
Tag: CMake-2-4
CMakeLists.txt cmGlobalKdevelopGenerator.cxx
cmInstallTargetGenerator.cxx cmLocalUnixMakefileGenerator3.cxx
cmLocalVisualStudio7Generator.cxx
cmLocalVisualStudio7Generator.h
cmLocalVisualStudioGenerator.cxx
cmMakefileExecutableTargetGenerator.cxx
cmMakefileLibraryTargetGenerator.cxx
cmMakefileTargetGenerator.cxx cmSystemTools.cxx
cmSystemTools.h cmTarget.cxx cmTarget.h
Removed Files:
Tag: CMake-2-4
cmLocalKdevelopGenerator.cxx cmLocalKdevelopGenerator.h
Log Message:
ENH: merge in changes from branch
Index: cmSystemTools.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSystemTools.h,v
retrieving revision 1.133.2.1
retrieving revision 1.133.2.2
diff -u -d -r1.133.2.1 -r1.133.2.2
--- cmSystemTools.h 14 May 2006 19:22:43 -0000 1.133.2.1
+++ cmSystemTools.h 5 Feb 2007 18:21:32 -0000 1.133.2.2
@@ -212,6 +212,15 @@
*/
static std::vector<cmStdString> ParseArguments(const char* command);
+ /** Parse arguments out of a windows command line string. */
+ static void ParseWindowsCommandLine(const char* command,
+ std::vector<std::string>& args);
+
+ /** Compute an escaped version of the given argument for use in a
+ windows shell. See kwsys/System.h.in for details. */
+ static std::string EscapeWindowsShellArgument(const char* arg,
+ int shell_flags);
+
static void EnableMessages() { s_DisableMessages = false; }
static void DisableMessages() { s_DisableMessages = true; }
static void DisableRunCommandOutput() {s_DisableRunCommandOutput = true; }
Index: cmLocalVisualStudioGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudioGenerator.cxx,v
retrieving revision 1.2.2.3
retrieving revision 1.2.2.4
diff -u -d -r1.2.2.3 -r1.2.2.4
--- cmLocalVisualStudioGenerator.cxx 27 Oct 2006 20:01:48 -0000 1.2.2.3
+++ cmLocalVisualStudioGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.2.2.4
@@ -152,7 +152,14 @@
// Start with the command name.
const cmCustomCommandLine& commandLine = *cl;
+ if(!workingDirectory)
+ {
script += this->Convert(commandLine[0].c_str(),START_OUTPUT,SHELL);
+ }
+ else
+ {
+ script += this->Convert(commandLine[0].c_str(),NONE,SHELL);
+ }
// Add the arguments.
for(unsigned int j=1;j < commandLine.size(); ++j)
Index: cmLocalVisualStudio7Generator.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.h,v
retrieving revision 1.22.2.4
retrieving revision 1.22.2.5
diff -u -d -r1.22.2.4 -r1.22.2.5
--- cmLocalVisualStudio7Generator.h 27 Oct 2006 20:01:48 -0000 1.22.2.4
+++ cmLocalVisualStudio7Generator.h 5 Feb 2007 18:21:32 -0000 1.22.2.5
@@ -26,6 +26,8 @@
class cmSourceGroup;
struct cmVS7FlagTable;
+class cmLocalVisualStudio7GeneratorOptions;
+
/** \class cmLocalVisualStudio7Generator
* \brief Write Visual Studio .NET project files.
*
@@ -65,10 +67,9 @@
void SetPlatformName(const char* n) { this->PlatformName = n;}
virtual void ConfigureFinalPass();
private:
- void FillFlagMapFromCommandFlags(std::map<cmStdString,
- cmStdString>& flagMap,
- cmVS7FlagTable* flagTable,
- std::string& flags);
+ typedef cmLocalVisualStudio7GeneratorOptions Options;
+ void ReadAndStoreExternalGUID(const char* name,
+ const char* path);
std::string GetBuildTypeLinkerFlags(std::string rootLinkerFlags,
const char* configName);
void FixGlobalTargets();
@@ -88,12 +89,10 @@
std::string EscapeForXML(const char* s);
std::string ConvertToXMLOutputPath(const char* path);
std::string ConvertToXMLOutputPathSingle(const char* path);
- void OutputDefineFlags(const char* flags,
- std::ostream& fout);
void OutputTargetRules(std::ostream& fout, cmTarget &target,
const char *libName);
void OutputBuildTool(std::ostream& fout, const char* configName,
- const char* libname, cmTarget& t);
+ cmTarget& t);
void OutputLibraries(std::ostream& fout,
std::vector<cmStdString> const& libs);
void OutputLibraryDirectories(std::ostream& fout,
--- cmLocalKdevelopGenerator.h DELETED ---
Index: cmLocalVisualStudio7Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v
retrieving revision 1.125.2.9
retrieving revision 1.125.2.10
diff -u -d -r1.125.2.9 -r1.125.2.10
--- cmLocalVisualStudio7Generator.cxx 27 Oct 2006 20:01:48 -0000 1.125.2.9
+++ cmLocalVisualStudio7Generator.cxx 5 Feb 2007 18:21:32 -0000 1.125.2.10
@@ -16,14 +16,19 @@
=========================================================================*/
#include "cmGlobalVisualStudio7Generator.h"
#include "cmLocalVisualStudio7Generator.h"
+#include "cmXMLParser.h"
+#include <cm_expat.h>
#include "cmMakefile.h"
#include "cmSystemTools.h"
#include "cmSourceFile.h"
#include "cmCacheManager.h"
#include "cmake.h"
[...1152 lines suppressed...]
+ {
+ fout << indent << m->first << "=\"" << m->second << "\"\n";
+ }
+}
+
+//----------------------------------------------------------------------------
+void
+cmLocalVisualStudio7GeneratorOptions
+::OutputAdditionalOptions(std::ostream& fout,
+ const char* prefix,
+ const char* suffix)
+{
+ if(!this->FlagString.empty())
+ {
+ fout << prefix << "AdditionalOptions=\"";
+ fout <<
+ cmLocalVisualStudio7GeneratorEscapeForXML(this->FlagString.c_str());
+ fout << "\"" << suffix;
+ }
+}
Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CMakeLists.txt,v
retrieving revision 1.289.2.8
retrieving revision 1.289.2.9
diff -u -d -r1.289.2.8 -r1.289.2.9
--- CMakeLists.txt 3 Jan 2007 15:19:03 -0000 1.289.2.8
+++ CMakeLists.txt 5 Feb 2007 18:21:32 -0000 1.289.2.9
@@ -167,8 +167,7 @@
# Kdevelop only works on UNIX and not windows
IF(UNIX)
SET(SRCS ${SRCS}
- cmGlobalKdevelopGenerator.cxx
- cmLocalKdevelopGenerator.cxx)
+ cmGlobalKdevelopGenerator.cxx)
ENDIF(UNIX)
# XCode only works on apple
IF(APPLE)
@@ -278,15 +277,17 @@
#
SET(CPACK_SRCS
CPack/cmCPackGenerators.cxx
- CPack/cmCPackSTGZGenerator.cxx
- CPack/cmCPackTGZGenerator.cxx
+ CPack/cmCPackGenericGenerator.cxx
+ CPack/cmCPackLog.cxx
CPack/cmCPackNSISGenerator.cxx
CPack/cmCPackPackageMakerGenerator.cxx
- CPack/cmCPackZIPGenerator.cxx
+ CPack/cmCPackSTGZGenerator.cxx
+ CPack/cmCPackTGZGenerator.cxx
CPack/cmCPackTarBZip2Generator.cxx
CPack/cmCPackTarCompressGenerator.cxx
- CPack/cmCPackGenericGenerator.cxx
- CPack/cmCPackLog.cxx
+ CPack/cmCPackZIPGenerator.cxx
+ CPack/cmCPackCygwinBinaryGenerator.cxx
+ CPack/cmCPackCygwinSourceGenerator.cxx
)
# Build CPackLib
ADD_LIBRARY(CPackLib ${CPACK_SRCS})
@@ -308,6 +309,7 @@
IF(NOT UNIX)
ADD_EXECUTABLE(cmw9xcom cmw9xcom.cxx)
TARGET_LINK_LIBRARIES(cmw9xcom CMakeLib)
+ INSTALL_TARGETS(/bin cmw9xcom)
ENDIF(NOT UNIX)
ENDIF(WIN32)
Index: cmSystemTools.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmSystemTools.cxx,v
retrieving revision 1.327.2.3
retrieving revision 1.327.2.4
diff -u -d -r1.327.2.3 -r1.327.2.4
--- cmSystemTools.cxx 27 Oct 2006 20:01:48 -0000 1.327.2.3
+++ cmSystemTools.cxx 5 Feb 2007 18:21:32 -0000 1.327.2.4
@@ -21,6 +21,7 @@
#include <cmsys/RegularExpression.hxx>
#include <cmsys/Directory.hxx>
+#include <cmsys/System.h>
// support for realpath call
#ifndef _WIN32
@@ -370,6 +371,95 @@
v == "N" || cmSystemTools::IsNOTFOUND(v.c_str()) || v == "IGNORE");
}
+//----------------------------------------------------------------------------
+void cmSystemTools::ParseWindowsCommandLine(const char* command,
+ std::vector<std::string>& args)
+{
+ // See the MSDN document "Parsing C Command-Line Arguments" at
+ // http://msdn2.microsoft.com/en-us/library/a1y7w461.aspx for rules
+ // of parsing the windows command line.
+
+ bool in_argument = false;
+ bool in_quotes = false;
+ int backslashes = 0;
+ std::string arg;
+ for(const char* c = command;*c; ++c)
+ {
+ if(*c == '\\')
+ {
+ ++backslashes;
+ in_argument = true;
+ }
+ else if(*c == '"')
+ {
+ int backslash_pairs = backslashes >> 1;
+ int backslash_escaped = backslashes & 1;
+ arg.append(backslash_pairs, '\\');
+ backslashes = 0;
+ if(backslash_escaped)
+ {
+ /* An odd number of backslashes precede this quote.
+ It is escaped. */
+ arg.append(1, '"');
+ }
+ else
+ {
+ /* An even number of backslashes precede this quote.
+ It is not escaped. */
+ in_quotes = !in_quotes;
+ }
+ in_argument = true;
+ }
+ else
+ {
+ arg.append(backslashes, '\\');
+ backslashes = 0;
+ if(isspace(*c))
+ {
+ if(in_quotes)
+ {
+ arg.append(1, *c);
+ }
+ else if(in_argument)
+ {
+ args.push_back(arg);
+ arg = "";
+ in_argument = false;
+ }
+ }
+ else
+ {
+ in_argument = true;
+ arg.append(1, *c);
+ }
+ }
+ }
+ arg.append(backslashes, '\\');
+ if(in_argument)
+ {
+ args.push_back(arg);
+ }
+}
+
+std::string cmSystemTools::EscapeWindowsShellArgument(const char* arg,
+ int shell_flags)
+{
+ char local_buffer[1024];
+ char* buffer = local_buffer;
+ int size = cmsysSystem_Shell_GetArgumentSizeForWindows(arg, shell_flags);
+ if(size > 1024)
+ {
+ buffer = new char[size];
+ }
+ cmsysSystem_Shell_GetArgumentForWindows(arg, buffer, shell_flags);
+ std::string result(buffer);
+ if(buffer != local_buffer)
+ {
+ delete [] buffer;
+ }
+ return result;
+}
+
std::vector<cmStdString> cmSystemTools::ParseArguments(const char* command)
{
std::vector<cmStdString> args;
--- cmLocalKdevelopGenerator.cxx DELETED ---
Index: cmMakefileLibraryTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileLibraryTargetGenerator.cxx,v
retrieving revision 1.14.2.6
retrieving revision 1.14.2.7
diff -u -d -r1.14.2.6 -r1.14.2.7
--- cmMakefileLibraryTargetGenerator.cxx 3 Jan 2007 15:19:03 -0000 1.14.2.6
+++ cmMakefileLibraryTargetGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.14.2.7
@@ -239,8 +239,9 @@
std::string targetNameSO;
std::string targetNameReal;
std::string targetNameImport;
+ std::string targetNamePDB;
this->Target->GetLibraryNames(
- targetName, targetNameSO, targetNameReal, targetNameImport,
+ targetName, targetNameSO, targetNameReal, targetNameImport, targetNamePDB,
this->LocalGenerator->ConfigurationName.c_str());
// Construct the full path version of the names.
@@ -259,8 +260,7 @@
outpath += "/";
}
std::string targetFullPath = outpath + targetName;
- std::string targetFullPathPDB =
- outpath + this->Target->GetName() + std::string(".pdb");
+ std::string targetFullPathPDB = outpath + targetNamePDB;
std::string targetFullPathSO = outpath + targetNameSO;
std::string targetFullPathReal = outpath + targetNameReal;
std::string targetFullPathImport = outpath + targetNameImport;
@@ -351,18 +351,21 @@
std::string cleanSharedSOName;
std::string cleanSharedRealName;
std::string cleanImportName;
+ std::string cleanPDBName;
this->Target->GetLibraryCleanNames(
cleanStaticName,
cleanSharedName,
cleanSharedSOName,
cleanSharedRealName,
cleanImportName,
+ cleanPDBName,
this->LocalGenerator->ConfigurationName.c_str());
std::string cleanFullStaticName = outpath + cleanStaticName;
std::string cleanFullSharedName = outpath + cleanSharedName;
std::string cleanFullSharedSOName = outpath + cleanSharedSOName;
std::string cleanFullSharedRealName = outpath + cleanSharedRealName;
std::string cleanFullImportName = outpath + cleanImportName;
+ std::string cleanFullPDBName = outpath + cleanPDBName;
libCleanFiles.push_back
(this->Convert(cleanFullStaticName.c_str(),
cmLocalGenerator::START_OUTPUT,
@@ -398,6 +401,14 @@
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::UNCHANGED));
}
+
+ // List the PDB for cleaning only when the whole target is
+ // cleaned. We do not want to delete the .pdb file just before
+ // linking the target.
+ this->CleanFiles.push_back
+ (this->Convert(cleanFullPDBName.c_str(),
+ cmLocalGenerator::START_OUTPUT,
+ cmLocalGenerator::UNCHANGED));
}
#ifdef _WIN32
Index: cmTarget.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmTarget.h,v
retrieving revision 1.62.2.3
retrieving revision 1.62.2.4
diff -u -d -r1.62.2.3 -r1.62.2.4
--- cmTarget.h 27 Oct 2006 20:01:48 -0000 1.62.2.3
+++ cmTarget.h 5 Feb 2007 18:21:32 -0000 1.62.2.4
@@ -201,6 +201,9 @@
std::string& base, std::string& suffix,
const char* config=0, bool implib = false);
+ /** Get the name of the pdb file for the target. */
+ std::string GetPDBName(const char* config=0);
+
/** Get the full path to the target according to the settings in its
makefile and the configuration type. */
std::string GetFullPath(const char* config=0, bool implib = false);
@@ -210,7 +213,7 @@
should be called only on a library target. */
void GetLibraryNames(std::string& name, std::string& soName,
std::string& realName, std::string& impName,
- const char* config);
+ std::string& pdbName, const char* config);
/** Get the names of the library used to remove existing copies of
the library from the build tree either before linking or during
@@ -221,20 +224,21 @@
std::string& sharedSOName,
std::string& sharedRealName,
std::string& importName,
+ std::string& pdbName,
const char* config);
/** Get the names of the executable needed to generate a build rule
that takes into account executable version numbers. This should
be called only on an executable target. */
void GetExecutableNames(std::string& name, std::string& realName,
- const char* config);
+ std::string& pdbName, const char* config);
/** Get the names of the executable used to remove existing copies
of the executable from the build tree either before linking or
during a clean step. This should be called only on an
executable target. */
void GetExecutableCleanNames(std::string& name, std::string& realName,
- const char* config);
+ std::string& pdbName, const char* config);
/**
* Compute whether this target must be relinked before installing.
@@ -313,10 +317,12 @@
std::string& soName,
std::string& realName,
std::string& impName,
+ std::string& pdbName,
TargetType type,
const char* config);
void GetExecutableNamesInternal(std::string& name,
std::string& realName,
+ std::string& pdbName,
TargetType type,
const char* config);
Index: cmMakefileExecutableTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileExecutableTargetGenerator.cxx,v
retrieving revision 1.12.2.8
retrieving revision 1.12.2.9
diff -u -d -r1.12.2.8 -r1.12.2.9
--- cmMakefileExecutableTargetGenerator.cxx 3 Jan 2007 15:19:03 -0000 1.12.2.8
+++ cmMakefileExecutableTargetGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.12.2.9
@@ -110,8 +110,9 @@
// Get the name of the executable to generate.
std::string targetName;
std::string targetNameReal;
+ std::string targetNamePDB;
this->Target->GetExecutableNames
- (targetName, targetNameReal,
+ (targetName, targetNameReal, targetNamePDB,
this->LocalGenerator->ConfigurationName.c_str());
// Construct the full path version of the names.
@@ -187,8 +188,7 @@
}
std::string targetFullPath = outpath + targetName;
std::string targetFullPathReal = outpath + targetNameReal;
- std::string targetFullPathPDB = outpath + this->Target->GetName();
- targetFullPathPDB += ".pdb";
+ std::string targetFullPathPDB = outpath + targetNamePDB;
std::string targetOutPathPDB =
this->Convert(targetFullPathPDB.c_str(),
cmLocalGenerator::FULL,
@@ -269,12 +269,14 @@
{
std::string cleanName;
std::string cleanRealName;
+ std::string cleanPDBName;
this->Target->GetExecutableCleanNames
- (cleanName, cleanRealName,
+ (cleanName, cleanRealName, cleanPDBName,
this->LocalGenerator->ConfigurationName.c_str());
std::string cleanFullName = outpath + cleanName;
std::string cleanFullRealName = outpath + cleanRealName;
+ std::string cleanFullPDBName = outpath + cleanPDBName;
exeCleanFiles.push_back(this->Convert(cleanFullName.c_str(),
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::UNCHANGED));
@@ -291,6 +293,14 @@
cmLocalGenerator::START_OUTPUT,
cmLocalGenerator::UNCHANGED));
}
+
+ // List the PDB for cleaning only when the whole target is
+ // cleaned. We do not want to delete the .pdb file just before
+ // linking the target.
+ this->CleanFiles.push_back
+ (this->Convert(cleanFullPDBName.c_str(),
+ cmLocalGenerator::START_OUTPUT,
+ cmLocalGenerator::UNCHANGED));
}
// Add a command to remove any existing files for this executable.
Index: cmLocalUnixMakefileGenerator3.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalUnixMakefileGenerator3.cxx,v
retrieving revision 1.128.2.9
retrieving revision 1.128.2.10
diff -u -d -r1.128.2.9 -r1.128.2.10
--- cmLocalUnixMakefileGenerator3.cxx 27 Oct 2006 20:01:48 -0000 1.128.2.9
+++ cmLocalUnixMakefileGenerator3.cxx 5 Feb 2007 18:21:32 -0000 1.128.2.10
@@ -1690,8 +1690,9 @@
objectName = cmSystemTools::GetFilenameName(objectName.c_str());
std::string targetName;
std::string targetNameReal;
+ std::string targetNamePDB;
target.GetExecutableNames(targetName, targetNameReal,
- this->ConfigurationName.c_str());
+ targetNamePDB, this->ConfigurationName.c_str());
if ( target.GetPropertyAsBool("MACOSX_BUNDLE") )
{
// Construct the full path version of the names.
Index: cmMakefileTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmMakefileTargetGenerator.cxx,v
retrieving revision 1.16.2.9
retrieving revision 1.16.2.10
diff -u -d -r1.16.2.9 -r1.16.2.10
--- cmMakefileTargetGenerator.cxx 3 Jan 2007 15:19:03 -0000 1.16.2.9
+++ cmMakefileTargetGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.16.2.10
@@ -279,6 +279,15 @@
*this->FlagFileStream << lang << "_FLAGS = " << flags << "\n\n";
}
+
+ // Add target-specific flags.
+ if(this->Target->GetProperty("COMPILE_FLAGS"))
+ {
+ std::string flags;
+ this->LocalGenerator->AppendFlags
+ (flags, this->Target->GetProperty("COMPILE_FLAGS"));
+ *this->FlagFileStream << "# TARGET_FLAGS = " << flags << "\n\n";
+ }
}
//----------------------------------------------------------------------------
@@ -457,15 +466,29 @@
this->Makefile->GetRequiredDefinition(compileRuleVar.c_str());
cmSystemTools::ExpandListArgument(compileRule, commands);
- std::string outpath = this->Makefile->GetStartOutputDirectory();
- outpath += "/";
- outpath += this->Target->GetName();
- outpath += ".pdb";
- outpath = this->Convert(outpath.c_str(), cmLocalGenerator::FULL,
+ std::string targetOutPathPDB;
+ {
+ std::string targetFullPathPDB;
+ const char* configName = this->LocalGenerator->ConfigurationName.c_str();
+ if(this->Target->GetType() == cmTarget::EXECUTABLE)
+ {
+ targetFullPathPDB = this->LocalGenerator->ExecutableOutputPath;
+ targetFullPathPDB += this->Target->GetPDBName(configName);
+ }
+ else if(this->Target->GetType() == cmTarget::STATIC_LIBRARY ||
+ this->Target->GetType() == cmTarget::SHARED_LIBRARY ||
+ this->Target->GetType() == cmTarget::MODULE_LIBRARY)
+ {
+ targetFullPathPDB = this->LocalGenerator->LibraryOutputPath;
+ targetFullPathPDB += this->Target->GetPDBName(configName);
+ }
+ targetOutPathPDB =
+ this->Convert(targetFullPathPDB.c_str(),cmLocalGenerator::FULL,
cmLocalGenerator::MAKEFILE);
+ }
cmLocalGenerator::RuleVariables vars;
vars.Language = lang;
- vars.TargetPDB = outpath.c_str();
+ vars.TargetPDB = targetOutPathPDB.c_str();
vars.Source = sourceFile.c_str();
vars.Object = relativeObj.c_str();
std::string objdir = this->LocalGenerator->GetHomeRelativeOutputPath();
Index: cmInstallTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.cxx,v
retrieving revision 1.12.2.4
retrieving revision 1.12.2.5
diff -u -d -r1.12.2.4 -r1.12.2.5
--- cmInstallTargetGenerator.cxx 13 Oct 2006 14:52:02 -0000 1.12.2.4
+++ cmInstallTargetGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.12.2.5
@@ -208,8 +208,9 @@
std::string targetNameSO;
std::string targetNameReal;
std::string targetNameImport;
+ std::string targetNamePDB;
target->GetLibraryNames(targetName, targetNameSO, targetNameReal,
- targetNameImport, i->c_str());
+ targetNameImport, targetNamePDB, i->c_str());
if(this->ImportLibrary)
{
// Use the import library name.
@@ -245,8 +246,10 @@
std::string targetNameSO;
std::string targetNameReal;
std::string targetNameImport;
+ std::string targetNamePDB;
target->GetLibraryNames(targetName, targetNameSO, targetNameReal,
- targetNameImport, this->ConfigurationName);
+ targetNameImport, targetNamePDB,
+ this->ConfigurationName);
if(this->ImportLibrary)
{
// Use the import library name.
Index: cmGlobalKdevelopGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmGlobalKdevelopGenerator.cxx,v
retrieving revision 1.10.2.5
retrieving revision 1.10.2.6
diff -u -d -r1.10.2.5 -r1.10.2.6
--- cmGlobalKdevelopGenerator.cxx 13 Oct 2006 14:52:02 -0000 1.10.2.5
+++ cmGlobalKdevelopGenerator.cxx 5 Feb 2007 18:21:32 -0000 1.10.2.6
@@ -17,7 +17,7 @@
=========================================================================*/
#include "cmGlobalKdevelopGenerator.h"
-#include "cmLocalKdevelopGenerator.h"
+#include "cmLocalUnixMakefileGenerator3.h"
#include "cmMakefile.h"
#include "cmake.h"
#include "cmSourceFile.h"
@@ -36,7 +36,8 @@
///! Create a local generator appropriate to this Global Generator
cmLocalGenerator *cmGlobalKdevelopGenerator::CreateLocalGenerator()
{
- cmLocalGenerator *lg = new cmLocalKdevelopGenerator;
+ cmLocalUnixMakefileGenerator3 *lg = new cmLocalUnixMakefileGenerator3;
+ lg->SetForceVerboseMakefiles(true);
lg->SetGlobalGenerator(this);
return lg;
}
@@ -185,6 +186,7 @@
hname += *ext;
if(cmSystemTools::FileExists(hname.c_str()))
{
+ cmSystemTools::ReplaceString(hname, projectDir.c_str(), "");
files.insert(hname);
break;
}
Index: cmTarget.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmTarget.cxx,v
retrieving revision 1.96.2.8
retrieving revision 1.96.2.9
diff -u -d -r1.96.2.8 -r1.96.2.9
--- cmTarget.cxx 3 Jan 2007 15:19:03 -0000 1.96.2.8
+++ cmTarget.cxx 5 Feb 2007 18:21:32 -0000 1.96.2.9
@@ -1172,6 +1172,17 @@
}
//----------------------------------------------------------------------------
+std::string cmTarget::GetPDBName(const char* config)
+{
+ std::string prefix;
+ std::string base;
+ std::string suffix;
+ this->GetFullNameInternal(this->GetType(), config, false,
+ prefix, base, suffix);
+ return prefix+base+".pdb";
+}
+
+//----------------------------------------------------------------------------
std::string cmTarget::GetFullName(const char* config, bool implib)
{
return this->GetFullNameInternal(this->GetType(), config, implib);
@@ -1337,10 +1348,11 @@
std::string& soName,
std::string& realName,
std::string& impName,
+ std::string& pdbName,
const char* config)
{
// Get the names based on the real type of the library.
- this->GetLibraryNamesInternal(name, soName, realName, impName,
+ this->GetLibraryNamesInternal(name, soName, realName, impName, pdbName,
this->GetType(), config);
}
@@ -1349,6 +1361,7 @@
std::string& sharedSOName,
std::string& sharedRealName,
std::string& importName,
+ std::string& pdbName,
const char* config)
{
// Get the name as if this were a static library.
@@ -1356,7 +1369,7 @@
std::string realName;
std::string impName;
this->GetLibraryNamesInternal(staticName, soName, realName, impName,
- cmTarget::STATIC_LIBRARY, config);
+ pdbName, cmTarget::STATIC_LIBRARY, config);
// Get the names as if this were a shared library.
if(this->GetType() == cmTarget::STATIC_LIBRARY)
@@ -1367,14 +1380,15 @@
// type will never be MODULE. Either way the only names that
// might have to be cleaned are the shared library names.
this->GetLibraryNamesInternal(sharedName, sharedSOName, sharedRealName,
- importName, cmTarget::SHARED_LIBRARY,
- config);
+ importName, pdbName,
+ cmTarget::SHARED_LIBRARY, config);
}
else
{
// Use the name of the real type of the library (shared or module).
this->GetLibraryNamesInternal(sharedName, sharedSOName, sharedRealName,
- importName, this->GetType(), config);
+ importName, pdbName, this->GetType(),
+ config);
}
}
@@ -1382,6 +1396,7 @@
std::string& soName,
std::string& realName,
std::string& impName,
+ std::string& pdbName,
TargetType type,
const char* config)
{
@@ -1468,27 +1483,34 @@
{
impName = "";
}
+
+ // The program database file name.
+ pdbName = prefix+base+".pdb";
}
void cmTarget::GetExecutableNames(std::string& name,
std::string& realName,
+ std::string& pdbName,
const char* config)
{
// Get the names based on the real type of the executable.
- this->GetExecutableNamesInternal(name, realName, this->GetType(), config);
+ this->GetExecutableNamesInternal(name, realName, pdbName,
+ this->GetType(), config);
}
void cmTarget::GetExecutableCleanNames(std::string& name,
std::string& realName,
+ std::string& pdbName,
const char* config)
{
// Get the name and versioned name of this executable.
- this->GetExecutableNamesInternal(name, realName, cmTarget::EXECUTABLE,
- config);
+ this->GetExecutableNamesInternal(name, realName, pdbName,
+ cmTarget::EXECUTABLE, config);
}
void cmTarget::GetExecutableNamesInternal(std::string& name,
std::string& realName,
+ std::string& pdbName,
TargetType type,
const char* config)
{
@@ -1528,6 +1550,9 @@
#if defined(__CYGWIN__)
realName += suffix;
#endif
+
+ // The program database file name.
+ pdbName = prefix+base+".pdb";
}
//----------------------------------------------------------------------------
More information about the Cmake-commits
mailing list