build 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/bash
  2. [% c("var/set_default_env") -%]
  3. [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
  4. distdir=/var/tmp/dist
  5. builddir=/var/tmp/build/[% project %]
  6. mkdir $distdir/[% project %]
  7. mkdir /var/tmp/build
  8. [% IF !c("var/fetch_gradle_dependencies") %]
  9. [% pc('python', 'var/setup', { python_tarfile => c('input_files_by_name/python') }) %]
  10. # XXX: Make this more generic and not only for geckoview-beta.
  11. geckoview_version=$(find . -type f -name geckoview-beta-*.aar | cut -d \- -f 6 | cut -d \. -f 1-3)
  12. gradle_repo=$rootdir/[% c('input_files_by_name/gradle-dependencies') %]
  13. cp -r $gradle_repo/dl/android/maven2/* $gradle_repo
  14. cp -r $gradle_repo/maven2/* $gradle_repo
  15. cp -r $gradle_repo/m2/* $gradle_repo
  16. tar -C $distdir -xf [% c('input_files_by_name/application-services') %]
  17. # XXX: We could be smarter and just copy over the projects that are needed
  18. # according to the Gradle dependencies list.
  19. cp -rf $distdir/application-services/maven/org $gradle_repo
  20. tar -C $distdir -xf [% c('input_files_by_name/geckoview') %]
  21. [% END %]
  22. tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz
  23. cd $builddir-[% c('version') %]
  24. patch -p1 < $rootdir/git.patch
  25. [% IF c("var/fetch_gradle_dependencies") %]
  26. # XXX: fetching deps for `assembleGeckoBeta -x lint` by using that same target
  27. # results in some missing dependencies for yet unknown reasons. Thus, we use
  28. # `assemble` instead for now.
  29. gradle --debug -no-daemon assemble
  30. [% ELSE %]
  31. # Prepare Glean dependencies for offline build
  32. tar -xjf $rootdir/glean-parser-[% c('var/glean_parser') %].tar.bz2
  33. # We need to set `LC_ALL` and `LANG` to something that is not ASCII as encoding
  34. # otherwise `click` barfs. See: https://click.palletsprojects.com/python3/
  35. export LC_ALL=C.UTF-8
  36. export LANG=C.UTF-8
  37. patch -p1 < $rootdir/mavenLocal.patch
  38. # Make sure our GeckoView dependency is used. XXX: Make this more generic and
  39. # not only for geckoview-beta.
  40. cp -f $distdir/geckoview/*.aar $gradle_repo/org/mozilla/geckoview/geckoview-beta/$geckoview_version/geckoview-beta-$geckoview_version.aar
  41. gradle_args="--offline --no-daemon -Dmaven.repo.local=$gradle_repo"
  42. gradle $gradle_args assembleGeckoBeta -x lint
  43. gradle $gradle_args publish
  44. find components -regex '.*[0-9].\(aar\|pom\)' -exec cp --parents {} $distdir \;
  45. # Package
  46. cd $distdir
  47. find components -type d -name maven -exec cp -rf {} [% project %] \;
  48. [% c('tar', {
  49. tar_src => [ project ],
  50. tar_args => '-czf ' _ dest_dir _ '/' _ c('filename'),
  51. }) %]
  52. [% END %]