Developer forums (C::B DEVELOPMENT STRICTLY!) > Compiler Framework Redesign
XML based compilers
Alpha:
This patch should (I cannot be certain, because I only tested it on Windows):
* Read projects and default.conf entries containing compiler id's in the old format (and upgrade it to the new format)
* Fix regexes (for some reason -dumpversion gives all three values on my computer?!) to only look for major.minor (all compiler flags in the trunk already exist in this branch; these fixed regexes should prevent them from incorrectly being hidden)
* Fix bug when copying a compiler (copied compilers are supposed to be placed at the end of the list, however, my initial implementation of weight sorted compiler order neglected to take this into account)
* Add "Enable non-platform compilers" check-box (to load, for example, MSVC on Linux; be warned that as I am not on Linux, I cannot tell if this actually works)
* Switch the right-click note to a tool tip (this is less obtrusive, but should still alert the user to the editing capability)
Copied pure XML compilers currently act exactly like copied built-in compilers (or at least, they are supposed to). The compiler_*.xml files are never duplicated, however, the user data folder is scanned for them in case the user created a local compiler.
In the future, I may create a wizard to allow for (semi-)graphical creation of a fully fledged (XML) compiler (assuming there is any interest in such a feature).
MortenMacFly:
--- Quote from: Alpha on August 02, 2012, 11:35:29 pm ---This patch should (I cannot be certain, because I only tested it on Windows): [...]
--- End quote ---
Thanks for the fast response! I had a a look into it and I see this snippet in compiler.cpp (and compilerfactory.cpp):
{
tmp.Replace(wxT("-"), wxEmptyString); // try again using previous id format
if (!cfg->Exists(tmp + _T("/name")))
return;
}
Didn't you mean to replace "_" (underscore) with "" (empty)? Here, you replace "-" (minus), but IMHO that id not present in the IDs anyways...?! (See my previous post about the ID's). Why do you do so?
killerbot:
build is broken :
--- Code: ---AutoDetectResult CompilerLCC::AutoDetectInstallationDir()
{
#ifdef __WXMSW__
...
wxString compiler; compiler << wxFILE_SEP_PATH << _T("bin") << wxFILE_SEP_PATH << m_Programs.C;
...
#endif // __WXMSW__
...
return wxFileExists(m_MasterPath+compiler) ? adrDetected : adrGuessed;
--- End code ---
==> on linux : compiler does NOT exist, since declared in the ifdef part !!!
MortenMacFly:
--- Quote from: killerbot on August 03, 2012, 09:18:38 am ---build is broken :
--- End quote ---
Try again after SVN update.
Jenna:
Another build fix is in svn (missing symbols in libcompiler.so).
The checkbox to allow non-platform compilers needs a restart to have an effect.
This should be stated in the label, or if possible the compiler should be reloaded automatically.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version