void LibraryModule::addBrowseableCode (ProjectExporter& exporter, const Array<File>& compiled, const File& localModuleFolder) const { if (sourceFiles.size() == 0) findBrowseableFiles (localModuleFolder, sourceFiles); Project::Item sourceGroup (Project::Item::createGroup (exporter.getProject(), getID(), "__mainsourcegroup" + getID())); const RelativePath moduleFromProject (exporter.getModuleFolderRelativeToProject (getID())); for (int i = 0; i < sourceFiles.size(); ++i) { const String pathWithinModule (FileHelpers::getRelativePathFrom (sourceFiles.getReference(i), localModuleFolder)); // (Note: in exporters like MSVC we have to avoid adding the same file twice, even if one of those instances // is flagged as being excluded from the build, because this overrides the other and it fails to compile) if (exporter.canCopeWithDuplicateFiles() || ! compiled.contains (sourceFiles.getReference(i))) addFileWithGroups (sourceGroup, moduleFromProject.getChildFile (pathWithinModule), pathWithinModule); } sourceGroup.addFileAtIndex (localModuleFolder.getChildFile (FileHelpers::getRelativePathFrom (moduleInfo.manifestFile, moduleInfo.getFolder())), -1, false); sourceGroup.addFileAtIndex (getModuleHeaderFile (localModuleFolder), -1, false); exporter.getModulesGroup().state.addChild (sourceGroup.state.createCopy(), -1, nullptr); }
void LibraryModule::addBrowseableCode (ProjectExporter& exporter, const Array<File>& compiled, const File& localModuleFolder) const { if (sourceFiles.isEmpty()) findBrowseableFiles (localModuleFolder, sourceFiles); Project::Item sourceGroup (Project::Item::createGroup (exporter.getProject(), getID(), "__mainsourcegroup" + getID(), false)); const RelativePath moduleFromProject (exporter.getModuleFolderRelativeToProject (getID())); auto moduleHeader = moduleInfo.getHeader(); for (auto& sourceFile : sourceFiles) { auto pathWithinModule = FileHelpers::getRelativePathFrom (sourceFile, localModuleFolder); // (Note: in exporters like MSVC we have to avoid adding the same file twice, even if one of those instances // is flagged as being excluded from the build, because this overrides the other and it fails to compile) if ((exporter.canCopeWithDuplicateFiles() || ! compiled.contains (sourceFile)) && sourceFile != moduleHeader) addFileWithGroups (sourceGroup, moduleFromProject.getChildFile (pathWithinModule), pathWithinModule); } sourceGroup.sortAlphabetically (true, true); sourceGroup.addFileAtIndex (moduleHeader, -1, false); exporter.getModulesGroup().state.addChild (sourceGroup.state.createCopy(), -1, nullptr); }