Files
chromebrew/packages/antlr4.rb
Maximilian Downey Twiss f6dc1d8d4e Derive binary_url in package.rb (#7082)
* Add binary_compression value to each package

* Remove binary_url values and arrays

* Handle packages with empty binary_sha256 arrays (either missing binaries or not compiled by us)
2024-01-25 11:03:31 -05:00

53 lines
2.1 KiB
Ruby

require 'package'
class Antlr4 < Package
description 'ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.'
homepage 'https://www.antlr.org/'
@_ver = '4.12.0'
version "#{@_ver}-1"
license 'BSD'
compatibility 'all'
source_url 'https://github.com/antlr/antlr4/archive/4.12.0.tar.gz'
source_sha256 '8b6050a2111a6bb6405cc5e9e7bca80c136548ac930e4b2c27566d1eb32f8aed'
binary_compression 'tar.zst'
binary_sha256({
aarch64: '80863f7d228af865b8e203940b20315281e8b4051368280995f9e58e29cfabbf',
armv7l: '80863f7d228af865b8e203940b20315281e8b4051368280995f9e58e29cfabbf',
i686: 'b06cc13d89c857d6c289b9a7e5db8746b25016d8f3ab869f1665724bbfa9a3d0',
x86_64: '4bf4a263b746b86ff380a88e912747ebd96ee97ba38e63b2cdf2d10dff951b47'
})
depends_on 'openjdk11'
print_source_bashrc
def self.build
@antlrenv = <<~ANTLR_EOF
# ANTLR (ANother Tool for Language Recognition) configuration
CLASSPATH=".:#{CREW_PREFIX}/share/antlr/antlr-#{@_ver}-complete.jar:$CLASSPATH"
alias antlr4="java -jar #{CREW_PREFIX}/share/antlr/antlr-#{@_ver}-complete.jar"
alias grun="java org.antlr.v4.gui.TestRig"
ANTLR_EOF
Dir.chdir 'runtime/Cpp' do
system "cmake -B builddir #{CREW_CMAKE_OPTIONS} -G Ninja -DBUILD_GMOCK=OFF -DINSTALL_GTEST=OFF"
system "#{CREW_NINJA} -C builddir"
end
end
def self.install
downloader "https://www.antlr.org/download/antlr-#{@_ver}-complete.jar",
'88f18a2bfac0dde1009eda5c7dce358a52877faef7868f56223a5bcc15329e43'
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/etc/env.d"
FileUtils.mkdir_p "#{CREW_DEST_PREFIX}/share/antlr"
File.write("#{CREW_DEST_PREFIX}/etc/env.d/10-antlr4", @antlrenv)
FileUtils.install "antlr-#{@_ver}-complete.jar", "#{CREW_DEST_PREFIX}/share/antlr", mode: 0o644
Dir.chdir 'runtime/Cpp' do
system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install"
end
end
def self.postinstall
ExitMessage.add "\nType 'antlr4' to get started.\n".lightblue
end
end