# -*- coding: utf-8 -*-
#
# Copyright 2009 - 2015
# André Malo or his licensors, as applicable
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[package]
name = rjsmin

python.min = 2.4
pypy.min = 1.9
pypy3.min = 2.4
jython.min = 2.5

version.number = 1.0.12

author.name = André Malo
author.email = nd@perlig.de
#maintainer.name =
#maintainer.email = 
url.homepage = http://opensource.perlig.de/rjsmin/
url.download = http://storage.perlig.de/rjsmin/


[docs]
meta.classifiers = docs/CLASSIFIERS
meta.description = docs/DESCRIPTION
meta.summary = docs/SUMMARY
meta.provides = docs/PROVIDES
meta.license = LICENSE
meta.keywords =
    Javascript
    Minimization

apidoc.dir = docs/apidoc
apidoc.strip = 1
#apidoc.ignore =

#userdoc.dir = docs/userdoc
#userdoc.strip = 1
#userdoc.ignore =
#    .buildinfo

#examples.dir = docs/examples
#examples.strip = 1
#examples.ignore =

#man =

extra =
    README.rst
    docs/CHANGES
    docs/BENCHMARKS


[manifest]
#packages.lib = .
#packages.collect =
modules = rjsmin

#scripts =

dist =
    bench
    bench.sh
