| # Author: Patrick Ohly <patrick.ohly@intel.com> |
| # Copyright: Copyright (C) 2015 Intel Corporation |
| # |
| # This file is licensed under the MIT license, see COPYING.MIT in |
| # this source distribution for the terms. |
| |
| # This class is used like rm_work: |
| # INHERIT += "rm_work_and_downloads" |
| # |
| # In addition to removing local build directories of a recipe, it also |
| # removes the downloaded source. This is achieved by making the DL_DIR |
| # recipe-specific. While reducing disk usage, it increases network usage (for |
| # example, compiling the same source for target and host implies downloading |
| # the source twice). |
| # |
| # Because the "do_fetch" task does not get re-run after removing the downloaded |
| # sources, this class is also not suitable for incremental builds. |
| # |
| # Where it works well is in well-connected build environments with limited |
| # disk space (like TravisCI). |
| |
| inherit rm_work |
| |
| # This would ensure that the existing do_rm_work() removes the downloads, |
| # but does not work because some recipes have a circular dependency between |
| # WORKDIR and DL_DIR (via ${SRCPV}?). |
| # DL_DIR = "${WORKDIR}/downloads" |
| |
| # Instead go up one level and remove ourself. |
| DL_DIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/downloads" |
| do_rm_work:append () { |
| rm -rf ${DL_DIR} |
| } |