| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE 6 technical preview.
 -    Copyright (c) 2017 - ROLI Ltd.
 - 
 -    You may use this code under the terms of the GPL v3
 -    (see www.gnu.org/licenses).
 - 
 -    For this technical preview, this file is not subject to commercial licensing.
 - 
 -    JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 -    EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 -    DISCLAIMED.
 - 
 -   ==============================================================================
 - */
 - 
 - #pragma once
 - 
 - 
 - //==============================================================================
 - class ModuleDescription
 - {
 - public:
 -     ModuleDescription() = default;
 - 
 -     ModuleDescription (const File& folder)
 -        : moduleFolder (folder),
 -          moduleInfo (parseJUCEHeaderMetadata (getHeader()))
 -     {
 -     }
 - 
 -     bool isValid() const                    { return getID().isNotEmpty(); }
 - 
 -     String getID() const                    { return moduleInfo [Ids::ID_uppercase].toString(); }
 -     String getVendor() const                { return moduleInfo [Ids::vendor].toString(); }
 -     String getVersion() const               { return moduleInfo [Ids::version].toString(); }
 -     String getName() const                  { return moduleInfo [Ids::name].toString(); }
 -     String getDescription() const           { return moduleInfo [Ids::description].toString(); }
 -     String getLicense() const               { return moduleInfo [Ids::license].toString(); }
 -     String getMinimumCppStandard() const    { return moduleInfo [Ids::minimumCppStandard].toString(); }
 -     String getPreprocessorDefs() const      { return moduleInfo [Ids::defines].toString(); }
 -     String getExtraSearchPaths() const      { return moduleInfo [Ids::searchpaths].toString(); }
 -     var getModuleInfo() const               { return moduleInfo; }
 -     File getModuleFolder() const            { return moduleFolder; }
 - 
 -     File getFolder() const
 -     {
 -         jassert (moduleFolder != File());
 - 
 -         return moduleFolder;
 -     }
 - 
 -     File getHeader() const
 -     {
 -         if (moduleFolder != File())
 -         {
 -             static const char* extensions[] = { ".h", ".hpp", ".hxx" };
 - 
 -             for (auto e : extensions)
 -             {
 -                 auto header = moduleFolder.getChildFile (moduleFolder.getFileName() + e);
 - 
 -                 if (header.existsAsFile())
 -                     return header;
 -             }
 -         }
 - 
 -         return {};
 -     }
 - 
 -     StringArray getDependencies() const
 -     {
 -         auto moduleDependencies = StringArray::fromTokens (moduleInfo ["dependencies"].toString(), " \t;,", "\"'");
 -         moduleDependencies.trim();
 -         moduleDependencies.removeEmptyStrings();
 - 
 -         return moduleDependencies;
 -     }
 - 
 - private:
 -     File moduleFolder;
 -     var moduleInfo;
 -     URL url;
 - };
 
 
  |