diff options
author | Ken Martin <ken.martin@kitware.com> | 2002-10-09 17:30:54 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2002-10-09 17:30:54 (GMT) |
commit | 5cef592bb1a25000007202a5a37606e819af563d (patch) | |
tree | e00f613af4760a6a4c07ed37c221aa669a10e8ac | |
parent | ea87271c4a4e534772d7d8f14b70b6fd8ac648be (diff) | |
download | CMake-5cef592bb1a25000007202a5a37606e819af563d.zip CMake-5cef592bb1a25000007202a5a37606e819af563d.tar.gz CMake-5cef592bb1a25000007202a5a37606e819af563d.tar.bz2 |
some updates
-rw-r--r-- | Source/cmGlobalCodeWarriorGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmLocalCodeWarriorGenerator.cxx | 273 | ||||
-rw-r--r-- | Source/cmLocalCodeWarriorGenerator.h | 6 |
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 |