Skip to content
Snippets Groups Projects
Commit 8afd94ed authored by Richard Wackerbarth's avatar Richard Wackerbarth
Browse files

Version Generator for PlatformIO Builds

parent 4c2948a8
No related branches found
No related tags found
No related merge requests found
#/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)
......@@ -18,19 +18,24 @@ src_dir = ../Marlin
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
build_flags = -D MOTHERBOARD=BOARD_PRINTRBOARD
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
......@@ -38,4 +43,5 @@ build_flags = -D MOTHERBOARD=BOARD_PRINTRBOARD
platform = teensy
framework = arduino
board = teensy20pp
build_flags = -D MOTHERBOARD=BOARD_BRAINWAVE_PRO -D AT90USBxx_TEENSYPP_ASSIGNMENTS
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment