Repository navigation
Expand file tree
/
Copy pathSConstruct
More file actions
52 lines (40 loc) · 1.47 KB
/
Copy pathSConstruct
File metadata and controls
52 lines (40 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import distutils.sysconfig
import re
import sys
from importlib import import_module
from path_helpers import path
import arduino_scons.auto_config
from arduino_scons.git_util import GitUtil
project_name = [d for d in path('.').dirs()
if d.joinpath('Arduino').isdir()
and d.name not in ('build', )][0].name
rpc_module = import_module(project_name)
def get_version_string():
version = GitUtil(None).describe()
branch = GitUtil(None).branch()
if branch == "master":
tags = ""
else:
tags = "-" + branch
m = re.search('^v(?P<major>\d+)\.(?P<minor>\d+)(-(?P<micro>\d+))?', version)
if m.group('micro'):
micro = m.group('micro')
else:
micro = '0'
return "%s.%s.%s%s" % (m.group('major'), m.group('minor'), micro, tags)
PYTHON_VERSION = "%s.%s" % (sys.version_info[0],
sys.version_info[1])
env = Environment()
SOFTWARE_VERSION = get_version_string()
Export('SOFTWARE_VERSION')
Import('PYTHON_LIB')
# # Build Arduino binaries #
sketch_build_root = path('build/arduino').abspath()
Export('sketch_build_root')
SConscript(rpc_module.get_sketch_directory().joinpath('SConscript'))
Import('arduino_hex')
Import('build_context')
# # Install compiled firmwares to `firmware` directory #
firmware_path = rpc_module.package_path().joinpath('firmware',
build_context.ARDUINO_BOARD)
package_hex = env.Install(firmware_path, arduino_hex)