Browse Source

Merge Support PlatformIO (PR#34)

**** NOTE ****
This code is very EXPERIMENTAL and UNSUPPORTED
pull/1/head
Richard Wackerbarth 9 years ago
parent
commit
4a72d2ba9c
  1. 2
      PlatformIOAddons/.gitignore
  2. 9
      PlatformIOAddons/Readme.md
  3. 57
      PlatformIOAddons/generate_version_header_for_marlin
  4. 47
      PlatformIOAddons/platformio.ini

2
PlatformIOAddons/.gitignore

@ -0,0 +1,2 @@
.pioenvs
*.dblite

9
PlatformIOAddons/Readme.md

@ -0,0 +1,9 @@
This folder contains the project file to build and install Marlin firmware using the PlatformIO development environment.
1) Install platformio (See http://platformio.org/)
....
x) From this directory
platformio run

57
PlatformIOAddons/generate_version_header_for_marlin

@ -0,0 +1,57 @@
#/usr/bin/env python -
from SCons.Script import DefaultEnvironment
env = DefaultEnvironment()
import os
import errno
def make_sure_path_exists(path):
try:
os.makedirs(path)
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
import subprocess
make_sure_path_exists(env.subst('$BUILDSRC_DIR'))
from datetime import datetime
import time
import string
import re
p = subprocess.Popen(['git', 'symbolic-ref', '-q', '--short', 'HEAD'], stdout=subprocess.PIPE)
BRANCH = p.stdout.readline().rstrip()
p = subprocess.Popen(['git', 'describe', '--tags', '--first-parent'], stdout=subprocess.PIPE)
RAW_VERSION = p.stdout.readline().rstrip()
s = re.search('(.*)(-.*)(-.*)',RAW_VERSION)
SHORT_VERSION = s.group(1)+' '+BRANCH
DETAILED_VERSION = string.replace(RAW_VERSION,'-',' '+BRANCH+'-',1)
p = subprocess.Popen(['git', 'config', '--local', '--get', 'remote.origin.url'], stdout=subprocess.PIPE)
try:
s = re.search('(.*github.com:)(.*)', p.stdout.readline().rstrip())
URL = string.replace("https://github.com/"+s.group(2), ".git", "/")
url_text = """#define SOURCE_CODE_URL "%s"
// Deprecated URL definition
#define FIRMWARE_URL "%s"
""" % (URL, URL)
except Exception, e:
url_text = ""
version_header_text = """/* This file is automatically generated by a compile time hook
* Do not manually edit it
* It does not get committed to the repository
*/
#define BUILD_UNIX_DATETIME %s
#define STRING_DISTRIBUTION_DATE "%s"
#define SHORT_BUILD_VERSION "%s"
#define DETAILED_BUILD_VERSION "%s"
%s""" % (int(time.time()), datetime.now().strftime('%Y-%m-%d %H:%M'),SHORT_VERSION, DETAILED_VERSION, url_text)
open(env.subst('$BUILDSRC_DIR/_Version.h'), 'w').write(version_header_text)

47
PlatformIOAddons/platformio.ini

@ -0,0 +1,47 @@
#
# Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
# Automatic targets - enable auto-uploading
# targets = upload
[platformio]
src_dir = ../Marlin
[env:mega2560]
platform = atmelavr
framework = arduino
board = megaatmega2560
extra_script = ./generate_version_header_for_marlin
build_flags = -D USE_AUTOMATIC_VERSIONING -I $BUILDSRC_DIR
board_f_cpu = 16000000L
[env:mega1280]
platform = atmelavr
framework = arduino
board = megaatmega1280
extra_script = ./generate_version_header_for_marlin
build_flags = -D USE_AUTOMATIC_VERSIONING -I $BUILDSRC_DIR
board_f_cpu = 16000000L
[env:printrboard]
platform = teensy
framework = arduino
board = teensy20pp
extra_script = ./generate_version_header_for_marlin
build_flags = -D USE_AUTOMATIC_VERSIONING -I $BUILDSRC_DIR -D MOTHERBOARD=BOARD_PRINTRBOARD
# Bug in arduino framework does not allow boards running at 20Mhz
#board_f_cpu = 20000000L
[env:brainwavepro]
platform = teensy
framework = arduino
board = teensy20pp
extra_script = ./generate_version_header_for_marlin
build_flags = -D USE_AUTOMATIC_VERSIONING -I $BUILDSRC_DIR -D MOTHERBOARD=BOARD_BRAINWAVE_PRO -D AT90USBxx_TEENSYPP_ASSIGNMENTS
Loading…
Cancel
Save