1# TODO(chenhaosjtuacm): set it to the correct license, license file is needed
2LICENSE = "CLOSED"
3
4# Since repo is not working correctly in our case (b/165933540), we simulate
5# the behavior of device/google/trout/agl_services_build/repo_manifest.xml
6# in the unpacking task.
7
8ANDROID_REMOTE = "git://partner-android.googlesource.com"
9BORINGSSL_REMOTE = "git://boringssl.googlesource.com"
10GITHUB_REMOTE = "git://github.com"
11
12DEFAULT_REVISION = "s-v2-fs-release"
13
14FETCH_CODE_PREFIX = "src"
15
16S = "${WORKDIR}/${FETCH_CODE_PREFIX}"
17
18# Pull the source from git server remote/name to path
19def trout_git_uri(d, remote, name, path, revision_override = ""):
20    revision = revision_override if revision_override else d.getVar('DEFAULT_REVISION')
21
22    return '{}/{};protocol=https;nobranch=1;' \
23           'destsuffix={}/{};rev={}'.format(
24               d.getVar(remote), name,
25               d.getVar('FETCH_CODE_PREFIX'), path, revision)
26
27# TODO (chenhaosjtuacm): generate SRC_URI from the manifest
28
29SRC_URI = "\
30    file://${FETCH_CODE_PREFIX}/device/google/trout \
31    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/fmtlib', 'third_party/fmtlib')} \
32    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/grpc-grpc', 'third_party/grpc-grpc')} \
33    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/jsoncpp', 'third_party/jsoncpp')} \
34    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/protobuf', 'third_party/protobuf')} \
35    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/hardware/interfaces', 'hardware/interfaces')} \
36    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/system/core', 'third_party/android/system_core')} \
37    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/system/libbase', 'third_party/android/libbase')} \
38    ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/system/logging', 'third_party/android/logging')} \
39    ${@trout_git_uri(d, 'BORINGSSL_REMOTE', 'boringssl', 'third_party/boringssl', '0b710a305b42b67522003a314dea3e3868485665')} \
40    ${@trout_git_uri(d, 'GITHUB_REMOTE', 'c-ares/c-ares', 'third_party/cares', '3be1924221e1326df520f8498d704a5c4c8d0cce')} \
41    ${@trout_git_uri(d, 'GITHUB_REMOTE', 'gflags/gflags', 'third_party/gflags', '28f50e0fed19872e0fd50dd23ce2ee8cd759338e')} \
42    ${@trout_git_uri(d, 'GITHUB_REMOTE', 'madler/zlib', 'third_party/zlib', 'cacf7f1d4e3d44d871b605da3b647f07d718623f')} \
43    ${@trout_git_uri(d, 'GITHUB_REMOTE', 'google/googletest', 'third_party/googletest', '1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7')} \
44"
45
46SRC_SYMLINKS = "\
47   device/google/trout/agl_services_build/build.sh:build.sh \
48   device/google/trout/agl_services_build/CMakeLists.txt:CMakeLists.txt \
49   device/google/trout/agl_services_build/cmake:cmake \
50   device/google/trout/agl_services_build/toolchain:toolchain \
51   device/google/trout/hal/audiocontrol:audiocontrol \
52   device/google/trout/hal/dumpstate/1.1:dumpstate_server \
53   device/google/trout/hal/vehicle/2.0:vehicle_hal_server \
54   device/google/trout/hal/common/agl/watchdog:watchdog_test_server \
55   hardware/interfaces/automotive/vehicle/2.0/default:third_party/default_native_vehicle_hal \
56"
57
58def force_create_symlink(src, dst):
59    src = os.path.relpath(src, os.path.dirname(dst))
60    tmplink = '{}.templink'.format(dst)
61    os.symlink(src, tmplink)
62    os.rename(tmplink, dst)
63
64python do_unpack_append() {
65    os.chdir(d.getVar('S'))
66    linkfile_rules = d.getVar('SRC_SYMLINKS').split()
67    for src, dst in map(lambda x: x.split(':'), linkfile_rules):
68        force_create_symlink(src, dst)
69}
70