-
Notifications
You must be signed in to change notification settings - Fork 25
/
customize.py
126 lines (92 loc) · 3.14 KB
/
customize.py
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
121
122
123
124
125
126
#
# Collective Knowledge (individual environment - setup)
#
# See CK LICENSE.txt for licensing details
# See CK COPYRIGHT.txt for copyright details
#
# Developer: Grigori Fursin, Grigori.Fursin@cTuning.org, http://fursin.net
#
##############################################################################
# get version from path
import os
def version_cmd(i):
ck=i['ck_kernel']
full_path=i['full_path']
fn=os.path.basename(full_path)
rfp=os.path.realpath(full_path)
rfn=os.path.basename(rfp)
ver=''
if rfn.startswith(fn):
ver=rfn[len(fn)+1:]
if ver!='':
ver='api-'+ver
return {'return':0, 'cmd':'', 'version':ver}
##############################################################################
# setup environment setup
def setup(i):
"""
Input: {
cfg - meta of this soft entry
self_cfg - meta of module soft
ck_kernel - import CK kernel module (to reuse functions)
host_os_uoa - host OS UOA
host_os_uid - host OS UID
host_os_dict - host OS meta
target_os_uoa - target OS UOA
target_os_uid - target OS UID
target_os_dict - target OS meta
target_device_id - target device ID (if via ADB)
tags - list of tags used to search this entry
env - updated environment vars from meta
customize - updated customize vars from meta
deps - resolved dependencies for this soft
interactive - if 'yes', can ask questions, otherwise quiet
}
Output: {
return - return code = 0, if successful
> 0, if error
(error) - error text if return > 0
bat - prepared string for bat file
}
"""
import os
# Get variables
ck=i['ck_kernel']
s=''
iv=i.get('interactive','')
env=i.get('env',{})
cfg=i.get('cfg',{})
deps=i.get('deps',{})
tags=i.get('tags',[])
cus=i.get('customize',{})
target_d=i.get('target_os_dict',{})
win=target_d.get('windows_base','')
remote=target_d.get('remote','')
mingw=target_d.get('mingw','')
tbits=target_d.get('bits','')
envp=cus.get('env_prefix','')
pi=cus.get('path_install','')
host_d=i.get('host_os_dict',{})
sdirs=host_d.get('dir_sep','')
fp=cus['full_path']
p1=os.path.dirname(fp)
pi=os.path.dirname(p1)
cus['path_lib']=p1
ep=cus['env_prefix']
env[ep]=pi
################################################################
if win=='yes':
if remote=='yes' or mingw=='yes':
sext='.a'
dext='.so'
else:
sext='.lib'
dext='.dll'
else:
sext='.a'
dext='.so'
r = ck.access({'action': 'lib_path_export_script', 'module_uoa': 'os', 'host_os_dict': host_d,
'lib_path': cus.get('path_lib', '')})
if r['return']>0: return r
s += r['script']
return {'return':0, 'bat':s}