diff options
author | Hao Chen <chenhaosjtuacm@google.com> | 2020-08-27 20:16:49 -0700 |
---|---|---|
committer | Hao Chen <chenhaosjtuacm@google.com> | 2020-09-21 14:56:10 -0700 |
commit | 195571e8483105246507a1c39b8efc7b0791ac4c (patch) | |
tree | 98ed2cd3f65c449f32f5f632cab1b0686cf4fd4f | |
parent | 81bc9bdc646feb8278dd91697b0295d10aca3e3c (diff) | |
download | device_google_trout-195571e8483105246507a1c39b8efc7b0791ac4c.tar.gz device_google_trout-195571e8483105246507a1c39b8efc7b0791ac4c.tar.bz2 device_google_trout-195571e8483105246507a1c39b8efc7b0791ac4c.zip |
Simulate repo manifest by Bitbake unpack rule
Because of b/165933540, we cannot use repo:// to fetch code
Test: build
Bug: 155491613
Change-Id: If9679784b7d725ceb51cddcb7fd279f92be40f61
3 files changed, 64 insertions, 21 deletions
diff --git a/agl_services_build/yocto-layer/meta-google/README.md b/agl_services_build/yocto-layer/meta-google/README.md index 566a845..1fdd9ca 100644 --- a/agl_services_build/yocto-layer/meta-google/README.md +++ b/agl_services_build/yocto-layer/meta-google/README.md @@ -15,16 +15,5 @@ First copy this directory to `ROOT_OF_AGL_BSP/apps/apps_proc` bitbake-layers add-layer meta-clang meta-google ``` -### Copying AGL Services Source Code - -This step should be removed in the future. For testing now, the source code of AGL services needs to be manually packed and put to `meta-google/recipes-trout/agl-services/files/google-trout-agl-services.tar.gz`. The package can be generated by - -``` -PATH_TO_ANDROID_SRCROOT/device/google/trout/agl_services_build/newrepo.sh YOUR_AGL_SRC_PATH -cd YOUR_AGL_SRC_PATH -mv repo google-trout-agl-services -tar -czf google-trout-agl-services.tar.gz google-trout-agl-services/ -``` - ### Build `bitbake google-trout-agl-services` diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/common.inc b/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/common.inc index 249e059..7c2304f 100644 --- a/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/common.inc +++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/common.inc @@ -1,12 +1,12 @@ -# TODO(chenhaosjtuacm): set it to the correct license, license file is needed -LICENSE = "CLOSED" +require sources.inc -# TODO(chenhaosjtuacm): Set to a public-available manifest repository -SRC_URI = "\ - file://google-trout-agl-services.tar.gz \ -" +S = "${WORKDIR}/${FETCH_CODE_PREFIX}" -S = "${WORKDIR}/google-trout-agl-services" +def force_create_symlink(src, dst): + src = os.path.relpath(src, os.path.dirname(dst)) + tmplink = '{}.templink'.format(dst) + os.symlink(src, tmplink) + os.rename(tmplink, dst) def trout_compile_targets(d): install_entries = d.getVar('TROUT_target_install').split() @@ -21,9 +21,7 @@ def trout_do_install(d): for entry in install_entries: if ':' in entry: src, dst = entry.split(':') - tmplink = '{}.templink'.format(dst) - os.symlink(src, tmplink) - os.rename(tmplink, dst) + force_create_symlink(src, dst) else: dst = entry os.system('install -m 0755 {} {}'.format(dst, install_dir)) @@ -32,6 +30,13 @@ OECMAKE_TARGET_COMPILE = "${@trout_compile_targets(d)}" inherit pkgconfig cmake +python do_unpack_append() { + os.chdir(d.getVar('S')) + linkfile_rules = d.getVar('SRC_SYMLINKS').split() + for src, dst in map(lambda x: x.split(':'), linkfile_rules): + force_create_symlink(src, dst) +} + python do_install() { trout_do_install(d) } diff --git a/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/sources.inc b/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/sources.inc new file mode 100644 index 0000000..99fbb35 --- /dev/null +++ b/agl_services_build/yocto-layer/meta-google/recipes-trout/agl-services/sources.inc @@ -0,0 +1,49 @@ +# TODO(chenhaosjtuacm): set it to the correct license, license file is needed +LICENSE = "CLOSED" + +# Since repo is not working correctly in our case (b/165933540), we simulate +# the behavior of device/google/trout/agl_services_build/repo_manifest.xml +# in the unpacking task. + +ANDROID_REMOTE = "git://partner-android.googlesource.com" +BORINGSSL_REMOTE = "git://boringssl.googlesource.com" +GITHUB_REMOTE = "git://github.com" + +FETCH_CODE_PREFIX = "src" + +# Pull the source from git server remote/name to path +def trout_git_uri(d, remote, name, path, revision): + return '{}/{};protocol=https;nobranch=1;' \ + 'destsuffix={}/{};rev={}'.format( + d.getVar(remote), name, + d.getVar('FETCH_CODE_PREFIX'), path, revision) + +# Non-Trout Android code revisions are matching those in Trout R QPR1 PDK +# Except hardware/interfaces (TODO: chenhaosjtuacm, 166706927) +# TODO (chenhaosjtuacm): generate SRC_URI from the manifest + +SRC_URI = "\ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'device/google/trout', 'device/google/trout', 'rvc-qpr-dev')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/fmtlib', 'third_party/fmtlib', 'aa6fa3aa882afe47f7af990b0c6d747a01cd6104')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/grpc-grpc', 'third_party/grpc-grpc', '75bfcd05212333d0f4247865e3a61eaf6092d932')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/jsoncpp', 'third_party/jsoncpp', 'ceed690fefd71a34154781da01b3bb0294a486eb')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/external/protobuf', 'third_party/protobuf', '2305946dc587fb5766d207c7e3981375b2aaf5ce')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/hardware/interfaces', 'hardware/interfaces', '1eb933123b52d6b1f69acfd87d3aeceb45f6ef1b')} \ + ${@trout_git_uri(d, 'ANDROID_REMOTE', 'platform/system/core', 'third_party/android/system_core', 'b1ee3a99d1fc3d41606555e29da484df8a66ed71')} \ + ${@trout_git_uri(d, 'BORINGSSL_REMOTE', 'boringssl', 'third_party/boringssl', '0b710a305b42b67522003a314dea3e3868485665')} \ + ${@trout_git_uri(d, 'GITHUB_REMOTE', 'c-ares/c-ares', 'third_party/cares', '3be1924221e1326df520f8498d704a5c4c8d0cce')} \ + ${@trout_git_uri(d, 'GITHUB_REMOTE', 'gflags/gflags', 'third_party/gflags', '28f50e0fed19872e0fd50dd23ce2ee8cd759338e')} \ + ${@trout_git_uri(d, 'GITHUB_REMOTE', 'madler/zlib', 'third_party/zlib', 'cacf7f1d4e3d44d871b605da3b647f07d718623f')} \ +" + +SRC_SYMLINKS = "\ + device/google/trout/agl_services_build/build.sh:build.sh \ + device/google/trout/agl_services_build/CMakeLists.txt:CMakeLists.txt \ + device/google/trout/agl_services_build/cmake:cmake \ + device/google/trout/agl_services_build/toolchain:toolchain \ + device/google/trout/hal/audiocontrol/2.0:audiocontrol \ + device/google/trout/hal/dumpstate/1.1:dumpstate_server \ + device/google/trout/hal/vehicle/2.0:vehicle_hal_server \ + device/google/trout/hal/common/agl/watchdog:watchdog_test_server \ + hardware/interfaces/automotive/vehicle/2.0/default:third_party/default_native_vehicle_hal \ +" |