mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-29 10:24:12 +01:00
Adding support for user-installed libraries in the "libraries" sub-directory of the sketchbook folder.
This commit is contained in:
parent
07feaca3a1
commit
c2cac3e75d
@ -34,7 +34,7 @@ import javax.swing.*;
|
||||
*/
|
||||
public class LibraryManager {
|
||||
|
||||
private File libDir;
|
||||
private File coreLibDir, userLibDir;
|
||||
private List libraries = new ArrayList();
|
||||
private Target target;
|
||||
|
||||
@ -44,9 +44,11 @@ public class LibraryManager {
|
||||
public LibraryManager() throws IOException
|
||||
{
|
||||
String userDir = System.getProperty("user.dir") + File.separator;
|
||||
libDir = new File(
|
||||
coreLibDir = new File(
|
||||
((!Base.isMacOS()) ? "" : userDir) + "hardware" + File.separator +
|
||||
"libraries");
|
||||
userLibDir =
|
||||
new File(Sketchbook.getSketchbookPath() + File.separator + "libraries");
|
||||
target = new Target(
|
||||
System.getProperty("user.dir") + File.separator + "hardware" +
|
||||
File.separator + "cores",
|
||||
@ -70,9 +72,15 @@ public class LibraryManager {
|
||||
}
|
||||
};
|
||||
libraries.clear();
|
||||
File[] libs = libDir.listFiles(onlyDirs);
|
||||
for(int i = 0; i < libs.length; ++i){
|
||||
libraries.add(new Library(this, libs[i]));
|
||||
File[] userLibs = userLibDir.listFiles(onlyDirs);
|
||||
if (userLibs != null) {
|
||||
for(int i = 0; i < userLibs.length; ++i){
|
||||
libraries.add(new Library(this, userLibs[i]));
|
||||
}
|
||||
}
|
||||
File[] coreLibs = coreLibDir.listFiles(onlyDirs);
|
||||
for(int i = 0; i < coreLibs.length; ++i){
|
||||
libraries.add(new Library(this, coreLibs[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2238,6 +2238,7 @@ public class Sketch {
|
||||
public boolean isReadOnly() {
|
||||
String apath = folder.getAbsolutePath();
|
||||
if (apath.startsWith(Sketchbook.examplesPath) ||
|
||||
apath.startsWith(Sketchbook.userLibrariesPath) ||
|
||||
apath.startsWith(Sketchbook.librariesPath)) {
|
||||
return true;
|
||||
|
||||
|
@ -68,6 +68,9 @@ public class Sketchbook {
|
||||
|
||||
static File librariesFolder;
|
||||
static String librariesPath;
|
||||
|
||||
static File userLibrariesFolder;
|
||||
static String userLibrariesPath;
|
||||
|
||||
// maps imported packages to their library folder
|
||||
static Hashtable importToLibraryTable = new Hashtable();
|
||||
@ -131,11 +134,14 @@ public class Sketchbook {
|
||||
//System.out.println("resetting sketchbook path");
|
||||
File sketchbookFolder = Base.getDefaultSketchbookFolder();
|
||||
//System.out.println("default is " + sketchbookFolder);
|
||||
Preferences.set("sketchbook.path",
|
||||
sketchbookFolder.getAbsolutePath());
|
||||
sketchbookPath = sketchbookFolder.getAbsolutePath();
|
||||
Preferences.set("sketchbook.path", sketchbookPath);
|
||||
|
||||
if (!sketchbookFolder.exists()) sketchbookFolder.mkdirs();
|
||||
}
|
||||
userLibrariesFolder = new File(sketchbookPath, "libraries");
|
||||
userLibrariesPath = userLibrariesFolder.getAbsolutePath();
|
||||
|
||||
openMenu = new JMenu("Sketchbook");
|
||||
popupMenu = new JMenu("Sketchbook");
|
||||
importMenu = new JMenu("Import Library");
|
||||
@ -386,6 +392,7 @@ public class Sketchbook {
|
||||
if (addLibraries(importMenu, examplesFolder)) {
|
||||
importMenu.addSeparator();
|
||||
}
|
||||
addLibraries(importMenu, userLibrariesFolder);
|
||||
addLibraries(importMenu, librariesFolder);
|
||||
//System.out.println("libraries cp is now " + librariesClassPath);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user