[OE-core] [PATCH v2 1/3] cmake-native: Enable ccmake by default and depend on ncurses

Nathan Rossi nathan at nathanrossi.com
Thu Apr 4 04:35:46 UTC 2019


On Thu, 4 Apr 2019 at 13:48, Khem Raj <raj.khem at gmail.com> wrote:
>
> On Wed, Apr 3, 2019 at 8:28 PM Nathan Rossi <nathan at nathanrossi.com> wrote:
> >
> > On Thu, 4 Apr 2019 at 03:02, Khem Raj <raj.khem at gmail.com> wrote:
> > >
> > > On Wed, Apr 3, 2019 at 2:26 AM Bach, Pascal <pascal.bach at siemens.com> wrote:
> > > >
> > > > >
> > > > > Enable the building of the curses based ui for cmake. This depends on
> > > > > ncurses.
> > > >
> > > > I think this is acceptable. It might also be useful for people wanting to use ccmake inside an SDK.
> >
> > Just to be clear, this change only affects cmake-native, the recipe
> > for target/nativesdk is unchanged. Although interestingly the cmake
> > (target/nativesdk) recipe already depends on ncurses (despite
> > disabling ccmake).
> >
> > > >
> > >
> > > Adding dependencies do serialize builds and might have penalty on
> > > build time, better is to turn this into a packageconfig
> > > option and keep it disabled by default.
> >
> > I can rework this patch to make it a PACKAGECONFIG option. However the
> > reason for enabling ccmake by default is due to the addition of the
> > ccmake bbclass in this series, which relies on having ccmake available
> > in the native sysroot. Having to override PACKAGECONFIG to use the
> > ccmake class seemed broken (since it is not particularly a distro
> > config).
> >
> > I could not find a good example of this sort of requirement for
> > configuration for any other bbclass except for maybe
> > gobject-introspection (which relies on qemu-native configured
> > correctly to have linux-user for the target).
> >
> > Another approach I considered to have this working without requiring
> > the user to setup PACKAGECONFIG would be to have a "ccmake-native"
> > recipe which built the ccmake binary. But this seemed like it would be
> > extra maintenance burden compared to this patch which has minimal
> > build time overhead.
> >
>
> this seems fine, if the number of recipes needing this bbclass are far less than
> one the needing cmake bbclass.

Just to clarify, are you suggesting that making a ccmake-native recipe
would be fine? Or that requiring the PACKAGECONFIG setup would be
acceptable/preferred?

Thanks,
Nathan

>
> > Regards,
> > Nathan
> >
> > >
> > > > > Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
> > > > > ---
> > > > > This patch suggests enabling this in the cmake-native recipe, however this
> > > > > might be undesirable for bootstrapping reasons. Whilst ccmake is not used
> > > > > normally the added dependency on ncurses is likely required for other parts
> > > > > of the build so impact on build ordering and time should be relatively
> > > > > minimal.
> > > > >
> > > > > Changes in v2:
> > > > > - None
> > > > > ---
> > > > >  meta/recipes-devtools/cmake/cmake-native_3.14.0.bb | 5 ++---
> > > > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/meta/recipes-devtools/cmake/cmake-native_3.14.0.bb
> > > > > b/meta/recipes-devtools/cmake/cmake-native_3.14.0.bb
> > > > > index fedcf3d4bd..b2952ee5f5 100644
> > > > > --- a/meta/recipes-devtools/cmake/cmake-native_3.14.0.bb
> > > > > +++ b/meta/recipes-devtools/cmake/cmake-native_3.14.0.bb
> > > > > @@ -1,7 +1,7 @@
> > > > >  require cmake.inc
> > > > >  inherit native
> > > > >
> > > > > -DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native
> > > > > curl-native"
> > > > > +DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native
> > > > > curl-native ncurses-native"
> > > > >
> > > > >  SRC_URI += "file://OEToolchainConfig.cmake \
> > > > >              file://environment.d-cmake.sh \ @@ -13,10 +13,9 @@ SRC_URI +=
> > > > > "file://OEToolchainConfig.cmake \  B = "${WORKDIR}/build"
> > > > >  do_configure[cleandirs] = "${B}"
> > > > >
> > > > > -# Disable ccmake since we don't depend on ncurses  CMAKE_EXTRACONF =
> > > > > "\
> > > > >      -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE} \
> > > > > -    -DBUILD_CursesDialog=0 \
> > > > > +    -DBUILD_CursesDialog=1 \
> > > > >      -DCMAKE_USE_SYSTEM_LIBRARIES=1 \
> > > > >      -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0 \
> > > > >      -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \
> > > > > ---
> > > > > 2.20.1
> > > > > --
> > > > > _______________________________________________
> > > > > Openembedded-core mailing list
> > > > > Openembedded-core at lists.openembedded.org
> > > > > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> > > > --
> > > > _______________________________________________
> > > > Openembedded-core mailing list
> > > > Openembedded-core at lists.openembedded.org
> > > > http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list