# Annotation File Utilities project
# Global properties file that contains absolute paths to all known projects.

# This file must contain absolute paths for each project.
# Environment variables can be used, but must be enclosed in brackets
# and prefixed with 'env.' as such: ${env.PATH}

# ${workspace} contains the top-level checkouts.

# If this property file is included from elsewhere, ${workspace} should
# already be defined (and hopefully to an absolute pathname, such as by
# starting with ${basedir}); in that case, this definition has no effect.
workspace : ..

annotation-tools : ${workspace}/annotation-tools
afu : ${annotation-tools}/annotation-file-utilities
asmx : ${annotation-tools}/asmx
scene-lib : ${annotation-tools}/scene-lib

# Compiler.  For annotations-compiler builds, use:   antfile="make/build.xml"
annotations-compiler : ${workspace}/jsr308-langtools
annotations-disassembler : ${workspace}/jsr308-langtools

# Other tools
checkerframework : ${workspace}/checker-framework
