Blob Blame History Raw
%bcond_without bootstrap

Name:           antlr4
Version:        4.5
Release:        1%{?dist}
Summary:        Java parser generator
License:        BSD
URL:            http://www.antlr.org/
BuildArch:      noarch

Source0:        https://github.com/antlr/antlr4/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz

# Upstream uses an experimental bulid tool (http://bildtool.org/),
# which is not available in Fedora.  RPMs are built with Maven using
# POMs maintained by package maintainer.
Source1:        antlr4-runtime.pom
Source2:        antlr4-tool.pom
Source3:        antlr4-maven-plugin.pom
Source4:        antlr4-aggregator.pom

# Prebuild binaries, used for bootstrapping only
Source100:      https://copr-be.cloud.fedoraproject.org/results/mizdebsk/newpkg/fedora-rawhide-x86_64/antlr4-4.5-1.fc23/antlr4-4.5-1.fc23.noarch.rpm
Source101:      https://copr-be.cloud.fedoraproject.org/results/mizdebsk/newpkg/fedora-rawhide-x86_64/antlr4-4.5-1.fc23/antlr4-runtime-4.5-1.fc23.noarch.rpm
Source102:      https://copr-be.cloud.fedoraproject.org/results/mizdebsk/newpkg/fedora-rawhide-x86_64/antlr4-4.5-1.fc23/antlr4-maven-plugin-4.5-1.fc23.noarch.rpm

BuildRequires:  maven-local
BuildRequires:  mvn(junit:junit)
BuildRequires:  mvn(org.abego.treelayout:org.abego.treelayout.core)
BuildRequires:  mvn(org.antlr:antlr3-maven-plugin)
BuildRequires:  mvn(org.antlr:antlr-runtime)
BuildRequires:  mvn(org.antlr:ST4)
BuildRequires:  mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires:  mvn(org.apache.maven:maven-core)
BuildRequires:  mvn(org.apache.maven:maven-plugin-api)
BuildRequires:  mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires:  mvn(org.apache.maven.shared:maven-plugin-testing-harness)
BuildRequires:  mvn(org.codehaus.plexus:plexus-compiler-api)
BuildRequires:  mvn(org.sonatype.plexus:plexus-build-api)

%if %{without bootstrap}
BuildRequires:  mvn(org.antlr:antlr4-maven-plugin)
%endif

%description
ANTLR (ANother Tool for Language Recognition) is a powerful parser
generator for reading, processing, executing, or translating
structured text or binary files.  It's widely used to build languages,
tools, and frameworks. From a grammar, ANTLR generates a parser that
can build and walk parse trees.

%package runtime
Summary:        ANTLR runtime

%description runtime
This package provides runtime library used by parsers generated by
ANTLR.

%package maven-plugin
Summary:        ANTLR plugin for Apache Maven

%description maven-plugin
This package provides plugin for Apache Maven which can be used to
generate ANTLR parsers during build.

%package javadoc
Summary:        API documentation for %{name}

%description javadoc
This package contains %{summary}.

%prep
%setup -q
cp %{SOURCE1} runtime/Java/pom.xml
cp %{SOURCE2} tool/pom.xml
cp %{SOURCE3} antlr4-maven-plugin/pom.xml
cp %{SOURCE4} pom.xml

%mvn_package :aggregator-project __noinstall

%if %{with bootstrap}
for rpm in %{SOURCE100} %{SOURCE101} %{SOURCE102}; do rpm2cpio $rpm | cpio -id; done
sed -i "s,<path>,&$PWD," usr/share/maven-metadata/*
%mvn_config resolverSettings/metadataRepositories/repository $PWD/usr/share/maven-metadata
%endif

%build
%mvn_build -s

%install
%mvn_install

%jpackage_script org.antlr.v4.Tool "" "" antlr4/antlr4:antlr3-runtime:antlr4/antlr4-runtime:stringtemplate4::treelayout %{name} true

%files -f .mfiles-antlr4
%{_bindir}/%{name}
%doc tool/MIGRATION.txt

%files runtime -f .mfiles-antlr4-runtime
%doc CHANGES.txt README.md
%license LICENSE.txt

%files maven-plugin -f .mfiles-antlr4-maven-plugin

%files javadoc -f .mfiles-javadoc
%license LICENSE.txt

%changelog
* Thu Mar 26 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.5-1
- Initial packaging