summaryrefslogtreecommitdiff
path: root/libre/junit/PKGBUILD
blob: 256fe6b410b724f6a7e10cbb8fe4d99355d1a949 (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Maintainer (arch): Guillaume ALAUX <Guillaume at Arch Linux dot org>
# Rationale: Arch version isn't built from source.
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>

pkgname=junit
_pkgname=junit5
pkgver=5.9.1
pkgrel=1.parabola1
pkgdesc='Simple JVM framework to write repeatable tests'
arch=('any')
url='http://www.junit.org/'
license=('Apache' 'EPL')
depends=('java-runtime' 'java-hamcrest')
makedepends=('apache-ant' 'apiguardian' 'jh' 'opentest4j')
source=("https://github.com/junit-team/${_pkgname}/archive/r${pkgver}.tar.gz")
sha512sums=('f70660723bf726505270b065943637cc2e6c8416cadd1f0627da2e7010dd5f3e5ebf3de8db0aa7e9a472ca3bb1937e2afec92f63b7027420c788a30861aafe9e')

_artifacts=(junit-platform-commons
            junit-platform-suite-api
            junit-platform-engine
            junit-jupiter-api
            junit-jupiter-engine                # depends on junit-jupiter-api
            # junit-platform-launcher           # depends on junit-platform-engine and org.opentest4j.reporting.events.api
            # junit-platform-reporting          # depends on junit-platform-engine and junit-platform-launcher
            # junit-platform-console            # depends on junit-platform-engine and picocli.CommandLine
            # junit-platform-jfr                # depends on junit-platform-engine and junit-platform-launcher
            # junit-platform-runner             # depends on junit-platform-engine and junit-platform-suite-commons
            # junit-platform-suite-commons      # depends on junit-platform-suite-engine and junit-platform-launcher
            # junit-jupiter-params              # depends on junit-jupiter-api and com.univocity.parsers.csv
            # junit-platform-suite-engine       # depends on junit-platform-engine and org.junit.platform.suite.commons
            # junit-platform-testkit            # depends on junit-platform-engine and org.assertj.core.api
            # junit-jupiter-migrationsupport    # depends on junit-jupiter-api and org.junit.Ignore
            # junit-vintage-engine              # depends on junit-platform-runner
            # junit-bom                         # no src/main/java
            # junit-jupiter                     # no src/main/java
            # junit-platform-console-standalone # no src/main/java
            # junit-platform-suite              # no src/main/java
           )

_artifact_package_name() {
    artifact="$1"
    # remove "^junit-"
    artifact="$(echo ${artifact} | sed 's#^junit-##')"
    left="$(echo ${artifact} | sed 's#-.*##')"
    right="$(echo ${artifact} | sed 's#.*-##')"
    echo "org.${pkgname}.${left}.${right}"
}

prepare() {
  cd "${srcdir}/${_pkgname}-r${pkgver}"

  mkdir -p "${srcdir}/dist"
  for artifact in ${_artifacts[@]}; do
    mkdir -p "build/${artifact}/classes"
    mkdir -p "source/${artifact}/"
  done
}

build() {
    CLASSPATH=""

    cd "${srcdir}/${_pkgname}-r${pkgver}"

    CLASSPATH="${CLASSPATH}:/usr/share/java/apiguardian.jar"
    CLASSPATH="${CLASSPATH}:/usr/share/java/opentest4j.jar"

    for artifact in ${_artifacts[@]}; do
        echo "==> Building ${artifact}"
        javac \
            -classpath "${CLASSPATH}" \
            -d "build/${artifact}/classes" \
            -encoding UTF-8 \
            $(find "${artifact}/src/main/java" -name \*.java)

        jar -cvf \
            "${srcdir}/dist/${pkgname}.${artifact}.jar" \
            -C "build/${artifact}/classes" .

        # junit-platform-suite-api fails with:
        # Loading source files for package org.junit.platform.api...
        # javadoc: error - No source files for package org.junit.platform.api
        # javadoc \
        #     -classpath "${CLASSPATH}" \
        #     -d "build/javadoc" \
        #     -encoding UTF-8 \
        #     -sourcepath "${artifact}/src/main/java" \
        #     "$(_artifact_package_name ${artifact})"

        export CLASSPATH="${CLASSPATH}:${srcdir}/dist/${pkgname}.${artifact}.jar"
    done
}

package() {
    cd "${srcdir}/${_pkgname}-r${pkgver}"

    # Install license files
    install -Dm644 \
            LICENSE.md \
            LICENSE-notice.md \
            -t "${pkgdir}/usr/share/licenses/${pkgname}/"

    install -Dm644 \
            junit-jupiter-params/LICENSE-univocity-parsers.md \
            -t "${pkgdir}/usr/share/licenses/${pkgname}/junit-jupiter-params/"

    install -Dm644 \
            junit-platform-console/LICENSE-picocli.md \
            -t "${pkgdir}/usr/share/licenses/${pkgname}/junit-platform-console/"

    # Install documentation
    # install -d "${pkgdir}/usr/share/doc/${pkgname}"
    # cp -r "${pkgname}${pkgver}/javadoc" "${pkgdir}/usr/share/doc/${pkgname}"

    export DESTDIR="$pkgdir"
    jh mvn-install ${pkgname} ${pkgname} ${pkgver} \
       pom.xml \
       "${pkgname}${pkgver}/${pkgname}-${pkgver}.jar" \
       "${pkgname}.jar"

    ln -s "/usr/share/java/${pkgname}.jar" \
       "${pkgdir}/usr/share/java/${pkgname}-${pkgver}.jar"
}