summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2002-03-11 17:11:20 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2002-03-11 17:11:20 (GMT)
commitfc933df1fc303f305735d28e9e8a0fb43b41ca1a (patch)
tree433b0dd5aeafe5ce8d261d9da8f1650281df38e7 /Source
parent938e6e487b838fc844249b49f1b5860a91683649 (diff)
downloadCMake-fc933df1fc303f305735d28e9e8a0fb43b41ca1a.zip
CMake-fc933df1fc303f305735d28e9e8a0fb43b41ca1a.tar.gz
CMake-fc933df1fc303f305735d28e9e8a0fb43b41ca1a.tar.bz2
ENH: add support for .def files
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMSDotNETGenerator.cxx28
-rw-r--r--Source/cmMSDotNETGenerator.h3
2 files changed, 29 insertions, 2 deletions
diff --git a/Source/cmMSDotNETGenerator.cxx b/Source/cmMSDotNETGenerator.cxx
index 998c3a6..f47b822 100644
--- a/Source/cmMSDotNETGenerator.cxx
+++ b/Source/cmMSDotNETGenerator.cxx
@@ -837,6 +837,7 @@ void cmMSDotNETGenerator::OutputBuildTool(std::ostream& fout,
fout << "\t\t\t\tAdditionalLibraryDirectories=\"";
this->OutputLibraryDirectories(fout, configName, libName, target);
fout << "\"\n";
+ this->OutputModuleDefinitionFile(fout, target);
fout << "\t\t\t\tProgramDatabaseFile=\"" << m_LibraryOutputPath
<< "$(OutDir)\\" << libName << ".pdb\"\n";
if(strcmp(configName, "Debug") == 0)
@@ -887,6 +888,24 @@ void cmMSDotNETGenerator::OutputBuildTool(std::ostream& fout,
}
}
+void cmMSDotNETGenerator::OutputModuleDefinitionFile(std::ostream& fout,
+ const cmTarget &target)
+{
+ std::vector<cmSourceFile> const& classes = target.GetSourceFiles();
+ for(std::vector<cmSourceFile>::const_iterator i = classes.begin();
+ i != classes.end(); i++)
+ {
+ if(cmSystemTools::UpperCase(i->GetSourceExtension()) == "DEF")
+ {
+ fout << "\t\t\t\tModuleDefinitionFile=\""
+ << this->ConvertToXMLOutputPath(i->GetFullPath().c_str())
+ << "\"\n";
+ return;
+ }
+ }
+
+}
+
void cmMSDotNETGenerator::OutputLibraryDirectories(std::ostream& fout,
const char* configName,
const char* libName,
@@ -992,12 +1011,17 @@ void cmMSDotNETGenerator::WriteVCProjFile(std::ostream& fout,
std::vector<cmSourceGroup> sourceGroups = m_Makefile->GetSourceGroups();
// get the classes from the source lists then add them to the groups
- std::vector<cmSourceFile> classes = target.GetSourceFiles();
- for(std::vector<cmSourceFile>::iterator i = classes.begin();
+ std::vector<cmSourceFile> const& classes = target.GetSourceFiles();
+ for(std::vector<cmSourceFile>::const_iterator i = classes.begin();
i != classes.end(); i++)
{
// Add the file to the list of sources.
std::string source = i->GetFullPath();
+ if(cmSystemTools::UpperCase(i->GetSourceExtension()) == "DEF")
+ {
+ m_ModuleDefinitionFile = i->GetFullPath();
+ }
+
cmSourceGroup& sourceGroup = m_Makefile->FindSourceGroup(source.c_str(),
sourceGroups);
sourceGroup.AddSource(source.c_str(), &(*i));
diff --git a/Source/cmMSDotNETGenerator.h b/Source/cmMSDotNETGenerator.h
index 8b8a652..5144a34 100644
--- a/Source/cmMSDotNETGenerator.h
+++ b/Source/cmMSDotNETGenerator.h
@@ -143,6 +143,8 @@ private:
const char* configName,
const char* libName,
const cmTarget &target);
+ void OutputModuleDefinitionFile(std::ostream& fout,
+ const cmTarget &target);
void OutputLibraries(std::ostream& fout,
const char* configName,
const char* libName,
@@ -153,6 +155,7 @@ private:
bool m_BuildSLN;
std::string m_LibraryOutputPath;
std::string m_ExecutableOutputPath;
+ std::string m_ModuleDefinitionFile;
std::vector<std::string> m_Configurations;
std::string m_VCProjHeaderTemplate;
std::string m_VCProjFooterTemplate;