-
Notifications
You must be signed in to change notification settings - Fork 174
/
SConscript
120 lines (99 loc) · 4.54 KB
/
SConscript
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#-*- encoding: utf-8 -*-
#---------------------------------------------------------------------------------
# @File: Sconscript
# @Author: liu2guang
# @Date: 2018-09-19 18:07:00(v0.1.0)
#
# @LICENSE: GPLv3: https://github.com/rtpkgs/buildpkg/blob/master/LICENSE.
#
#---------------------------------------------------------------------------------
import os
from building import *
Import('RTT_ROOT')
Import('rtconfig')
#---------------------------------------------------------------------------------
# Package configuration
#---------------------------------------------------------------------------------
PKGNAME = "button"
VERSION = "v1.0.0"
DEPENDS = ["PKG_USING_BUTTON"]
#---------------------------------------------------------------------------------
# Compile the configuration
#---------------------------------------------------------------------------------
SOURCES = ["button.c"]
CPPPATH = []
CCFLAGS = " -std=gnu99" # no pass
ASFLAGS = ""
LOCAL_CPPPATH = [""]
LOCAL_CCFLAGS = " -std=gnu99"
LOCAL_ASFLAGS = ""
CPPDEFINES = ["CPPDEFINES"]
LOCAL_CPPDEFINES = ["LOCAL_CPPDEFINES"]
LIBS = ["libmm"] # keil libmm, gcc mm
LIBPATH = [os.path.join(GetCurrentDir(), "")]
LINKFLAGS = ""
#---------------------------------------------------------------------------------
# Feature clip configuration, optional
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
# Compiler platform configuration, optional
#---------------------------------------------------------------------------------
if rtconfig.CROSS_TOOL == "gcc":
pass
if rtconfig.CROSS_TOOL == "iar":
pass
if rtconfig.CROSS_TOOL == "keil":
pass
#---------------------------------------------------------------------------------
# Warning: internal related processing, developers do not modify!!!
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
# System variables
#---------------------------------------------------------------------------------
objs = []
root = GetCurrentDir()
#---------------------------------------------------------------------------------
# Add relative path support for CPPPATH and LOCAL_CPPPATH
#---------------------------------------------------------------------------------
for index, value in enumerate(CPPPATH):
if string.find(value, root) == False:
CPPPATH[index] = os.path.join(root, value)
for index, value in enumerate(LOCAL_CPPPATH):
if string.find(value, root) == False:
LOCAL_CPPPATH[index] = os.path.join(root, value)
if rtconfig.CROSS_TOOL == "gcc": # no test
for index, value in enumerate(LIBS):
if value.startswith("lib") == True:
print("Automatic fix the nonstandard lib name, %s -> %s" % (LIBS[index], LIBS[index].lstrip("lib")))
LIBS[index] = LIBS[index].lstrip("lib")
elif rtconfig.CROSS_TOOL == "keil":
for index, value in enumerate(LIBS):
if value.startswith("lib") == False:
print("Automatic fix the nonstandard lib name, %s -> %s" % (LIBS[index], "lib" + LIBS[index]))
LIBS[index] = "lib" + LIBS[index]
LIBPATH += [root]
#---------------------------------------------------------------------------------
# Sub target
#---------------------------------------------------------------------------------
list = os.listdir(root)
if GetDepend(DEPENDS):
for d in list:
path = os.path.join(root, d)
if os.path.isfile(os.path.join(path, 'SConscript')):
objs = objs + SConscript(os.path.join(d, 'SConscript'))
#---------------------------------------------------------------------------------
# Main target
#---------------------------------------------------------------------------------
objs = DefineGroup(name = PKGNAME, src = SOURCES, depend = DEPENDS,
CPPPATH = CPPPATH,
CCFLAGS = CCFLAGS,
ASFLAGS = ASFLAGS,
LOCAL_CPPPATH = LOCAL_CPPPATH,
LOCAL_CCFLAGS = LOCAL_CCFLAGS,
LOCAL_ASFLAGS = LOCAL_ASFLAGS,
CPPDEFINES = CPPDEFINES,
LOCAL_CPPDEFINES = LOCAL_CPPDEFINES,
LIBS = LIBS,
LIBPATH = LIBPATH,
LINKFLAGS = LINKFLAGS)
Return("objs")