summaryrefslogtreecommitdiff
path: root/libre/closure-compiler/PKGBUILD
blob: 7263abdf38471f906c5b2422d504f12a13a8fb4b (plain)
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
# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>

pkgname=closure-compiler
pkgver=20160201
pkgdesc="A JavaScript optimizing compiler."
url="https://developers.google.com/closure/compiler/"
license=('Apache')

pkgrel=1
arch=('any')
depends=('java-runtime' 'sh')
makedepends=(
  'apache-ant'
  #'java-args4j' # does not exist
  #'java-guava' # does not build
  'java-jarjar'
  'java-json'
  #'java-jsr305' # does not exist
  'junit'
  #'java-protobuf' # does not build
  #'java-mockito-core' # does not exist
  #'java-objenesis' # does not exist
  'jh'
)

source=("https://repo.parabola.nu/other/$pkgname/$pkgname-$pkgver.tar.gz" 'closure-compiler.sh')
md5sums=('77fd6837552bda9f3ce283aa631ec009'
         'd4ead4585fcc7039d3c32eb5c4491bb9')

mkdepends=(git)
mksource=("$pkgname-$pkgver::git+https://github.com/google/closure-compiler.git#tag=v${pkgver}")
mkmd5sums=('SKIP')

mksource() {
  cd "$srcdir/$pkgname-$pkgver"

  sed -i "
    /<target name=\"relversion\">/,/<\/target>/ {
      s/executable=\"git\"/executable=\"echo\"/
      /<arg/d
      /<\/exec>/i<arg value=\"v${pkgver}\" />
    }" \
    build.xml

  sed -i "s/1\.0-SNAPSHOT/v${pkgver}/g" \
    externs/pom.xml \
    pom.xml \
    pom-main.xml
}

prepare() {
  cd "$srcdir/$pkgname-$pkgver"

  ln -sf /opt/apache-ant/lib/ant.jar          lib/ant.jar
  ln -sf /opt/apache-ant/lib/ant-launcher.jar lib/ant-launcher.jar
  #ln -sf /usr/share/java/args4j.jar           lib/args4j.jar
  #ln -sf /usr/share/java/guava.jar            lib/guava.jar
  ln -sf /usr/share/java/jarjar.jar           lib/jarjar.jar
  ln -sf /usr/share/java/json.jar             lib/json.jar
  #ln -sf /usr/share/java/jsr305.jar           lib/jsr305.jar
  ln -sf /usr/share/java/junit.jar            lib/junit.jar
  #ln -sf /usr/share/java/mockito-core.jar     lib/mockito-core.jar
  #ln -sf /usr/share/java/objenesis.jar        lib/objenesis.jar
  #ln -sf /usr/share/java/protobuf.jar         lib/protobuf-java.jar
}

build() {
  cd "$srcdir/$pkgname-$pkgver"
  ant jar
}

package() {
  cd "$srcdir"
  install -Dm755 closure-compiler.sh  "$pkgdir"/usr/bin/closure-compiler

  # symlink for compatibility with Arch's [community]/closure-compiler
  ln -s closure-compiler "$pkgdir"/usr/bin/closure

  cd "$srcdir/$pkgname-$pkgver"
  (
    export DESTDIR="$pkgdir"
    jh mvn-install com.google.javascript closure-compiler-parent  v${pkgver} pom.xml
    jh mvn-install com.google.javascript closure-compiler         v${pkgver} pom-main.xml \
      build/compiler.jar closure-compiler.jar
    jh mvn-install com.google.javascript closure-compiler-externs v${pkgver} externs/pom.xml
    jh mvn-install com.google.javascript closure-compiler-rhino   v${pkgver} lib/rhino/pom.xml \
      build/lib/rhino.jar
  )
}