summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2002-10-09 17:30:54 (GMT)
committerKen Martin <ken.martin@kitware.com>2002-10-09 17:30:54 (GMT)
commit5cef592bb1a25000007202a5a37606e819af563d (patch)
treee00f613af4760a6a4c07ed37c221aa669a10e8ac
parentea87271c4a4e534772d7d8f14b70b6fd8ac648be (diff)
downloadCMake-5cef592bb1a25000007202a5a37606e819af563d.zip
CMake-5cef592bb1a25000007202a5a37606e819af563d.tar.gz
CMake-5cef592bb1a25000007202a5a37606e819af563d.tar.bz2
some updates
-rw-r--r--Source/cmGlobalCodeWarriorGenerator.cxx3
-rw-r--r--Source/cmLocalCodeWarriorGenerator.cxx273
-rw-r--r--Source/cmLocalCodeWarriorGenerator.h6
3 files changed, 275 insertions, 7 deletions
diff --git a/Source/cmGlobalCodeWarriorGenerator.cxx b/Source/cmGlobalCodeWarriorGenerator.cxx
index 0d6fb6d..b2e0a98 100644
--- a/Source/cmGlobalCodeWarriorGenerator.cxx
+++ b/Source/cmGlobalCodeWarriorGenerator.cxx
@@ -46,7 +46,7 @@ int cmGlobalCodeWarriorGenerator::TryCompile(const char *,
const char *targetName,
std::string *output)
{
- return 1;
+ return 1;
}
///! Create a local generator appropriate to this Global Generator
@@ -279,6 +279,7 @@ void cmGlobalCodeWarriorGenerator::WriteGroupList(std::ostream& fout)
static_cast<cmLocalCodeWarriorGenerator *>(m_LocalGenerators[i])->WriteGroups(fout);
}
+
fout << "</GROUPLIST>\n";
}
diff --git a/Source/cmLocalCodeWarriorGenerator.cxx b/Source/cmLocalCodeWarriorGenerator.cxx
index 5745668..250ac22 100644
--- a/Source/cmLocalCodeWarriorGenerator.cxx
+++ b/Source/cmLocalCodeWarriorGenerator.cxx
@@ -52,20 +52,56 @@ void cmLocalCodeWarriorGenerator::WriteTarget(std::ostream& fout,
fout << "<TARGET>\n";
fout << "<NAME>" << tgtName << "</NAME>\n";
- this->WriteSettingList(fout,tgtName,l);
- this->WriteFileList(fout,tgtName,l);
- // this->WriteLinkOrder(fout,l);
+ this->WriteSettingList(fout, tgtName,l);
+ this->WriteFileList(fout, tgtName,l);
+ this->WriteLinkOrder(fout, tgtName, l);
// this->WriteSubTargetList(fout,l);
fout << "</TARGET>\n";
}
+void cmLocalCodeWarriorGenerator::AddFileMapping(std::ostream& fout,
+ const char *ftype,
+ const char *ext,
+ const char *comp,
+ const char *edit,
+ bool precomp,
+ bool launch,
+ bool res,
+ bool ignored)
+{
+ fout << "<SETTING>\n";
+ fout << "<SETTING><NAME>FileType</NAME><VALUE>" << ftype <<
+ "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>FileExtension</NAME><VALUE>" << ext <<
+ "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>Compiler</NAME><VALUE>" << comp <<
+ "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>EditLanguage</NAME><VALUE>" << edit <<
+ "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>Precompile</NAME><VALUE>"
+ << (precomp ? "true" : "false") << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>Launchable</NAME><VALUE>"
+ << (launch ? "true" : "false") << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>ResourceFile</NAME><VALUE>"
+ << (res ? "true" : "false") << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>IgnoredByMake</NAME><VALUE>"
+ << (ignored ? "true" : "false") << "</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+}
+
+
void cmLocalCodeWarriorGenerator::WriteSettingList(std::ostream& fout,
- const char *tgtName,
+ const char *tgtName,
cmTarget const *l)
{
fout << "<SETTINGLIST>\n";
+ fout << "<SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>false</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>false</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>RequireFrameworkStyleIncludes</NAME><VALUE>false</VALUE></SETTING>\n";
+
// list the include paths
fout << "<SETTING><NAME>UserSearchPaths</NAME>\n";
std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
@@ -85,14 +121,144 @@ void cmLocalCodeWarriorGenerator::WriteSettingList(std::ostream& fout,
}
fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>SystemSearchPaths</NAME>\n";
+ fout << "<SETTING>\n";
+ fout << "<SETTING><NAME>SearchPath</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE>:MSL:</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING>\n";
+ fout << "<SETTING><NAME>SearchPath</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE>:MacOS Support:</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>FrameworkPath</NAME><VALUE>false</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "</SETTING>\n";
+
+ fout << "<SETTING><NAME>MWRuntimeSettings_WorkingDirectory</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWRuntimeSettings_CommandLine</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWRuntimeSettings_HostApplication</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>MWRuntimeSettings_EnvVars</NAME><VALUE></VALUE></SETTING>\n";
+
+ // <!-- Settings for "Target Settings" panel -->
+ fout << "<SETTING><NAME>Linker</NAME><VALUE>MacOS PPC Linker</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>\n";
fout << "<SETTING><NAME>Targetname</NAME><VALUE>" << tgtName
<< "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>OutputDirectory</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>\n";
+
+ // add the cxx file type
+ fout << "<SETTING><NAME>FileMappings</NAME>\n";
+ this->AddFileMapping(fout,"TEXT",".cxx","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".cpp","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".c","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".cc","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".cp","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".cpp","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".h","MW C/C++ PPC","C/C++",
+ false,false,false,true);
+ this->AddFileMapping(fout,"TEXT",".hpp","MW C/C++ PPC","C/C++",
+ false,false,false,true);
+ this->AddFileMapping(fout,"TEXT",".m","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ this->AddFileMapping(fout,"TEXT",".mm","MW C/C++ PPC","C/C++",
+ false,false,false,false);
+ fout << "</SETTING>\n";
+
+ // <!-- Settings for "MacOS Merge Panel" panel -->
+ fout << "<SETTING><NAME>MWProject_PPC_type</NAME><VALUE>";
+ switch (l->GetType())
+ {
+ case cmTarget::STATIC_LIBRARY:
+ fout << "Library" << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>";
+ fout << tgtName << ".lib";
+ fout << "</VALUE></SETTING>\n";
+ break;
+ case cmTarget::SHARED_LIBRARY:
+ case cmTarget::MODULE_LIBRARY:
+ // m_Makefile->GetDefinition("CMAKE_MODULE_SUFFIX");
+ fout << "Shared Library" << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>";
+ fout << tgtName << ".dylib";
+ fout << "</VALUE></SETTING>\n";
+ break;
+ case cmTarget::EXECUTABLE:
+ fout << "Application" << "</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>";
+ fout << tgtName << cmSystemTools::GetExecutableExtension();
+ fout << "</VALUE></SETTING>\n";
+ break;
+ }
+
+ fout << "<SETTING><NAME>MWProject_PPC_filecreator</NAME><VALUE>????</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_filetype</NAME><VALUE>APPL</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_size</NAME><VALUE>384</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_minsize</NAME><VALUE>384</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_stacksize</NAME><VALUE>64</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_flags</NAME><VALUE>22720</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_symfilename</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcname</NAME><VALUE></VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcheader</NAME><VALUE>Native</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrctype</NAME><VALUE>????</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcid</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcflags</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcstore</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_rsrcmerge</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_flatrsrc</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_flatrsrcoutputdir</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>MWProject_PPC_flatrsrcfilename</NAME><VALUE></VALUE></SETTING>\n";
+
+ /*
+ fout << "<SETTING><NAME>MWMerge_MacOS_outputCreator</NAME><VALUE>????</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_outputType</NAME><VALUE>APPL</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_suppressWarning</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_copyFragments</NAME><VALUE>1</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_flattenResource</NAME><VALUE>0</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_flatFileName</NAME><VALUE>a.rsrc</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_flatFileOutputPath</NAME>\n";
+ fout << "<SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>\n";
+ fout << "<SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>\n";
+ fout << "</SETTING>\n";
+ fout << "<SETTING><NAME>MWMerge_MacOS_skipResources</NAME><VALUE></VALUE></SETTING>\n";
+ */
fout << "</SETTINGLIST>\n";
}
void cmLocalCodeWarriorGenerator::WriteFileList(std::ostream& fout,
- const char *tgtName,
+ const char *tgtName,
cmTarget const *l)
{
fout << "<FILELIST>\n";
@@ -114,9 +280,61 @@ void cmLocalCodeWarriorGenerator::WriteFileList(std::ostream& fout,
fout << "<FILEFLAGS>Debug</FILEFLAGS>\n";
fout << "</FILE>\n";
}
+
+ // now add in the libraries we depend on
+
+
+ // now add in the system libs (for an executable)
+ if (l->GetType() == cmTarget::EXECUTABLE)
+ {
+ fout << "<FILE>\n";
+ fout << "<PATHTYPE>Name</PATHTYPE>\n";
+ fout << "<PATH>MSL RuntimePPC.Lib</PATH>\n";
+ fout << "<PATHFORMAT>MacOS</PATHFORMAT>\n";
+ fout << "<FILEKIND>Library</FILEKIND>\n";
+ fout << "<FILEFLAGS>Debug</FILEFLAGS>\n";
+ fout << "</FILE>\n";
+ }
+
fout << "</FILELIST>\n";
}
+
+void cmLocalCodeWarriorGenerator::WriteLinkOrder(std::ostream& fout,
+ const char *tgtName,
+ cmTarget const *l)
+{
+ fout << "<LINKORDER>\n";
+
+ // for each file
+ std::vector<cmSourceFile*> const& classes = l->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();
+ fout << "<FILEREF>\n";
+ fout << "<PATHTYPE>Absolute</PATHTYPE>\n";
+ fout << "<PATHROOT>Absolute</PATHROOT>\n";
+ //fout << "<ACCESSPATH>common</ACCESSPATH>\n";
+ fout << "<PATH>" << source << "</PATH>\n";
+ fout << "<PATHFORMAT>Generic</PATHFORMAT>\n";
+ fout << "</FILEREF>\n";
+ }
+
+ // now add in the system libs (for an executable)
+ if (l->GetType() == cmTarget::EXECUTABLE)
+ {
+ fout << "<FILEREF>\n";
+ fout << "<PATHTYPE>Name</PATHTYPE>\n";
+ fout << "<PATH>MSL RuntimePPC.Lib</PATH>\n";
+ fout << "<PATHFORMAT>MacOS</PATHFORMAT>\n";
+ fout << "</FILEREF>\n";
+ }
+
+ fout << "</LINKORDER>\n";
+}
+
void cmLocalCodeWarriorGenerator::WriteGroups(std::ostream& fout)
{
cmTargets &tgts = m_Makefile->GetTargets();
@@ -125,6 +343,7 @@ void cmLocalCodeWarriorGenerator::WriteGroups(std::ostream& fout)
{
this->WriteGroup(fout,l->first.c_str(),&(l->second));
}
+
}
void cmLocalCodeWarriorGenerator::WriteGroup(std::ostream& fout,
@@ -141,11 +360,53 @@ void cmLocalCodeWarriorGenerator::WriteGroup(std::ostream& fout,
std::string source = (*i)->GetFullPath();
fout << "<FILEREF>\n";
fout << "<TARGETNAME>" << tgtName << "</TARGETNAME>\n";
- fout << "<PATHTYPE>Name</PATHTYPE>\n";
+ fout << "<PATHTYPE>Absolute</PATHTYPE>\n";
+ fout << "<PATHROOT>Absolute</PATHROOT>\n";
fout << "<PATH>" << source << "</PATH>\n";
fout << "<PATHFORMAT>Generic</PATHFORMAT>\n";
fout << "</FILEREF>\n";
}
+ // write out the libraries groups
+/*
+ <FILEREF>
+ <TARGETNAME>Classic Release</TARGETNAME>
+ <PATHTYPE>Name</PATHTYPE>
+ <PATH>console.stubs.c</PATH>
+ <PATHFORMAT>MacOS</PATHFORMAT>
+ </FILEREF>
+*/
+
+ if (l->GetType() == cmTarget::EXECUTABLE)
+ {
+ fout << "<FILEREF>\n";
+ fout << "<TARGETNAME>" << tgtName << "</TARGETNAME>\n";
+ fout << "<PATHTYPE>Name</PATHTYPE>\n";
+ fout << "<PATH>MSL RuntimePPC.Lib</PATH>\n";
+ fout << "<PATHFORMAT>MacOS</PATHFORMAT>\n";
+ fout << "</FILEREF>\n";
+ }
+
+/*
+ <FILEREF>
+ <TARGETNAME>Classic Release</TARGETNAME>
+ <PATHTYPE>Name</PATHTYPE>
+ <PATH>MSL C++.PPC.Lib</PATH>
+ <PATHFORMAT>MacOS</PATHFORMAT>
+ </FILEREF>
+ <FILEREF>
+ <TARGETNAME>Classic Release</TARGETNAME>
+ <PATHTYPE>Name</PATHTYPE>
+ <PATH>MSL C.PPC.Lib</PATH>
+ <PATHFORMAT>MacOS</PATHFORMAT>
+ </FILEREF>
+ <FILEREF>
+ <TARGETNAME>Carbon Debug</TARGETNAME>
+ <PATHTYPE>Name</PATHTYPE>
+ <PATH>MSL C.CARBON.Lib</PATH>
+ <PATHFORMAT>MacOS</PATHFORMAT>
+ </FILEREF>
+*/
+
fout << "</GROUP>\n";
}
diff --git a/Source/cmLocalCodeWarriorGenerator.h b/Source/cmLocalCodeWarriorGenerator.h
index 2cfe959..d3f2790 100644
--- a/Source/cmLocalCodeWarriorGenerator.h
+++ b/Source/cmLocalCodeWarriorGenerator.h
@@ -65,6 +65,12 @@ private:
void WriteSettingList(std::ostream& fout, const char *name,
cmTarget const *l);
void WriteFileList(std::ostream& fout, const char *name, cmTarget const *l);
+ void WriteLinkOrder(std::ostream& fout, const char *name, cmTarget const *l);
+ void AddFileMapping(std::ostream& fout, const char *ftype,
+ const char *ext, const char *comp,
+ const char *edit, bool precomp,
+ bool launch, bool res, bool ignored);
+
};
#endif