diff --git a/.gitignore b/.gitignore index da0ca95e75e..bfd34bada91 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,7 @@ hardware/arduino/bootloaders/caterina_LUFA/.dep/ .gitignore build/windows/work/ build/linux/work/ +build/linux/dist/*.tar.gz +build/linux/*.tgz test-bin +*.iml diff --git a/app/.classpath_vista b/app/.classpath_vista old mode 100755 new mode 100644 diff --git a/app/lib/apple.jar b/app/lib/apple.jar old mode 100755 new mode 100644 diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 102476579c5..7a12a4d6b4a 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -2716,11 +2716,6 @@ public void handleAddLibrary(Editor editor) { editor.statusError(mess); return; } - String[] headerFiles = headerListFromIncludePath(libFolder); - if (headerFiles == null || headerFiles.length == 0) { - editor.statusError(_("Not a valid library: no header files found")); - return; - } // copy folder File destinationFolder = new File(getSketchbookLibrariesFolder(), sourceFile.getName()); diff --git a/app/src/processing/app/Resources_it.properties b/app/src/processing/app/Resources_it.properties index 3151af80481..8876abdc04b 100644 --- a/app/src/processing/app/Resources_it.properties +++ b/app/src/processing/app/Resources_it.properties @@ -1,8 +1,8 @@ -# Italian translations for PACKAGE package. -# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# Sara Gallo, Simone Majocchi, Michele Michielin <>, 2012. -# +# Italian translations for PACKAGE package. +# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Sara Gallo, Simone Majocchi, Michele Michielin <>, 2012. +# !=Project-Id-Version\: PACKAGE VERSION\nReport-Msgid-Bugs-To\: \nPOT-Creation-Date\: 2012-03-29 10\:24-0400\nPO-Revision-Date\: 2012-04-08 12\:00+0200\nLast-Translator\: Sara Gallo, Simone Majocchi, Michele Michielin\nLanguage-Team\: Italian\nLanguage\: IT\nMIME-Version\: 1.0\nContent-Type\: text/plain; charset\=UTF-8\nContent-Transfer-Encoding\: 8bit\nPlural-Forms\: nplurals\=2; plural\=(n \!\= 1);\n #: Editor.java:366 @@ -221,7 +221,7 @@ OK=OK #: Editor.java:2100 #, java-format -The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Il file "{0}" deve essere all'interno\ndi una cartella sketch di nome "{1}".\nCreare questa cartella, spostare il file e continuare? +The\ file\ "{0}"\ needs\ to\ be\ inside\na\ sketch\ folder\ named\ "{1}".\nCreate\ this\ folder,\ move\ the\ file,\ and\ continue?=Il file "{0}" deve essere all''interno\ndi una cartella sketch di nome "{1}".\nCreare questa cartella, spostare il file e continuare? #: Editor.java:2109 Moving=Sto spostando diff --git a/app/src/processing/app/Serial.java b/app/src/processing/app/Serial.java old mode 100755 new mode 100644 diff --git a/app/src/processing/app/debug/Compiler.java b/app/src/processing/app/debug/Compiler.java index 1bd8b8c256c..ad3093842e9 100644 --- a/app/src/processing/app/debug/Compiler.java +++ b/app/src/processing/app/debug/Compiler.java @@ -40,6 +40,7 @@ import processing.app.SketchCode; import processing.app.helpers.PreferencesMap; import processing.app.helpers.StringReplacer; +import processing.app.helpers.filefilters.OnlyDirs; import processing.core.PApplet; public class Compiler implements MessageConsumer { @@ -578,26 +579,47 @@ void compileSketch(List includePaths) throws RunnerException { // 2. compile the libraries, outputting .o files to: // // void compileLibraries(List includePaths) throws RunnerException { - + File outputPath = new File(prefs.get("build.path")); for (File libraryFolder : sketch.getImportedLibraries()) { - String outputPath = prefs.get("build.path"); - File outputFolder = new File(outputPath, libraryFolder.getName()); - File utilityFolder = new File(libraryFolder, "utility"); - createFolder(outputFolder); - // this library can use includes in its utility/ folder - includePaths.add(utilityFolder.getAbsolutePath()); - - objectFiles.addAll(compileFiles(outputFolder.getAbsolutePath(), - libraryFolder, false, includePaths)); - outputFolder = new File(outputFolder, "utility"); - createFolder(outputFolder); - objectFiles.addAll(compileFiles(outputFolder.getAbsolutePath(), - utilityFolder, false, includePaths)); - // other libraries should not see this library's utility/ folder - includePaths.remove(includePaths.size() - 1); + if (new File(libraryFolder.getParentFile(), "library.properties").exists()) { + recursiveCompileLibrary(outputPath, libraryFolder, includePaths); + } else { + compileLibrary(outputPath, libraryFolder, includePaths); + } } } - + + private void recursiveCompileLibrary(File outputPath, File libraryFolder, List includePaths) throws RunnerException { + File newOutputPath = compileFilesInFolder(outputPath, libraryFolder, includePaths); + for (File subFolder : libraryFolder.listFiles(new OnlyDirs())) { + recursiveCompileLibrary(newOutputPath, subFolder, includePaths); + } + } + + private File compileFilesInFolder(File outputPath, File libraryFolder, List includePaths) throws RunnerException { + File outputFolder = new File(outputPath, libraryFolder.getName()); + createFolder(outputFolder); + objectFiles.addAll(compileFiles(outputFolder.getAbsolutePath(), libraryFolder, false, includePaths)); + return outputFolder; + } + + private void compileLibrary(File outputPath, File libraryFolder, List includePaths) throws RunnerException { + File outputFolder = new File(outputPath, libraryFolder.getName()); + File utilityFolder = new File(libraryFolder, "utility"); + createFolder(outputFolder); + // this library can use includes in its utility/ folder + includePaths.add(utilityFolder.getAbsolutePath()); + + objectFiles.addAll(compileFiles(outputFolder.getAbsolutePath(), + libraryFolder, false, includePaths)); + outputFolder = new File(outputFolder, "utility"); + createFolder(outputFolder); + objectFiles.addAll(compileFiles(outputFolder.getAbsolutePath(), + utilityFolder, false, includePaths)); + // other libraries should not see this library's utility/ folder + includePaths.remove(includePaths.size() - 1); + } + // 3. compile the core, outputting .o files to and then // collecting them into the core.a library file. void compileCore() diff --git a/app/src/processing/app/tools/Archiver.java b/app/src/processing/app/tools/Archiver.java old mode 100755 new mode 100644 diff --git a/build/howto.txt b/build/howto.txt old mode 100755 new mode 100644 diff --git a/build/shared/lib/preferences.txt b/build/shared/lib/preferences.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168.c b/hardware/arduino/avr/bootloaders/atmega/ATmegaBOOT_168.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/atmega/Makefile b/hardware/arduino/avr/bootloaders/atmega/Makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/atmega8/ATmegaBOOT.c b/hardware/arduino/avr/bootloaders/atmega8/ATmegaBOOT.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/bt/Makefile b/hardware/arduino/avr/bootloaders/bt/Makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.c b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.h b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Caterina.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.c b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.h b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Descriptors.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Makefile b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Readme.txt b/hardware/arduino/avr/bootloaders/caterina-LilyPadUSB/Readme.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina/Caterina.c b/hardware/arduino/avr/bootloaders/caterina/Caterina.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina/Caterina.h b/hardware/arduino/avr/bootloaders/caterina/Caterina.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina/Descriptors.c b/hardware/arduino/avr/bootloaders/caterina/Descriptors.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina/Descriptors.h b/hardware/arduino/avr/bootloaders/caterina/Descriptors.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/caterina/Makefile b/hardware/arduino/avr/bootloaders/caterina/Makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/stk500v2/License.txt b/hardware/arduino/avr/bootloaders/stk500v2/License.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/stk500v2/Makefile b/hardware/arduino/avr/bootloaders/stk500v2/Makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/stk500v2/command.h b/hardware/arduino/avr/bootloaders/stk500v2/command.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/bootloaders/stk500v2/stk500boot.c b/hardware/arduino/avr/bootloaders/stk500v2/stk500boot.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/Arduino.h b/hardware/arduino/avr/cores/arduino/Arduino.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/Print.cpp b/hardware/arduino/avr/cores/arduino/Print.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/Print.h b/hardware/arduino/avr/cores/arduino/Print.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/Tone.cpp b/hardware/arduino/avr/cores/arduino/Tone.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/wiring_private.h b/hardware/arduino/avr/cores/arduino/wiring_private.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/wiring_pulse.c b/hardware/arduino/avr/cores/arduino/wiring_pulse.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/cores/arduino/wiring_shift.c b/hardware/arduino/avr/cores/arduino/wiring_shift.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.c b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Arduino-usbdfu.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Board/LEDs.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Board/LEDs.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.c b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/Descriptors.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/makefile b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbdfu/makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial.c b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Board/LEDs.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Board/LEDs.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Descriptors.c b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Descriptors.c old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Descriptors.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Descriptors.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Lib/LightweightRingBuff.h b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Lib/LightweightRingBuff.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/makefile b/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/makefile old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/EEPROM/EEPROM.cpp b/hardware/arduino/avr/libraries/EEPROM/EEPROM.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/EEPROM/EEPROM.h b/hardware/arduino/avr/libraries/EEPROM/EEPROM.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Ethernet/Dhcp.cpp b/hardware/arduino/avr/libraries/Ethernet/Dhcp.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Ethernet/Dhcp.h b/hardware/arduino/avr/libraries/Ethernet/Dhcp.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Ethernet/utility/socket.h b/hardware/arduino/avr/libraries/Ethernet/utility/socket.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Ethernet/utility/w5100.h b/hardware/arduino/avr/libraries/Ethernet/utility/w5100.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Servo/Servo.cpp b/hardware/arduino/avr/libraries/Servo/Servo.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Servo/Servo.h b/hardware/arduino/avr/libraries/Servo/Servo.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Servo/keywords.txt b/hardware/arduino/avr/libraries/Servo/keywords.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp b/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h b/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/SoftwareSerial/keywords.txt b/hardware/arduino/avr/libraries/SoftwareSerial/keywords.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/WiFi.cpp b/hardware/arduino/avr/libraries/WiFi/WiFi.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/WiFi.h b/hardware/arduino/avr/libraries/WiFi/WiFi.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/WiFiClient.cpp b/hardware/arduino/avr/libraries/WiFi/WiFiClient.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/WiFiClient.h b/hardware/arduino/avr/libraries/WiFi/WiFiClient.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/WiFiServer.h b/hardware/arduino/avr/libraries/WiFi/WiFiServer.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/WiFi/keywords.txt b/hardware/arduino/avr/libraries/WiFi/keywords.txt old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Wire/Wire.cpp b/hardware/arduino/avr/libraries/Wire/Wire.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Wire/Wire.h b/hardware/arduino/avr/libraries/Wire/Wire.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino b/hardware/arduino/avr/libraries/Wire/examples/SFRRanger_reader/SFRRanger_reader.ino old mode 100755 new mode 100644 diff --git a/hardware/arduino/avr/libraries/Wire/utility/twi.h b/hardware/arduino/avr/libraries/Wire/utility/twi.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/sam/libraries/Ethernet/Dhcp.cpp b/hardware/arduino/sam/libraries/Ethernet/Dhcp.cpp old mode 100755 new mode 100644 diff --git a/hardware/arduino/sam/libraries/Ethernet/Dhcp.h b/hardware/arduino/sam/libraries/Ethernet/Dhcp.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/sam/libraries/Ethernet/utility/socket.h b/hardware/arduino/sam/libraries/Ethernet/utility/socket.h old mode 100755 new mode 100644 diff --git a/hardware/arduino/sam/libraries/Ethernet/utility/w5100.h b/hardware/arduino/sam/libraries/Ethernet/utility/w5100.h old mode 100755 new mode 100644 diff --git a/libraries/LiquidCrystal/LiquidCrystal.h b/libraries/LiquidCrystal/LiquidCrystal.h old mode 100755 new mode 100644 diff --git a/libraries/LiquidCrystal/keywords.txt b/libraries/LiquidCrystal/keywords.txt old mode 100755 new mode 100644