Merge branch 'release/v2.9.1'

This commit is contained in:
Ivan Kravets
2016-04-30 18:20:45 +03:00
10 changed files with 157 additions and 50 deletions

View File

@@ -4,6 +4,12 @@ Release Notes
PlatformIO 2.0 PlatformIO 2.0
-------------- --------------
2.9.1 (2016-04-30)
~~~~~~~~~~~~~~~~~~
* Handle prototype pointers while converting ``*.ino`` to ``.cpp``
(`issue #639 <https://github.com/platformio/platformio/issues/639>`_)
2.9.0 (2016-04-28) 2.9.0 (2016-04-28)
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

View File

@@ -224,6 +224,13 @@ Arduino
- 32 Kb - 32 Kb
- 2 Kb - 2 Kb
* - ``chiwawa``
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``diecimilaatmega168`` * - ``diecimilaatmega168``
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_ - `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
- ATMEGA168 - ATMEGA168
@@ -239,28 +246,28 @@ Arduino
- 2 Kb - 2 Kb
* - ``due`` * - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_ - `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E - SAM3X8E
- 84 MHz - 84 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb
* - ``dueUSB`` * - ``dueUSB``
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_ - `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E - SAM3X8E
- 84 MHz - 84 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb
* - ``esplora`` * - ``esplora``
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_ - `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``ethernet`` * - ``ethernet``
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_ - `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -274,7 +281,14 @@ Arduino
- 2 Kb - 2 Kb
* - ``leonardo`` * - ``leonardo``
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_ - `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``leonardoeth``
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -295,28 +309,28 @@ Arduino
- 2 Kb - 2 Kb
* - ``megaADK`` * - ``megaADK``
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_ - `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
- ATMEGA2560 - ATMEGA2560
- 16 MHz - 16 MHz
- 256 Kb - 256 Kb
- 8 Kb - 8 Kb
* - ``megaatmega1280`` * - ``megaatmega1280``
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_ - `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA1280 - ATMEGA1280
- 16 MHz - 16 MHz
- 128 Kb - 128 Kb
- 8 Kb - 8 Kb
* - ``megaatmega2560`` * - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_ - `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560 - ATMEGA2560
- 16 MHz - 16 MHz
- 256 Kb - 256 Kb
- 8 Kb - 8 Kb
* - ``micro`` * - ``micro``
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_ - `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -337,14 +351,14 @@ Arduino
- 2 Kb - 2 Kb
* - ``nanoatmega168`` * - ``nanoatmega168``
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_ - `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA168 - ATMEGA168
- 16 MHz - 16 MHz
- 16 Kb - 16 Kb
- 1 Kb - 1 Kb
* - ``nanoatmega328`` * - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_ - `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -379,28 +393,35 @@ Arduino
- 2 Kb - 2 Kb
* - ``robotControl`` * - ``robotControl``
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_ - `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``robotMotor`` * - ``robotMotor``
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_ - `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``uno`` * - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_ - `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2 Kb - 2 Kb
* - ``yun`` * - ``yun``
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_ - `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``yunmini``
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -897,6 +918,26 @@ LightUp
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
Linino
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``one``
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
LowPowerLab LowPowerLab
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@@ -78,28 +78,28 @@ Arduino
- RAM - RAM
* - ``due`` * - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_ - `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E - SAM3X8E
- 84 MHz - 84 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb
* - ``megaatmega2560`` * - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_ - `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560 - ATMEGA2560
- 16 MHz - 16 MHz
- 256 Kb - 256 Kb
- 8 Kb - 8 Kb
* - ``nanoatmega328`` * - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_ - `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2 Kb - 2 Kb
* - ``uno`` * - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_ - `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb

View File

@@ -15,8 +15,8 @@
* Cross-platform build system without external dependencies to the OS software: * Cross-platform build system without external dependencies to the OS software:
- 200+ embedded boards - 250+ embedded boards
- 15+ development platforms - 20+ development platforms
- 10+ frameworks - 10+ frameworks
* C/C++ Intelligent code completion * C/C++ Intelligent code completion

View File

@@ -18,8 +18,8 @@ PlatformIO IDE is the next-generation integrated development environment for IoT
* Cross-platform build system without external dependencies to the OS software: * Cross-platform build system without external dependencies to the OS software:
- 200+ embedded boards - 250+ embedded boards
- 15+ development platforms - 20+ development platforms
- 10+ frameworks - 10+ frameworks
* C/C++ Intelligent Code Completion * C/C++ Intelligent Code Completion

View File

@@ -214,6 +214,13 @@ Arduino
- 32 Kb - 32 Kb
- 2 Kb - 2 Kb
* - ``chiwawa``
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``diecimilaatmega168`` * - ``diecimilaatmega168``
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_ - `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
- ATMEGA168 - ATMEGA168
@@ -229,14 +236,14 @@ Arduino
- 2 Kb - 2 Kb
* - ``esplora`` * - ``esplora``
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_ - `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``ethernet`` * - ``ethernet``
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_ - `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -250,7 +257,14 @@ Arduino
- 2 Kb - 2 Kb
* - ``leonardo`` * - ``leonardo``
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_ - `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``leonardoeth``
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -271,28 +285,28 @@ Arduino
- 2 Kb - 2 Kb
* - ``megaADK`` * - ``megaADK``
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_ - `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
- ATMEGA2560 - ATMEGA2560
- 16 MHz - 16 MHz
- 256 Kb - 256 Kb
- 8 Kb - 8 Kb
* - ``megaatmega1280`` * - ``megaatmega1280``
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_ - `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA1280 - ATMEGA1280
- 16 MHz - 16 MHz
- 128 Kb - 128 Kb
- 8 Kb - 8 Kb
* - ``megaatmega2560`` * - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_ - `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560 - ATMEGA2560
- 16 MHz - 16 MHz
- 256 Kb - 256 Kb
- 8 Kb - 8 Kb
* - ``micro`` * - ``micro``
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_ - `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -313,14 +327,14 @@ Arduino
- 2 Kb - 2 Kb
* - ``nanoatmega168`` * - ``nanoatmega168``
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_ - `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA168 - ATMEGA168
- 16 MHz - 16 MHz
- 16 Kb - 16 Kb
- 1 Kb - 1 Kb
* - ``nanoatmega328`` * - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_ - `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -355,28 +369,35 @@ Arduino
- 2 Kb - 2 Kb
* - ``robotControl`` * - ``robotControl``
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_ - `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``robotMotor`` * - ``robotMotor``
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_ - `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
* - ``uno`` * - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_ - `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P - ATMEGA328P
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
- 2 Kb - 2 Kb
* - ``yun`` * - ``yun``
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_ - `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``yunmini``
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
- ATMEGA32U4 - ATMEGA32U4
- 16 MHz - 16 MHz
- 32 Kb - 32 Kb
@@ -579,6 +600,26 @@ LightUp
- 32 Kb - 32 Kb
- 2.5 Kb - 2.5 Kb
Linino
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``one``
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
LowPowerLab LowPowerLab
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@@ -99,14 +99,14 @@ Arduino
- RAM - RAM
* - ``due`` * - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_ - `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E - SAM3X8E
- 84 MHz - 84 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb
* - ``dueUSB`` * - ``dueUSB``
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_ - `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E - SAM3X8E
- 84 MHz - 84 MHz
- 512 Kb - 512 Kb

View File

@@ -14,7 +14,7 @@
import sys import sys
VERSION = (2, 9, 0) VERSION = (2, 9, 1)
__version__ = ".".join([str(s) for s in VERSION]) __version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio" __title__ = "platformio"

View File

@@ -34,8 +34,8 @@ class InoToCPPConverter(object):
""", """,
re.X | re.M | re.I re.X | re.M | re.I
) )
DETECTMAIN_RE = re.compile(r"void\s+(setup|loop)\s*\(", re.M | re.I) DETECTMAIN_RE = re.compile(r"void\s+(setup|loop)\s*\(", re.M | re.I)
PROTOPTRS_TPLRE = r"\([^&\(]*&(%s)[^\)]*\)"
def __init__(self, nodes): def __init__(self, nodes):
self.nodes = nodes self.nodes = nodes
@@ -50,22 +50,37 @@ class InoToCPPConverter(object):
if (set([match.group(2).strip(), match.group(3).strip()]) & if (set([match.group(2).strip(), match.group(3).strip()]) &
reserved_keywords): reserved_keywords):
continue continue
prototypes.append((file_path, match.start(), match.group(1))) prototypes.append({"path": file_path, "match": match})
return prototypes return prototypes
@staticmethod def append_prototypes(self, file_path, contents, prototypes):
def append_prototypes(contents, prototypes):
result = [] result = []
if not prototypes: if not prototypes:
return result return result
first_pos = prototypes[0][1] prototype_names = set(
result.append(contents[:first_pos].strip()) [p['match'].group(3).strip() for p in prototypes])
result.append("%s;" % ";\n".join([p[2] for p in prototypes])) split_pos = prototypes[0]['match'].start()
for item in prototypes:
if item['path'] == file_path:
split_pos = item['match'].start()
break
match_ptrs = re.search(
self.PROTOPTRS_TPLRE % ("|".join(prototype_names)),
contents[:split_pos],
re.M
)
if match_ptrs:
split_pos = contents.rfind("\n", 0, match_ptrs.start())
result.append(contents[:split_pos].strip())
result.append("%s;" %
";\n".join([p['match'].group(1) for p in prototypes]))
result.append('#line %d "%s"' % ( result.append('#line %d "%s"' % (
contents.count("\n", 0, first_pos + len(prototypes[0][2])) + 1, contents.count("\n", 0, split_pos) + 2,
prototypes[0][0].replace("\\", "/"))) file_path.replace("\\", "/")))
result.append(contents[first_pos:].strip()) result.append(contents[split_pos:].strip())
return result return result
@@ -91,7 +106,8 @@ class InoToCPPConverter(object):
result.append('#line 1 "%s"' % file_path.replace("\\", "/")) result.append('#line 1 "%s"' % file_path.replace("\\", "/"))
if is_first and prototypes: if is_first and prototypes:
result += self.append_prototypes(contents, prototypes) result += self.append_prototypes(
file_path, contents, prototypes)
else: else:
result.append(contents) result.append(contents)
is_first = False is_first = False

View File

@@ -36,5 +36,8 @@ class Lattice_ice40Platform(BasePlatform):
} }
} }
def get_name(self):
return "Lattice iCE40"
def is_embedded(self): def is_embedded(self):
return True return True