1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-01-10 00:46:09 +01:00

996 Commits

Author SHA1 Message Date
Matthijs Kooijman
d3e2208c01 Process some commandline arguments earlier
Previously, the --board and --port arguments were stored in a variable
first and only processed later. Now, the arguments are processed right
away.

This does mean that the arguments are processed when the GUI is not yet
initialized, which caused problems with calling onBoardOrPortChange and
friends from selectBoard. However, since the GUI is not initialized,
there is no real reason to call them either - if we just set the
preferences to the right values, the GUI will be initialized correctly
later. For this reason, selectBoard no longer calls the GUI update
methods. Instead, those are called from the GUI code when the board is
changed through the menu instead (e.g., after calling selectBoard).

This commit slightly changes behaviour. Previously, --board and --port
only worked in combination with --verify and --upload, but were ignored
when just starting the IDE. Now, these are processed regardless of the
other options present.

Additionally, this commit causes all changed preferences to be saved.
Previously, only changes with --pref were saved, --board and --port
options were only active for the current run. This was caused because
the saving of the preferences happened as a side effect of loading the
file in the Editor, but only the --pref option was processed at that
time.

Note that the --verbose options are still only active for the current
run and are only valid combined with --verify or --upload (since they
default to non-verbose instead of the current preference).
2014-08-19 09:16:47 +02:00
Matthijs Kooijman
c0ab536b7b Add Base.selectSerialPort
This method takes care of setting the serial.port preference to the
given value, as well as deriving the serial.port.file preference. This
should prevent duplicate code in the future.

Note that a second copy of this code lives in SerialUploader, but that
doesn't write to the global Preferences but a local prefs map. Since the
global Preferences are currently static, there is no way to share code
between these two copies.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
7548591d51 Improve commandline handling control flow
This uses a switch on the action value, which makes it more clear what
code runs when. No actual behaviour is changed, most of the changes in
this commit are indentation changes.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
f3565a1bda Invert decision on when to show the GUI
Previously, the code showed an error when the given action was not
upload or verify. This is now reversed: the GUI is shown when the action
is "GUI" (which is the default when no action specified). Since the
action enum only contains these three values, there is no change in
behaviour, but this makes it easier to add new actions later.
2014-08-19 09:16:46 +02:00
Matthijs Kooijman
6a09ee5eb6 Use an "action" enum when processing commandline arguments
Previously, two separate booleans (doUpload and doVerify) were used.
However, since it always makes sense to specify only one of them, it
makes more sense to keep a single action enum variable, which slightly
simplifies the code (especially when more actions are added later).

Additionally, an error is now shown when both --verify and --upload are
specified on the commandline.
2014-08-19 09:16:46 +02:00
Cristian Maglie
a6c80364da FileUtils: added function to recursively find files with given extension 2014-08-08 15:01:53 +02:00
Cristian Maglie
7819374955 Removed unused variables 2014-08-08 15:01:53 +02:00
Cristian Maglie
82401c84bb Fix indent and typos on FindReplace.java 2014-07-25 12:10:42 +02:00
Fulvio Ieva
cd75cc24a2 Fix search and replace #2106 2014-07-25 12:01:43 +02:00
Fulvio Ieva
6efbecd3cc Do not replace textbox in Find/Replace dialog if no text is selected
See #2070
2014-07-25 11:56:08 +02:00
Fulvio Ieva
13321e3c1b Change layout in Find/Replace dialog to render correctly on Linux
see #2070
2014-07-25 11:38:34 +02:00
Fulvio Ieva
064fc45ba5 Merge branch 'feature/Search_and_replace_improved_dialog' of github.com:eried/Arduino into eried-feature/Search_and_replace_improved_dialog 2014-07-25 11:34:54 +02:00
Cristian Maglie
b36beeb4c0 Fixed NullPointerException with i18n.
i18n class may not be initialized during init time.
2014-07-03 13:01:18 +02:00
Cristian Maglie
2a71073c32 Re-enabled serial port detection on Windows
Fixes #1573
2014-07-02 13:20:16 +02:00
Cristian Maglie
e5f34e5a83 Merge branch 'ide-1.5.x-timer-variant' of github.com:matthijskooijman/Arduino into matthijskooijman-ide-1.5.x-timer-variant 2014-07-01 18:29:07 +02:00
Cristian Maglie
d52e75ff38 Merge branch 'osx-app-bundler' into ide-1.5.x
Conflicts:
	build/build.xml
2014-06-27 16:08:20 +02:00
Matthijs Kooijman
4eb686673f Don't include .o files from the variant in core.a
If a variant supplied source files, these would be included in core.a
before. However, object files from core.a would only actually be
included in the build if they supplied a symbol for a strong reference
that was still missing.

In practice, this meant that a variant source file that only defines
interrupt handlers, or only defines strong versions of functions that
already had weak versions available, was not included.

By moving the variant .o files out of core.a and including them in the
build directly, this problem is solved.

Furthermore, the compilation of variant files is moved to after the
generation of core.a, to make it clearer in the code and verbose output
what is now happening.
2014-06-25 16:56:17 +02:00
Matthijs Kooijman
7d71b84ae2 Unconfuse error message
When a core directory without boards.txt file was encountered, the IDE
would show:

	Could not find boards.txt in /path/to/core/boards.txt.  Is it pre-1.5?

Which appears confusing: Is it looking inside a directory called
boards.txt? Now this is improved to:

	Could not find boards.txt in /path/to/core/.  Is it pre-1.5?

which makes a lot more sense.
2014-06-25 16:56:13 +02:00
Cristian Maglie
6b5a99b7b5 Version bumped to 1.5.7. Updated revision log. 2014-06-25 11:21:15 +02:00
Federico Fissore
fdffb2de26 Setting CYGWIN=nodosfilewarning env variable on windows 2014-06-25 10:14:35 +02:00
Cristian Maglie
40270306e0 Allow variants to define an initVariant() function that is called at startup.
See #2080
2014-06-19 19:49:47 +02:00
David A. Mellis
b5fe1b1eb5 Proceed with upload even if port can't be found. (Issue #1791) 2014-06-11 12:07:46 -04:00
Cristian Maglie
ab1ee51d68 MacOSX: switched to appbundler for building distribution files (Haavar Valeur)
See #1665
2014-05-29 12:28:42 +02:00
Matthijs Kooijman
726f2ba931 Unescape special characters in dependency files
When a path contains spaces (or other special characters, probably), gcc
escapes them with a \ in the generated .d files. This previously caused
problems when parsing these files, causing recompiles to happen even
when not needed.

This applies a rather simple approach to unescaping these strings, which
seems to be sufficient because the file format of the .d files is so
predictable (e.g., we don't actually split on colons or spaces when
parsing it).
2014-05-13 16:52:14 +02:00
Erwin Ried
401f9e1634 FindReplace dialog now search and replaces in all the opened tabs. Also pre-fill the find field with selected text 2014-05-13 03:21:36 -04:00
Cristian Maglie
d025638c61 Merge pull request #1775 from ribbons/memory-usage
Improve low free memory reporting
2014-05-03 10:59:37 +02:00
Matthijs Kooijman
aa46fdb978 Change the MacOS preference suffix to .macosx
Previously, preferences suffixed with .macos were treated specially,
but the default preferences.txt used .macosx.

I couldn't find when or how this was broken exactly - it seems
Processing used .macosx but this code was reimplemented for Arduino in
commit 33f5c53 (Implemented OS specific preferences) using .macos.

The effects of this have not been tested on OSX, but this might fix some
problems caused by wrong defaults on OSX.
2014-04-14 15:35:34 +02:00
Matthijs Kooijman
d2505a08f6 Process platform-specific suffixes immediately
In preferences files, platform-specific versions can be indicated by a
.linux, .windows or .macos suffix on the key name. Previously, these
keys were loaded as normal and then afterwards, all keys were scanned
after loading them and any platform-specific versions replaced the
regular ones.

However, this means that these platform-specific versions get an
unexpected form of priority. Normally, when a single key is set twice,
the latter overrides the first. However, the platform-specific values
could override the regular versions, even when the regular version
occurs later in the file.

This problem was particularly confusing when using the new
platform.local.txt: a regular preference in platform.local.txt did not
override a platform-specific preference in platform.txt.

This commit changes behaviour to process these suffixes directly as they
are read from the preference files. If a suffix for the current platform
is found, the line is processed as if the suffix was not present. If a
suffix for another platform is found, the line is ignored altogether.

This can slightly change the way preferences files are parsed, but as
long as platform-specific preferences are defined after the
corresponding regular preferences, the behaviour should be the same.
2014-04-14 15:35:33 +02:00
Matthijs Kooijman
a89f5e68cf Explicitly define compiler.path in avr/platform.txt
Previously, this relied on an (ugly, avr-specific) magic default for the
compiler.path variable, set by the IDE. This allowed the IDE to fall
back to a system-wide toolchain when no bundled toolchain was found (by
making compiler.path empty).

However,
 - this only worked for avr, not sam,
 - this worked only for gcc, a system-wide avrdude would break on the
   avrdude.conf path in platform.txt, and

This would mean that automatic system-wide fallback didn't work in all
situations, so you'd still have to modify platform.txt (or create
platform.local.txt). Since doing that explictly is the most reliable
way, this commit removes the partial-working ability to do this
automatically.

Note that the code to automatically set compiler.path is still kept
around, in case third-party hardware still relies on this. At some
point, this code should be removed, but for now it just shows a warning
message.
2014-04-10 12:19:43 +02:00
Matthijs Kooijman
a46e503a30 Allow overriding platform.txt using platform.local.txt
This helps advanced users that want to change options (e.g. to use a
different toolchain or enable warnings), without having to change
platform.txt (which could make git report changed files all the time).
2014-04-04 10:35:32 +02:00
Cristian Maglie
567240236a Added compatibity for 1.5 libraries layout on IDE 1.0.x
See #1765
2014-03-20 14:56:46 +01:00
Cristian Maglie
c192d689bc Better checks for library metadata
See #1765
2014-03-16 12:54:04 +01:00
Cristian Maglie
738b9d8e29 Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
	.gitignore
	app/lib/commons-logging-1.0.4.jar
	build/build.xml
	build/windows/launcher/config_debug.xml
	libraries/Esplora/examples/Beginners/EsploraJoystickMouse/EsploraJoystickMouse.ino
2014-03-16 12:11:19 +01:00
Georg von Zengen
efedfa7049 cut the filename at the last '.' not at the first in tab-names of the editor 2014-02-27 14:30:19 +01:00
Georg von Zengen
3be6eb84b9 added support for '-' and '.' but both not as the first as first character 2014-02-27 14:14:36 +01:00
Federico Fissore
f3619c3123 Closes #277. Cores files intentionally left out of the commit as they require a different approach and have a different history 2014-02-21 16:21:32 +01:00
Federico Fissore
79eb32f816 Fixed NPE when RXCHAR event with no bytes. Closes #1885 2014-02-21 11:14:30 +01:00
Cristian Maglie
f91670e0d0 Fixed JSSC upload problem with Arduino Due on MacOSX
JSSC, on unix based systems like linux and MacOSX, when listing serial ports
tries to open each port to ensure its existence. While this check works well for
linux ports /dev/ttyS0..31, it leads to unexpected behaviuors on MacOSX in
particular with USB-CDC virtual serial ports.
This patch disable the check and keep it enabled only for linux ttySxx ports.

This adds also tty.* and cu.* to the list of available serial ports on MacOSX.
2014-02-20 14:48:28 +01:00
Cristian Maglie
2659b47587 Update revision log. Upped version to 1.5.6 2014-02-19 18:14:31 +01:00
Cristian Maglie
50abaaa23f Updated translations 2014-02-19 16:07:20 +01:00
Cristian Maglie
ab362fc726 Merge remote-tracking branch 'arduino/master' into ide-1.5.x 2014-02-19 10:40:44 +01:00
h2g2guy
f3944b2df0 Corrected repeated 'less' in checkName's message 2014-02-18 23:32:22 -05:00
Cristian Maglie
3a72c02480 Removed unused code, fixed indentation. 2014-02-17 14:19:40 +01:00
Cristian Maglie
57bee97d7b Local (user installed) libraries have priority over system libraries
See #1853
2014-02-17 14:19:40 +01:00
Cristian Maglie
a96c8cab12 Merge branch 'master' into ide-1.5.x 2014-02-12 17:17:33 +01:00
Cristian Maglie
2a8c06381f Added some friendly messages for Arduino Robot include errors on old sketches
After merging #1859, old sketches that uses Robot_Control library must include
Wire.h and SPI.h to work properly.
2014-02-12 15:28:53 +01:00
Cristian Maglie
a44f4bef7c Merge remote-tracking branch 'arduino/master' into ide-1.5.x
Conflicts:
	app/src/processing/app/Base.java
2014-02-11 16:44:07 +01:00
PaulStoffregen
ef4f0f3bc9 If 2 libs have same .h file, use the lib with same dir name 2014-02-10 14:18:47 -08:00
Cristian Maglie
d60f1df996 Added command line option --verbose-build and --verbose-upload 2014-02-10 12:55:16 +01:00
Cristian Maglie
a013ab2dda Added some string to translate 2014-01-23 17:24:13 +01:00