summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJabez Tho2020-05-30 14:19:47 +0800
committerJabez Tho2020-05-30 14:19:47 +0800
commit253ec006a03915699a70ab66fcb9dee44f6cfa4a (patch)
tree678ce87c37b5ea7c9293948e4ffc99ae265f4818
downloadaur-253ec006a03915699a70ab66fcb9dee44f6cfa4a.tar.gz
modified ubuntu installer, ncurses5-compat-lib as workaround for clangd
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD89
-rw-r--r--mbed-studio-bin.install20
-rw-r--r--mbed-studio-bin.sh10
4 files changed, 140 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..03d18da9bdc1
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = mbed-studio-bin
+ pkgdesc = free IDE and toolchain for Mbed OS 5 application and library development
+ pkgver = 0.9.1
+ pkgrel = 1
+ url = https://os.mbed.com/studio/
+ arch = x86_64
+ license = COMMERCIAL
+ depends = ncurses5-compat-libs
+ provides = mbed-studio
+ options = !strip
+ source = https://studio.mbed.com/installers/release-0.9.1/0.9.1.a7d67582/linux/MbedStudio.tar.gz
+ source = https://studio.mbed.com/tools/linux/clangd-ubuntu-18/clangd-8.0.1.zip
+ source = mbed-studio-bin.sh
+ source = mbed-studio-bin.install
+ md5sums = c9acf7d6ea77e191c7497d8ed4221873
+ md5sums = fdb5e9446da4a0b4b0794172d8891824
+ md5sums = ba5f16b0d7eeef5b124cd68078a38672
+ md5sums = 7cf4ae1f6777f0c610125a59b0fefca6
+
+pkgname = mbed-studio-bin
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..519940d27544
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,89 @@
+# Maintainer: pragerabez
+
+pkgname=mbed-studio-bin
+_archivename=MbedStudio
+_binname=${pkgname%%-bin}
+DOMAIN="https://studio.mbed.com"
+ARCHIVE_PATH="/installers/release-0.9.1/0.9.1.a7d67582/linux/MbedStudio.tar.gz"
+CLANGD_FILENAME="clangd-8.0.1.zip"
+INTERNAL_CLANG_VER="8"
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="free IDE and toolchain for Mbed OS 5 application and library development, run as root for armc6 compiler"
+arch=('x86_64')
+url="https://os.mbed.com/studio/"
+license=('COMMERCIAL')
+depends=('ncurses5-compat-libs')
+provides=('mbed-studio')
+options=(!strip)
+source=("$DOMAIN$ARCHIVE_PATH"
+"$DOMAIN/tools/linux/clangd-ubuntu-18/$CLANGD_FILENAME"
+"$pkgname.sh"
+"$pkgname.install")
+
+package() {
+ cd "$srcdir"
+ msg2 "Extracting..."
+
+ INSTALL_PATH="$pkgdir/usr/share/$pkgname"
+ TOOLS_PATH="$INSTALL_PATH/mbed-studio-tools"
+ LAUNCHER_PATH="$pkgdir/usr/share/applications"
+ ICON_PATH_PREFIX="$pkgdir/usr/share/icons/hicolor"
+ BIN_PATH="$INSTALL_PATH/bin"
+ #EXEC_PATH contain a modified bash file checks if mbed-studio-tools exist in user .config before running mbed-studio else symlink
+ EXEC_PATH="$pkgdir/usr/bin/$pkgname"
+
+ # move the tools where needed
+ mkdir -p "$INSTALL_PATH"
+ cp -r "$_archivename/$_binname-tools" "$INSTALL_PATH"
+
+ # move clangd as needed
+ mkdir -p "$TOOLS_PATH/clangd"
+ cp "clang-$INTERNAL_CLANG_VER" "$TOOLS_PATH/clangd"
+ cp "clangd" "$TOOLS_PATH/clangd"
+ cp "generate_compile_commands.py" "$TOOLS_PATH/clangd"
+
+ # copy tools.json where needed
+ install -D "$_archivename/tools.json" "$TOOLS_PATH/tools.json"
+
+ # move the application where needed
+ install -D "$_archivename/$_binname" "$INSTALL_PATH/$_binname"
+
+ # move bash runfile (custom) where needed
+ install -D "$pkgname.sh" "$pkgdir/usr/bin/$pkgname"
+
+ # add icons
+ ICO_SIZES=(16 24 32 48 64 96 128 256 512 1024)
+ for SIZE in "${ICO_SIZES[@]}"
+ do
+ ICON_PATH="$ICON_PATH_PREFIX/${SIZE}x${SIZE}/apps"
+ mkdir -p "$ICON_PATH"
+ FILENAME1="icons/icon_${SIZE}x${SIZE}.png"
+ if [ -f $_archivename/$FILENAME1 ]; then
+ install -D "$_archivename/$FILENAME1" "$ICON_PATH/$_binname.png"
+ else
+ FILENAME2="icons/icon_${SIZE}.png"
+ if [ -f $_archivename/$FILENAME2 ]; then
+ install -D "$_archivename/$FILENAME2" "$ICON_PATH/$_binname.png"
+ fi
+ fi
+ done
+
+ # create a launcher
+ ICON_PATH_PREFIX="/usr/share/icons/hicolor"
+ ICON_PATH="$ICON_PATH_PREFIX/256x256/apps/$_binname.png"
+ install -d "$LAUNCHER_PATH"
+ sed -e "s,\\\$bin_path\\\$,/usr/bin/$pkgname,g" -e "s,\\\$icon_path\\\$,${ICON_PATH},g" $_archivename/$_binname.desktop.template > "$LAUNCHER_PATH/$_binname.desktop"
+
+ # udev rules (https://github.com/mbedmicro/pyOCD/tree/master/udev)
+ # copy udev rules
+ mkdir -p "$pkgdir/etc/udev/rules.d/"
+ cp $_archivename/pyocd-udev-rules/*.rules "$pkgdir/etc/udev/rules.d/"
+ chmod +x "$INSTALL_PATH/$_binname"
+ chmod +x "$EXEC_PATH"
+}
+
+md5sums=('c9acf7d6ea77e191c7497d8ed4221873'
+ 'fdb5e9446da4a0b4b0794172d8891824'
+ 'ba5f16b0d7eeef5b124cd68078a38672'
+ '7cf4ae1f6777f0c610125a59b0fefca6')
diff --git a/mbed-studio-bin.install b/mbed-studio-bin.install
new file mode 100644
index 000000000000..53c6ef75848e
--- /dev/null
+++ b/mbed-studio-bin.install
@@ -0,0 +1,20 @@
+post_install() {
+ ## reload udev rules
+ # reload udev rules
+ udevadm control --reload
+ udevadm trigger
+}
+
+post_upgrade() {
+ ## reload udev rules
+ # reload udev rules
+ udevadm control --reload
+ udevadm trigger
+}
+
+post_remove() {
+ ## reload udev rules
+ # reload udev rules
+ udevadm control --reload
+ udevadm trigger
+}
diff --git a/mbed-studio-bin.sh b/mbed-studio-bin.sh
new file mode 100644
index 000000000000..3b54f19a0a1e
--- /dev/null
+++ b/mbed-studio-bin.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+
+USR_TOOLS_PATH="$HOME/.config/Mbed Studio/mbed-studio-tools"
+
+if [ ! -d "$USR_TOOLS_PATH" ]; then
+ mkdir -p "$HOME/.config/Mbed Studio"
+ ln -s "/usr/share/mbed-studio-bin/mbed-studio-tools" "$USR_TOOLS_PATH"
+fi
+
+/usr/share/mbed-studio-bin/mbed-studio