On 12/04/2013 07:38 PM, Ross Burton wrote: > Instead of the class-specific variables OECMAKE_BUILDPATH and > OECMAKE_SOURCEPATH, just use ${B} and ${S}. > > If these two paths are different, delete any existing ${B} before running a > build so that previous builds don't taint the current build. > > Note that OECMAKE_SOURCEPATH and OECMAKE_BUILDPATH are not respected at all, > so > recipes that manually set these in the past will need to be updated to either > use something along the lines of separatebuilddir.inc or set B themselves.
I'm carrying EXTRA_OEMAKE = "-C $(OECMAKE_BUILDPATH)" in recipes. It looks like this removes the need for this also? My cmake invocation is rusty :) Philip > > Signed-off-by: Ross Burton <ross.bur...@intel.com> > --- > meta/classes/cmake.bbclass | 31 +++++++------------------------ > 1 file changed, 7 insertions(+), 24 deletions(-) > > diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass > index 30c1792..4d1489a 100644 > --- a/meta/classes/cmake.bbclass > +++ b/meta/classes/cmake.bbclass > @@ -6,15 +6,6 @@ CCACHE = "" > # We want the staging and installing functions from autotools > inherit autotools > > -# Use in-tree builds by default but allow this to be changed > -# since some packages do not support them (e.g. llvm 2.5). > -OECMAKE_SOURCEPATH ?= "." > - > -# If declaring this, make sure you also set EXTRA_OEMAKE to > -# "-C ${OECMAKE_BUILDPATH}". So it will run the right makefiles. > -OECMAKE_BUILDPATH ?= "" > -B="${S}" > - > # C/C++ Compiler (without cpu arch/tune arguments) > OECMAKE_C_COMPILER ?= "`echo ${CC} | sed 's/^\([^ ]*\).*/\1/'`" > OECMAKE_CXX_COMPILER ?= "`echo ${CXX} | sed 's/^\([^ ]*\).*/\1/'`" > @@ -73,10 +64,10 @@ EOF > addtask generate_toolchain_file after do_patch before do_configure > > cmake_do_configure() { > - if [ ${OECMAKE_BUILDPATH} ] > - then > - mkdir -p ${OECMAKE_BUILDPATH} > - cd ${OECMAKE_BUILDPATH} > + if [ "${S}" != "${B}" ]; then > + rm -rf ${B} > + mkdir -p ${B} > + cd ${B} > fi > > # Just like autotools cmake can use a site file to cache result that > need generated binaries to run > @@ -88,7 +79,7 @@ cmake_do_configure() { > > cmake \ > ${OECMAKE_SITEFILE} \ > - ${OECMAKE_SOURCEPATH} \ > + ${S} \ > -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \ > -DCMAKE_INSTALL_SO_NO_EXE=0 \ > -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \ > @@ -98,20 +89,12 @@ cmake_do_configure() { > } > > cmake_do_compile() { > - if [ ${OECMAKE_BUILDPATH} ] > - then > - cd ${OECMAKE_BUILDPATH} > - fi > - > + cd ${B} > base_do_compile > } > > cmake_do_install() { > - if [ ${OECMAKE_BUILDPATH} ]; > - then > - cd ${OECMAKE_BUILDPATH} > - fi > - > + cd ${B} > autotools_do_install > } > > _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core