summaryrefslogtreecommitdiff
path: root/pcr/arduino/PKGBUILD
blob: 33393e990e9c73699a7aafa7fb24dea26888fb40 (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
# Maintainer (Arch): NicoHood <aur {at} nicohood {dot} de>
# Contributor (Arch): Christopher Loen <christopherloen at gmail dot com>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
# Contributor: Luke Shumaker <lukeshu@parabola.nu>

pkgname=arduino
pkgver=1.6.8
pkgrel=1.parabola1
epoch=1
pkgdesc="Arduino prototyping platform SDK"
arch=('i686' 'x86_64')
url="https://github.com/arduino/Arduino"
license=('GPL' 'LGPL')
depends=('gtk2' 'desktop-file-utils' 'shared-mime-info' 'java-runtime=8' 'arduino-builder'
         'bcpg' 'bcprov' 'java-batik' 'java-commons-codec' 'java-commons-compress' 'java-commons-exec'
         'java-commons-lang3' 'java-commons-logging' 'java-commons-net' 'java-jackson-annotations'
         'java-jackson-core' 'java-jackson-databind' 'java-jackson-module-mrbean' 'java-jsch'
         'java-rsyntaxtextarea' 'java-semver' 'jmdns' 'jssc' 'astyle=3.0.1')
makedepends=('java-environment=8' 'apache-ant' 'unzip')
optdepends=('arduino-docs: Offline documentation for arduino'
            'arduino-avr-core: AVR core with upstream avr-gcc and avrdude'
            'python2: Intel Galileo Board installation')
options=(!strip)
install="arduino.install"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/arduino/Arduino/archive/${pkgver}.tar.gz"
        'http://downloads.arduino.cc/packages/package_index.json.gz'
        'http://downloads.arduino.cc/libraries/library_index.json.gz'
        'arduino-build.patch'
        'arduino-macosx.patch'
        'arduino-use-system-astyle.patch'
        'arduino.sh')
sha256sums=('5b2e8b3115000986f12ebdc126162d22c2dc85b3ca9732b8f8966e6dcdf2edad'
            'e21d1946346893fa0f40e12bd16027d84173c5edec0b9856be38555b97706f8a'
            'f984d81816751d6872566890611c863ddc3d13f9bfe1b6242aeefe4fa4070d08'
            'e15fe37f6b575c65d2546afb96f215112295f99856ca2bee91a2ca9963c37f8e'
            '2ef32c994f44e6667136c02ecddaf86e9dd9009fd89b8d697257c0121d5f41cd'
            'a5bfb3ba51f8ff30eb121e6d4fa6292db2a3f8aa5ca8c33b8b57a451d4c8f4f9'
            '6a0a2f12440f90df39ae244dd74baf40f30e3f06c0e5eca33e16d6d54324e0bf')

prepare() {
  cd "${srcdir}/Arduino-${pkgver}"
  rm -v $(find . -name \*.exe)
  rm -v $(find . -name \*.hex)
  rm -v $(find . -name \*.jar)
  #rm -v $(find . -name \*.so)
  #rm -v $(find . -name \*.swp)
  #rm -f build/linux/dist/tools/avrdude*
  rm -rfv hardware/arduino/avr/firmwares/wifishield

  rm -rfv $(find . -type d -name 'macosx')
  rm -rfv $(find . -type d -name 'windows')

  cp -v ../{library_index,package_index}.json .

  # Patch arduino build process.
  #patch -Np1 -i ../arduino-avrtools.patch"
  patch -Np1 -i ../arduino-build.patch
  patch -Np1 -i ../arduino-macosx.patch
  patch -Np1 -i ../arduino-use-system-astyle.patch

  cd "${srcdir}/Arduino-${pkgver}/arduino-core/lib"
  _link_jars

  cd "${srcdir}/Arduino-${pkgver}/app/lib"
  _link_jars
}

_link_jars() {
  for jar in rxtx/RXTXcomm.jar antlr2.jar ecj.jar jna.jar batik-transcoder.jar bcpg.jar bcprov.jar commons-codec.jar commons-compress.jar commons-exec.jar commons-lang3.jar commons-logging.jar commons-net.jar jackson-annotations.jar jackson-core.jar jackson-databind.jar jackson-module-mrbean.jar java-semver.jar jmdns.jar jsch.jar jssc.jar rsyntaxtextarea.jar; do
    ln -sf /usr/share/java/$jar .
  done
}

build() {
  cd "Arduino-${pkgver}/build"

  # Compile with java8
  export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH

  # Do not include their avr-core + tools and no docs. We build them seperately
  ant linux-clean dist -Dversion=${pkgver} build -Dlight_bundle=true \
                                                 -Dno_docs=true \
                                                 -Dlocal_sources=true \
                                                 -Dno_arduino_builder=true
}

package() {
  cd "$srcdir/Arduino-$pkgver/build/linux/work"

  # Create directories
  install -dm755 "${pkgdir}/usr/share/"{doc,icons/hicolor,applications,mime/packages}

  # copy the whole SDK
  cp -a . "${pkgdir}/usr/share/arduino"

  # Create wrapper for java8 + buider and documentation symlink
  install -Dm755 "${srcdir}/arduino.sh" "${pkgdir}/usr/bin/arduino"

  # Arduino-builder
  ln -s /usr/bin/arduino-builder "${pkgdir}/usr/share/arduino/arduino-builder"
  install -dm755 "${pkgdir}/usr/share/arduino/tools-builder"

  rm -r "${pkgdir}/usr/share/arduino/reference"
  ln -s /usr/share/doc/arduino "${pkgdir}/usr/share/arduino/reference"

  # Install desktop icons (keep a symlink for the arduino binary)
  cp -a lib/icons/* "${pkgdir}/usr/share/icons/hicolor"
  rm -rf "${pkgdir}/usr/share/arduino/lib/icons"
  ln -s /usr/share/icons/hicolor "${pkgdir}/usr/share/arduino/lib/icons"

  # Create desktop file using existing template
  sed "s,<BINARY_LOCATION>,arduino %U,g;s,<ICON_NAME>,arduino,g" "lib/desktop.template" \
  > "${pkgdir}/usr/share/applications/arduino.desktop"

  # Install Arduino mime type
  ln -s /usr/share/arduino/lib/arduino-arduinoide.xml "${pkgdir}/usr/share/mime/packages/arduino.xml"
}