bin.includes = plugin.xml,\
               plugin.properties,\
               about.html,\
               cdtparser.jar,\
               cdtcore.jar,\
               .options
jars.compile.order = cdtparser.jar,\
                     cdtcore.jar
src.includes = about.html,\
               schema/,\
               ChangeLog,\
               build.properties,\
               utils/,\
               src/,\
               search/,\
               plugin.xml,\
               plugin.properties,\
               parser/,\
               model/,\
               index/,\
               doc/,\
               dependency/,\
               .options
javadoc.packages = org.eclipse.cdt.core.*,\
                   org.eclipse.cdt.core.index.*,\
                   org.eclipse.cdt.core.model.*,\
                   org.eclipse.cdt.core.resources.*,\
                   org.eclipse.cdt.utils.*,\
                   org.eclipse.cdt.utils.elf.*,\
                   org.eclipse.cdt.utils.spawner.*
source.cdtcore.jar = index/,\
                     model/,\
                     src/,\
                     utils/,\
                     search/,\
                     dependency/
source.cdtparser.jar = parser/
