File PKGBUILD of Package Intellij-IDEA-ce-arch

# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Maintainer: Orhun Parmaksız <orhun@archlinux.org>

pkgname=intellij-idea-community-edition
pkgver=2023.2
_build=232.8660.185
_jrever=17
_jdkver=17
pkgrel=1
epoch=4
pkgdesc='IDE for Java, Groovy and other programming languages with advanced refactoring features'
url='https://www.jetbrains.com/idea/'
arch=('x86_64')
license=('Apache')
backup=('usr/share/idea/bin/idea64.vmoptions')
depends=('giflib' "java-runtime=${_jrever}" 'python' 'sh' 'ttf-font' 'libdbusmenu-glib' 'fontconfig' 'hicolor-icon-theme')
makedepends=('ant' 'git' "java-environment-openjdk=${_jdkver}" maven "unzip")
optdepends=(
  'lldb: lldb frontend integration'
)
source=("idea_${_build}.zip"
        "android_${_build}.zip"
        idea.desktop
        idea.sh
        enable-no-jdr.patch
        # The class src/com/intellij/openapi/projectRoots/ex/JavaSdkUtil.java:56 (git commit 0ea5972cdad569407078fb27070c80e2b9235c53)
        # assumes the user's maven repo is at {$HOME}/.m2/repository and it contains junit-3.8.1.jar
        #https://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar
        )
#noextract=('junit-3.8.1.jar')
sha256sums=('SKIP'
            'SKIP'
            '049c4326b6b784da0c698cf62262b591b20abb52e0dcf869f869c0c655f3ce93'
            'd7e4a325fccd48b8c8b0a6234df337b58364e648bb9b849e85ca38a059468e71'
            '5dcb0474c4e07b1b7d44844e8b2da40e4dda9eed55c904b745309b1de5df5d94')
            #'b58e459509e190bed737f3592bc1950485322846cf10e78ded1d065153012d70')

prepare() {
  #cd intellij-community
  unzip -qo idea_${_build}.zip
  # intellij-community-idea-232.8660.185
  mv "intellij-community-idea-${_build}"  intellij-community
  
  unzip -qo android_${_build}.zip
  
  cd intellij-community
  
  # build system doesn't like symlinks
  #mv "${srcdir}"/idea-android android
  mv "${srcdir}/android-idea-${_build}" android


  #export MAVEN_REPOSITORY=${srcdir}/.m2/repository
  #mvn install:install-file \
  #  -Dfile="${srcdir}"/junit-3.8.1.jar \
  #  -DgroupId=junit \
  #  -DartifactId=junit \
  #  -Dversion=3.8.1 \
  #  -Dpackaging=jar \
  #  -DgeneratePom=true

  patch -Np1 < "${srcdir}/enable-no-jdr.patch"
  echo ${_build} > build.txt
}

build() {
  cd intellij-community
  
  export JAVA_HOME="/usr/lib/jvm/java-${_jdkver}-openjdk"
  export PATH="/usr/lib/jvm/java-${_jdkver}-openjdk/bin:$PATH"
  export MAVEN_REPOSITORY=${srcdir}/.m2/repository
  
  ./installers.cmd -Dintellij.build.use.compiled.classes=false -Dintellij.build.target.os=linux
  tar -xf out/idea-ce/artifacts/ideaIC-${_build}-no-jbr.tar.gz -C "${srcdir}"
}

package() {
  cd idea-IC-${_build}

  install -dm 755 "${pkgdir}"/usr/share/{licenses,pixmaps,idea,icons/hicolor/scalable/apps}
  cp -dr --no-preserve='ownership' bin lib plugins "${pkgdir}"/usr/share/idea/
  cp -dr --no-preserve='ownership' license "${pkgdir}"/usr/share/licenses/idea
  ln -s /usr/share/idea/bin/idea.png "${pkgdir}"/usr/share/pixmaps/
  ln -s /usr/share/idea/bin/idea.svg "${pkgdir}"/usr/share/icons/hicolor/scalable/apps/
  install -Dm 644 ../idea.desktop -t "${pkgdir}"/usr/share/applications/
  install -Dm 755 ../idea.sh "${pkgdir}"/usr/bin/idea
  install -Dm 644 build.txt -t "${pkgdir}"/usr/share/idea
}

# vim: ts=2 sw=2 et:
openSUSE Build Service is sponsored by