//============================================================================== void LibraryModule::prepareExporter (ProjectExporter& exporter, ProjectSaver& projectSaver) const { Project& project = exporter.getProject(); exporter.addToExtraSearchPaths (exporter.getModuleFolderRelativeToProject (getID(), projectSaver).getParentDirectory()); const String extraDefs (moduleInfo.getPreprocessorDefs().trim()); if (extraDefs.isNotEmpty()) exporter.getExporterPreprocessorDefs() = exporter.getExporterPreprocessorDefsString() + "\n" + extraDefs; { Array<File> compiled; const File localModuleFolder = project.getModules().shouldCopyModuleFilesLocally (getID()).getValue() ? projectSaver.getLocalModuleFolder (getID()) : moduleInfo.getFolder(); findAndAddCompiledCode (exporter, projectSaver, localModuleFolder, compiled); if (project.getModules().shouldShowAllModuleFilesInProject (getID()).getValue()) addBrowsableCode (exporter, projectSaver, compiled, moduleInfo.getFolder()); } if (isVSTPluginHost (project)) VSTHelpers::addVSTFolderToPath (exporter, exporter.extraSearchPaths); if (exporter.isXcode()) { if (isAUPluginHost (project)) exporter.xcodeFrameworks.addTokens ("AudioUnit CoreAudioKit", false); const String frameworks (moduleInfo.moduleInfo [exporter.isOSX() ? "OSXFrameworks" : "iOSFrameworks"].toString()); exporter.xcodeFrameworks.addTokens (frameworks, ", ", String::empty); } else if (exporter.isLinux()) { const String libs (moduleInfo.moduleInfo ["LinuxLibs"].toString()); exporter.linuxLibs.addTokens (libs, ", ", String::empty); exporter.linuxLibs.trim(); exporter.linuxLibs.sort (false); exporter.linuxLibs.removeDuplicates (false); } else if (exporter.isCodeBlocks()) { const String libs (moduleInfo.moduleInfo ["mingwLibs"].toString()); exporter.mingwLibs.addTokens (libs, ", ", String::empty); exporter.mingwLibs.trim(); exporter.mingwLibs.sort (false); exporter.mingwLibs.removeDuplicates (false); } if (moduleInfo.isPluginClient()) { if (shouldBuildVST (project).getValue()) VSTHelpers::prepareExporter (exporter, projectSaver); if (shouldBuildAU (project).getValue()) AUHelpers::prepareExporter (exporter, projectSaver); if (shouldBuildAAX (project).getValue()) AAXHelpers::prepareExporter (exporter, projectSaver); if (shouldBuildRTAS (project).getValue()) RTASHelpers::prepareExporter (exporter, projectSaver); } }
RelativePath ProjectExporter::getModuleFolderRelativeToProject (const String& moduleID, ProjectSaver& projectSaver) const { if (project.getModules().shouldCopyModuleFilesLocally (moduleID).getValue()) return RelativePath (project.getRelativePathForFile (projectSaver.getLocalModuleFolder (moduleID)), RelativePath::projectFolder); String path (getPathForModuleString (moduleID)); if (path.isEmpty()) return getLegacyModulePath (moduleID).getChildFile (moduleID); return RelativePath (path, RelativePath::projectFolder).getChildFile (moduleID); }
//============================================================================== void LibraryModule::writeIncludes (ProjectSaver& projectSaver, OutputStream& out) { const File localModuleFolder (projectSaver.getLocalModuleFolder (getID())); const File localHeader (getModuleHeaderFile (localModuleFolder)); localModuleFolder.createDirectory(); if (projectSaver.project.getModules().shouldCopyModuleFilesLocally (getID()).getValue()) { projectSaver.copyFolder (moduleInfo.getFolder(), localModuleFolder); } else { localModuleFolder.createDirectory(); createLocalHeaderWrapper (projectSaver, getModuleHeaderFile (moduleInfo.getFolder()), localHeader); } out << CodeHelpers::createIncludeStatement (localHeader, projectSaver.getGeneratedCodeFolder() .getChildFile ("AppConfig.h")) << newLine; }