diff --git a/extras/Projucer/Source/LiveBuildEngine/projucer_CompileEngineClient.cpp b/extras/Projucer/Source/LiveBuildEngine/projucer_CompileEngineClient.cpp index 350138024a..252143f327 100644 --- a/extras/Projucer/Source/LiveBuildEngine/projucer_CompileEngineClient.cpp +++ b/extras/Projucer/Source/LiveBuildEngine/projucer_CompileEngineClient.cpp @@ -434,6 +434,8 @@ private: scanProjectItem (proj.getMainGroup(), compileUnits, userFiles); { + const bool isPluginProject = proj.getProjectType().isAudioPlugin(); + OwnedArray modules; proj.getModules().createRequiredModules (modules); @@ -447,7 +449,13 @@ private: ? proj.getLocalModuleFolder (m->moduleInfo.getID()) : m->moduleInfo.getFolder(); - m->findAndAddCompiledUnits (*exporter, nullptr, compileUnits); + + m->findAndAddCompiledUnits (*exporter, nullptr, compileUnits, + isPluginProject ? ProjectType::Target::SharedCodeTarget + : ProjectType::Target::unspecified); + + if (isPluginProject) + m->findAndAddCompiledUnits (*exporter, nullptr, compileUnits, ProjectType::Target::StandalonePlugIn); } break; diff --git a/extras/Projucer/Source/Project/jucer_Module.cpp b/extras/Projucer/Source/Project/jucer_Module.cpp index dc94a947ff..779f682ef7 100644 --- a/extras/Projucer/Source/Project/jucer_Module.cpp +++ b/extras/Projucer/Source/Project/jucer_Module.cpp @@ -461,7 +461,7 @@ String LibraryModule::CompileUnit::getFilenameForProxyFile() const return "include_" + file.getFileName(); } -Array LibraryModule::getAllCompileUnits() const +Array LibraryModule::getAllCompileUnits (ProjectType::Target::Type forTarget) const { Array files; getFolder().findChildFiles (files, File::findFiles, false); @@ -476,9 +476,13 @@ Array LibraryModule::getAllCompileUnits() const if (file.getFileName().startsWithIgnoreCase (getID()) && file.hasFileExtension (sourceFileExtensions)) { - CompileUnit cu; - cu.file = file; - units.add (cu); + if (forTarget == ProjectType::Target::unspecified + || forTarget == Project::getTargetTypeFromFilePath (file, true)) + { + CompileUnit cu; + cu.file = file; + units.add (cu); + } } } @@ -499,9 +503,10 @@ Array LibraryModule::getAllCompileUnits() const void LibraryModule::findAndAddCompiledUnits (ProjectExporter& exporter, ProjectSaver* projectSaver, - Array& result) const + Array& result, + ProjectType::Target::Type forTarget) const { - for (auto& cu : getAllCompileUnits()) + for (auto& cu : getAllCompileUnits (forTarget)) { if (cu.isNeededForExporter (exporter)) { diff --git a/extras/Projucer/Source/Project/jucer_Module.h b/extras/Projucer/Source/Project/jucer_Module.h index a55ddda5e3..da40406aae 100644 --- a/extras/Projucer/Source/Project/jucer_Module.h +++ b/extras/Projucer/Source/Project/jucer_Module.h @@ -116,8 +116,9 @@ public: static bool hasSuffix (const File&, const char*); }; - Array getAllCompileUnits() const; - void findAndAddCompiledUnits (ProjectExporter&, ProjectSaver*, Array& result) const; + Array getAllCompileUnits (ProjectType::Target::Type forTarget = ProjectType::Target::unspecified) const; + void findAndAddCompiledUnits (ProjectExporter&, ProjectSaver*, Array& result, + ProjectType::Target::Type forTarget = ProjectType::Target::unspecified) const; ModuleDescription moduleInfo;