From 3d1aaf1aa946d2e47de6a27056c8642831c87ecd Mon Sep 17 00:00:00 2001 From: jules Date: Fri, 29 Mar 2013 17:10:18 +0000 Subject: [PATCH] Introjucer: Code::Blocks fixes. --- .../jucer_ProjectExport_CodeBlocks.h | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h index 84c1037575..d1628160f0 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_CodeBlocks.h @@ -62,16 +62,12 @@ public: //============================================================================== void create (const OwnedArray&) const { - Array files; - for (int i = 0; i < getAllGroups().size(); ++i) - findAllFilesToCompile (getAllGroups().getReference(i), files); - const File cbpFile (getTargetFolder().getChildFile (project.getProjectFilenameRoot()) .withFileExtension (".cbp")); XmlElement xml ("CodeBlocks_project_file"); addVersion (xml); - createProject (*xml.createNewChildElement ("Project"), files); + createProject (*xml.createNewChildElement ("Project")); writeXmlOrThrow (xml, cbpFile, "UTF-8", 10); } @@ -96,20 +92,6 @@ private: } //============================================================================== - void findAllFilesToCompile (const Project::Item& projectItem, Array& results) const - { - if (projectItem.isGroup()) - { - for (int i = 0; i < projectItem.getNumChildren(); ++i) - findAllFilesToCompile (projectItem.getChild(i), results); - } - else - { - if (projectItem.shouldBeCompiled()) - results.add (RelativePath (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder)); - } - } - void addVersion (XmlElement& xml) const { XmlElement* fileVersion = xml.createNewChildElement ("FileVersion"); @@ -259,12 +241,15 @@ private: XmlElement* const linker = xml.createNewChildElement ("Linker"); const StringArray linkerFlags (getLinkerFlags (config)); - for (int i = 0; i < linkerFlags.size(); ++i) setAddOption (*linker, "option", linkerFlags[i]); for (int i = 0; i < mingwLibs.size(); ++i) setAddOption (*linker, "library", mingwLibs[i]); + + const StringArray librarySearchPaths (config.getLibrarySearchPaths()); + for (int i = 0; i < librarySearchPaths.size(); ++i) + setAddOption (*linker, "directory", replacePreprocessorDefs (getAllPreprocessorDefs(), librarySearchPaths[i])); } } @@ -297,23 +282,41 @@ private: setAddOption (*linker, "library", replacePreprocessorDefs (getAllPreprocessorDefs(), libs[i])); } - - void addCompileUnits (XmlElement& xml, const Array& files) const + void addCompileUnits (const Project::Item& projectItem, XmlElement& xml) const { - for (int i = 0; i < files.size(); ++i) + if (projectItem.isGroup()) { - const RelativePath& file = files.getReference(i); - xml.createNewChildElement ("Unit")->setAttribute ("filename", file.toUnixStyle()); + for (int i = 0; i < projectItem.getNumChildren(); ++i) + addCompileUnits (projectItem.getChild(i), xml); } + else if (projectItem.shouldBeAddedToTargetProject()) + { + const RelativePath file (projectItem.getFile(), getTargetFolder(), RelativePath::buildTargetFolder); + + XmlElement* unit = xml.createNewChildElement ("Unit"); + unit->setAttribute ("filename", file.toUnixStyle()); + + if (! projectItem.shouldBeCompiled()) + { + unit->createNewChildElement("Option")->setAttribute ("compile", 0); + unit->createNewChildElement("Option")->setAttribute ("link", 0); + } + } + } + + void addCompileUnits (XmlElement& xml) const + { + for (int i = 0; i < getAllGroups().size(); ++i) + addCompileUnits (getAllGroups().getReference(i), xml); } - void createProject (XmlElement& xml, const Array& files) const + void createProject (XmlElement& xml) const { addOptions (xml); addBuild (xml); addProjectCompilerOptions (xml); addProjectLinkerOptions (xml); - addCompileUnits (xml, files); + addCompileUnits (xml); } void setAddOption (XmlElement& xml, const String& name, const String& value) const