0
|
1 |
# Copyright (c) 2005-2009 Nokia Corporation
|
|
2 |
#
|
|
3 |
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4 |
# you may not use this file except in compliance with the License.
|
|
5 |
# You may obtain a copy of the License at
|
|
6 |
#
|
|
7 |
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8 |
#
|
|
9 |
# Unless required by applicable law or agreed to in writing, software
|
|
10 |
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12 |
# See the License for the specific language governing permissions and
|
|
13 |
# limitations under the License.
|
|
14 |
|
|
15 |
import os.path
|
|
16 |
import sys
|
|
17 |
import re
|
|
18 |
import glob
|
|
19 |
from shellutil import *
|
|
20 |
|
|
21 |
sys.path.append(os.path.join(os.getcwd(), 'tools'))
|
|
22 |
|
|
23 |
emu_release_from = '\\epoc32\\release\\' + EMU_PLATFORM + '\\' + EMU_BUILD
|
|
24 |
emu_release_to = 'epoc32\\release\\' + EMU_PLATFORM + '\\' + EMU_BUILD
|
|
25 |
rsc_files = '\\z\\private\\10003A3F\\apps'
|
|
26 |
dev_release_from = '\\epoc32\\release\\' + DEVICE_PLATFORM + '\\'
|
|
27 |
dev_release_to = 'epoc32\\release\\' + DEVICE_PLATFORM + '\\'
|
|
28 |
pyd_mmp_files = []
|
|
29 |
SDK_FILES = []
|
|
30 |
pyd_mmp_path = ['newcore\\Symbian\\group']
|
|
31 |
if INCLUDE_INTERNAL_SRC and S60_VERSION != 30:
|
|
32 |
pyd_mmp_path.append('..\\internal-src\scriptext\\group')
|
|
33 |
|
|
34 |
skipped_mmp_files = ['python25', 'appui', 'python_ui', 'Python_launcher',
|
|
35 |
'start_exe_testapp', '_sensorfw', '_sensor']
|
|
36 |
|
|
37 |
for r, p, f in os.walk("ext\\amaretto\\"):
|
|
38 |
for dirs in p:
|
|
39 |
pathname = os.path.join(r, dirs)
|
|
40 |
if re.search("group$", pathname):
|
|
41 |
pyd_mmp_path.append(pathname)
|
|
42 |
|
|
43 |
for entry in (
|
|
44 |
{'from': emu_release_from,
|
|
45 |
'to': emu_release_to,
|
|
46 |
'files': ['python25.dll', 'python25.lib', 'testapp.exe',
|
|
47 |
PREFIX + 'Python_appui.dll', 'Python_ui.exe',
|
|
48 |
PREFIX + 'Python_launcher.exe', 'start_exe_testapp.exe']},
|
|
49 |
{'from': emu_release_from + rsc_files,
|
|
50 |
'to': emu_release_to + rsc_files,
|
|
51 |
'files': ['testapp_reg.RSC']},
|
|
52 |
{'from': dev_release_from + DEVICE_BUILD,
|
|
53 |
'to': dev_release_to + DEVICE_BUILD,
|
|
54 |
'files': ['python25.dll', 'testapp.exe', PREFIX + 'Python_launcher.exe',
|
|
55 |
'start_exe_testapp.exe', PREFIX + 'Python_appui.dll']},
|
|
56 |
{'from': dev_release_from + 'LIB',
|
|
57 |
'to': dev_release_to + 'LIB',
|
|
58 |
'files': [PREFIX + 'Python_appui.dso',
|
|
59 |
PREFIX + 'Python_appui{000a0000}.dso', 'python25.dso',
|
|
60 |
'python25{000a0000}.dso', PREFIX + 'Python_appui.lib',
|
|
61 |
PREFIX + 'Python_appui{000a0000}.lib', 'python25.lib',
|
|
62 |
'python25{000a0000}.lib']},
|
|
63 |
{'from': '\\epoc32\\release\\winscw\\udeb\\' + rsc_files,
|
|
64 |
'to': 'epoc32\\release\\winscw\\udeb\\' + rsc_files,
|
|
65 |
'files': ['testapp_reg.RSC', 'Python_ui_reg.rsc']},
|
|
66 |
{'from': '\\epoc32\\release\\winscw\\udeb\\z\\resource\\apps',
|
|
67 |
'to': 'epoc32\\release\\winscw\\udeb\\\z\\resource\\apps',
|
|
68 |
'files': ['Python_ui.rsc', PREFIX + 'appuifwmodule.rsc',
|
|
69 |
'Python_ui_aif.mif', 'Python_ui_loc.rsc']},
|
|
70 |
{'from': '\\epoc32\\data\\z\\resource\\apps',
|
|
71 |
'to': 'epoc32\\data\\z\\resource\\apps',
|
|
72 |
'files': [PREFIX + 'appuifwmodule.rsc']},
|
|
73 |
{'from': '\\epoc32\\include',
|
|
74 |
'to': 'epoc32\\include',
|
|
75 |
'files': ['Python_ui.rsg', PREFIX + 'appuifwmodule.rsg']}):
|
|
76 |
for f in entry['files']:
|
|
77 |
SDK_FILES.append((os.path.normpath(entry['from'] + '\\' + f),
|
|
78 |
os.path.normpath(entry['to'] + '\\' +
|
|
79 |
os.path.basename(f))))
|
|
80 |
|
|
81 |
for folders in pyd_mmp_path:
|
|
82 |
pyd_mmp_files += files_matching_regex(folders, '(.*\.mmp$)')
|
|
83 |
|
|
84 |
for mmp_file in pyd_mmp_files:
|
|
85 |
file_name, ext = os.path.basename(mmp_file).split('.')
|
|
86 |
pyd_file = None
|
|
87 |
if file_name == 'gps':
|
|
88 |
pyd_file = PREFIX + "_locationacq.pyd"
|
|
89 |
elif file_name not in skipped_mmp_files:
|
|
90 |
pyd_file = PREFIX + file_name + ".pyd"
|
|
91 |
if pyd_file is not None:
|
|
92 |
SDK_FILES.append(((emu_release_from + '\\' + pyd_file),
|
|
93 |
(emu_release_to + '\\' + pyd_file)))
|
|
94 |
else:
|
|
95 |
print "Skipping mmp file:", mmp_file
|
|
96 |
|
|
97 |
for header_file in files_matching_regex('\\epoc32\\include\\python25',
|
|
98 |
'.*.h'):
|
|
99 |
SDK_FILES.append((header_file, ('epoc32\\include\\python25\\' +
|
|
100 |
os.path.basename(header_file))))
|
|
101 |
|
|
102 |
for lib_file in files_matching_regex('\\epoc32\\winscw\\c\\resource\\python25',
|
|
103 |
'.*'):
|
|
104 |
temp_path, relative_lib_file = lib_file.split('resource\\python25\\')
|
|
105 |
SDK_FILES.append((lib_file, ('epoc32\\winscw\\c\\resource\\python25\\' +
|
|
106 |
relative_lib_file)))
|
|
107 |
|
|
108 |
# This loop is for copying all the files in c\\data\\python\\ folder.
|
|
109 |
for dependent_files in files_matching_regex('\\epoc32\\winscw\\c\\data\\' +
|
|
110 |
'python', '.*'):
|
|
111 |
temp_path, relative_dependent_file = dependent_files.split('data\\' +
|
|
112 |
'python\\')
|
|
113 |
SDK_FILES.append((dependent_files, ('epoc32\\winscw\\c\\data\\python\\' +
|
|
114 |
relative_dependent_file)))
|
|
115 |
|
|
116 |
# This loop is for copying all the files in c\\data\\test\\ folder. This
|
|
117 |
# folder structure is required by test_zipfile.
|
|
118 |
for dependent_files in files_matching_regex('\\epoc32\\winscw\\c\\data\\test',
|
|
119 |
'.*'):
|
|
120 |
temp_path, relative_dependent_file = dependent_files.split('data\\test\\')
|
|
121 |
SDK_FILES.append((dependent_files, ('epoc32\\winscw\\c\\data\\test\\' +
|
|
122 |
relative_dependent_file)))
|
|
123 |
if INCLUDE_ARMV5_PYDS:
|
|
124 |
binary_from = dev_release_from + DEVICE_BUILD
|
|
125 |
binary_to = dev_release_to + DEVICE_BUILD
|
|
126 |
for dependent_files in files_matching_regex(binary_from + '\\', '.*.pyd'):
|
|
127 |
temp_path, relative_dependent_file = \
|
|
128 |
dependent_files.split('armv5\\urel\\')
|
|
129 |
SDK_FILES.append((dependent_files, (binary_to + '\\' +
|
|
130 |
relative_dependent_file)))
|
|
131 |
if BUILD_PROFILE == 'release':
|
|
132 |
SDK_FILES.append(((binary_from + '\\run_testapp.exe'),
|
|
133 |
(binary_to + '\\run_testapp.exe')))
|
|
134 |
SDK_FILES.append(((binary_from + '\\interpreter-startup.exe'),
|
|
135 |
(binary_to + '\\interpreter-startup.exe')))
|
|
136 |
SDK_FILES.append(((binary_from + '\\run-interpretertimer.exe'),
|
|
137 |
(binary_to + '\\run-interpretertimer.exe')))
|
|
138 |
|
|
139 |
rsc_file_path = 'private\\10003a3f\\import\\apps\\'
|
|
140 |
|
|
141 |
SDK_FILES.append((('\\Epoc32\\Data\\z\\' + rsc_file_path +
|
|
142 |
'testapp_reg.RSC'),
|
|
143 |
('Epoc32\\Data\\z\\' + rsc_file_path +
|
|
144 |
'testapp_reg.RSC')))
|
|
145 |
SDK_FILES.append((('\\Epoc32\\Data\\z\\' + rsc_file_path +
|
|
146 |
'run_testapp_reg.rsc'),
|
|
147 |
('Epoc32\\Data\\z\\' + rsc_file_path +
|
|
148 |
'run_testapp_reg.rsc')))
|
|
149 |
SDK_FILES.append((('\\Epoc32\\Data\\z\\' + rsc_file_path +
|
|
150 |
'interpreter-startup_reg.RSC'),
|
|
151 |
('Epoc32\\Data\\z\\' + rsc_file_path +
|
|
152 |
'interpreter-startup_reg.RSC')))
|
|
153 |
SDK_FILES.append((('\\Epoc32\\Data\\z\\' + rsc_file_path +
|
|
154 |
'run-interpretertimer_reg.RSC'),
|
|
155 |
('Epoc32\\Data\\z\\' + rsc_file_path +
|
|
156 |
'run-interpretertimer_reg.RSC')))
|
|
157 |
|
|
158 |
|
|
159 |
SDK_FILES.append((('\\epoc32\\winscw\\c\\private\\' + PYS60_UID_PYTHONUI[2:] +
|
|
160 |
'\\launcher.py'),
|
|
161 |
('epoc32\\winscw\\c\\private\\' + PYS60_UID_PYTHONUI[2:] +
|
|
162 |
'\\launcher.py')))
|
|
163 |
SDK_FILES.append((('\\epoc32\\winscw\\c\\private\\' + PYS60_UID_PYTHONUI[2:] +
|
|
164 |
'\\default.py'),
|
|
165 |
('epoc32\\winscw\\c\\private\\' + PYS60_UID_PYTHONUI[2:] +
|
|
166 |
'\\default.py')))
|