All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] CMake package requires out of source build
@ 2021-02-15 21:28 mattwood2000 at gmail.com
  2021-02-15 23:07 ` Peter Seiderer
  0 siblings, 1 reply; 11+ messages in thread
From: mattwood2000 at gmail.com @ 2021-02-15 21:28 UTC (permalink / raw)
  To: buildroot

Hi,

I've found myself in a bit of a dilemma with a piece of software I'm
trying to integrate into a custom cmake package.

The software is the amazon avs-device-sdk:
https://github.com/alexa/avs-device-sdk

For whatever reason, it does not support building within the source
tree.  Under normal circumstances one would set
<PKG>_SUPPORTS_IN_SOURCE_BUILD=NO, but in this case the sdk will not
support a build directory in the source SDK whatsoever, so that config
option is useless.

The only way I can see to get around this short of Amazon fixing their
weird build requirement is to do a dirty hack like below.

Does anyone have any other suggestions?

Thanks, Matt.

--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -66,7 +66,8 @@ $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
 ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
 $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
 else
-$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/buildroot-build
+$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/../$(1)_buildroot-build
 endif

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-15 21:28 [Buildroot] CMake package requires out of source build mattwood2000 at gmail.com
@ 2021-02-15 23:07 ` Peter Seiderer
  2021-02-17 14:20   ` mattwood2000 at gmail.com
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Seiderer @ 2021-02-15 23:07 UTC (permalink / raw)
  To: buildroot

Hello Matt,

On Mon, 15 Feb 2021 16:28:28 -0500, mattwood2000 at gmail.com wrote:

> Hi,
>
> I've found myself in a bit of a dilemma with a piece of software I'm
> trying to integrate into a custom cmake package.
>
> The software is the amazon avs-device-sdk:
> https://github.com/alexa/avs-device-sdk
>
> For whatever reason, it does not support building within the source
> tree.  Under normal circumstances one would set
> <PKG>_SUPPORTS_IN_SOURCE_BUILD=NO, but in this case the sdk will not
> support a build directory in the source SDK whatsoever, so that config
> option is useless.
>
> The only way I can see to get around this short of Amazon fixing their
> weird build requirement is to do a dirty hack like below.
>
> Does anyone have any other suggestions?

You can try it the other way round, overwrite the extract step
via <PKG>_EXTRACT_CMDS to extract into build/<package>-<version>/some_sub_dir
and use <PKGC>_SUBDIR=some_sub_dir then (did not test the solution)....

If it works it would have the advantage to not touch pkg-cmake.mk and keep
all files in the package build directory...

Regards,
Peter

>
> Thanks, Matt.
>
> --- a/package/pkg-cmake.mk
> +++ b/package/pkg-cmake.mk
> @@ -66,7 +66,8 @@ $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
>  ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
>  $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
>  else
> -$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/buildroot-build
> +$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/../$(1)_buildroot-build
>  endif
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-15 23:07 ` Peter Seiderer
@ 2021-02-17 14:20   ` mattwood2000 at gmail.com
  2021-02-17 15:52     ` Alexander Dahl
  2021-02-17 22:51     ` Peter Seiderer
  0 siblings, 2 replies; 11+ messages in thread
From: mattwood2000 at gmail.com @ 2021-02-17 14:20 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Mon, Feb 15, 2021 at 6:07 PM Peter Seiderer <ps.report@gmx.net> wrote:
>
> Hello Matt,
>
> On Mon, 15 Feb 2021 16:28:28 -0500, mattwood2000 at gmail.com wrote:
>
> > Hi,
> >
> > I've found myself in a bit of a dilemma with a piece of software I'm
> > trying to integrate into a custom cmake package.
> >
> > The software is the amazon avs-device-sdk:
> > https://github.com/alexa/avs-device-sdk
> >
> > For whatever reason, it does not support building within the source
> > tree.  Under normal circumstances one would set
> > <PKG>_SUPPORTS_IN_SOURCE_BUILD=NO, but in this case the sdk will not
> > support a build directory in the source SDK whatsoever, so that config
> > option is useless.
> >
> > The only way I can see to get around this short of Amazon fixing their
> > weird build requirement is to do a dirty hack like below.
> >
> > Does anyone have any other suggestions?
>
> You can try it the other way round, overwrite the extract step
> via <PKG>_EXTRACT_CMDS to extract into build/<package>-<version>/some_sub_dir
> and use <PKGC>_SUBDIR=some_sub_dir then (did not test the solution)....
>
> If it works it would have the advantage to not touch pkg-cmake.mk and keep
> all files in the package build directory...

Well, that sounded like a great solution but unfortunately the
buildroot still tries to build within the <PKG>_SUBDIR.  The main
issue is Amazon's rule to disallow in-source building, even within a
separate directory.  I worked around this by not including their
iterate function to detect an in-source build and using
SUPPORTS_IN_SOURCE_BUILD=NO.

Thanks for the suggestion though.


>
> Regards,
> Peter
>
> >
> > Thanks, Matt.
> >
> > --- a/package/pkg-cmake.mk
> > +++ b/package/pkg-cmake.mk
> > @@ -66,7 +66,8 @@ $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
> >  ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
> >  $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
> >  else
> > -$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/buildroot-build
> > +$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/../$(1)_buildroot-build
> >  endif
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 14:20   ` mattwood2000 at gmail.com
@ 2021-02-17 15:52     ` Alexander Dahl
  2021-02-17 16:59       ` mattwood2000 at gmail.com
  2021-02-17 22:51     ` Peter Seiderer
  1 sibling, 1 reply; 11+ messages in thread
From: Alexander Dahl @ 2021-02-17 15:52 UTC (permalink / raw)
  To: buildroot

Hei hei,

On Wed, Feb 17, 2021 at 09:20:03AM -0500, mattwood2000 at gmail.com wrote:
> Well, that sounded like a great solution but unfortunately the
> buildroot still tries to build within the <PKG>_SUBDIR.  The main
> issue is Amazon's rule to disallow in-source building, even within a
> separate directory.  I worked around this by not including their
> iterate function to detect an in-source build and using
> SUPPORTS_IN_SOURCE_BUILD=NO.

Just out of curiousity: why would you want to build in source anyways?
Why not build out of source as usually recommended and first class
supported by CMake?

Greets
Alex

-- 
/"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
\ / CAMPAIGN     | speech censured, the first thought forbidden, the
 X  AGAINST      | first freedom denied, chains us all irrevocably.?
/ \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20210217/2897d884/attachment.asc>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 15:52     ` Alexander Dahl
@ 2021-02-17 16:59       ` mattwood2000 at gmail.com
  2021-02-17 18:16         ` Alexander Dahl
  0 siblings, 1 reply; 11+ messages in thread
From: mattwood2000 at gmail.com @ 2021-02-17 16:59 UTC (permalink / raw)
  To: buildroot

Hi Alex,

On Wed, Feb 17, 2021 at 10:52 AM Alexander Dahl <post@lespocky.de> wrote:
> Just out of curiousity: why would you want to build in source anyways?
> Why not build out of source as usually recommended and first class
> supported by CMake?

I would prefer to build the source like a normal cmake package,
however Amazon disallows building their SDK anywhere within the
original source directory.  Normally, there should not be any issue
with:

./cmake_pkg_src
./cmake_pkg_src/buildroot-build // PKG_SUPPORTS_IN_SOURCE_BUILD = NO

But in this case there is a cmake rule that iterates over the entire
source directory to check if the build directory is present:
https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake

Removing the rule from BuildDefaults.cmake gets around this issue.
Also, the source builds perfectly fine this way.  I'm not sure why
Amazon forces this.

Thanks, Matt.
>
> Greets
> Alex
>
> --
> /"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
> \ / CAMPAIGN     | speech censured, the first thought forbidden, the
>  X  AGAINST      | first freedom denied, chains us all irrevocably.?
> / \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 16:59       ` mattwood2000 at gmail.com
@ 2021-02-17 18:16         ` Alexander Dahl
  2021-02-17 20:58           ` Adam Duskett
  2021-02-17 21:17           ` mattwood2000 at gmail.com
  0 siblings, 2 replies; 11+ messages in thread
From: Alexander Dahl @ 2021-02-17 18:16 UTC (permalink / raw)
  To: buildroot

Hello Matt,

On Wed, Feb 17, 2021 at 11:59:36AM -0500, mattwood2000 at gmail.com wrote:
> On Wed, Feb 17, 2021 at 10:52 AM Alexander Dahl <post@lespocky.de> wrote:
> > Just out of curiousity: why would you want to build in source anyways?
> > Why not build out of source as usually recommended and first class
> > supported by CMake?
> 
> I would prefer to build the source like a normal cmake package,
> however Amazon disallows building their SDK anywhere within the
> original source directory.  Normally, there should not be any issue
> with:
> 
> ./cmake_pkg_src
> ./cmake_pkg_src/buildroot-build // PKG_SUPPORTS_IN_SOURCE_BUILD = NO

Oh, my bad. Of course building in a subfolder "build" (or with another name like above) is
quite common with CMake. I usually don't do this, but that's of course
only my personal preference.

> But in this case there is a cmake rule that iterates over the entire
> source directory to check if the build directory is present:
> https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake

That makes no sense to me. In that script they link to
https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#cmake-does-not-generate-a-make-distclean-target-why
but that only covers in source builds.

> Removing the rule from BuildDefaults.cmake gets around this issue.
> Also, the source builds perfectly fine this way.  I'm not sure why
> Amazon forces this.

Agreed. So why not patch 'build/BuildDefaults.cmake' like that and add
the patch to the buildroot package for that avs-device-sdk instead of
changing buildroot core?

Greets
Alex

-- 
/"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
\ / CAMPAIGN     | speech censured, the first thought forbidden, the
 X  AGAINST      | first freedom denied, chains us all irrevocably.?
/ \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20210217/9f8c4a0e/attachment.asc>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 18:16         ` Alexander Dahl
@ 2021-02-17 20:58           ` Adam Duskett
  2021-02-18 15:23             ` mattwood2000 at gmail.com
  2021-02-17 21:17           ` mattwood2000 at gmail.com
  1 sibling, 1 reply; 11+ messages in thread
From: Adam Duskett @ 2021-02-17 20:58 UTC (permalink / raw)
  To: buildroot

Hello;

I have been porting several aws-iot packages to buildroot in an
external tree found here:
https://github.com/aduskett/buildroot-aws-iot/

I added avs-device-sdk in the alexa-packages branch along with a small
patch to allow for
in-source builds.

https://github.com/aduskett/buildroot-aws-iot/tree/alexa-packages

Thanks!

Adam

On Wed, Feb 17, 2021 at 10:16 AM Alexander Dahl <post@lespocky.de> wrote:
>
> Hello Matt,
>
> On Wed, Feb 17, 2021 at 11:59:36AM -0500, mattwood2000 at gmail.com wrote:
> > On Wed, Feb 17, 2021 at 10:52 AM Alexander Dahl <post@lespocky.de> wrote:
> > > Just out of curiousity: why would you want to build in source anyways?
> > > Why not build out of source as usually recommended and first class
> > > supported by CMake?
> >
> > I would prefer to build the source like a normal cmake package,
> > however Amazon disallows building their SDK anywhere within the
> > original source directory.  Normally, there should not be any issue
> > with:
> >
> > ./cmake_pkg_src
> > ./cmake_pkg_src/buildroot-build // PKG_SUPPORTS_IN_SOURCE_BUILD = NO
>
> Oh, my bad. Of course building in a subfolder "build" (or with another name like above) is
> quite common with CMake. I usually don't do this, but that's of course
> only my personal preference.
>
> > But in this case there is a cmake rule that iterates over the entire
> > source directory to check if the build directory is present:
> > https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake
>
> That makes no sense to me. In that script they link to
> https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#cmake-does-not-generate-a-make-distclean-target-why
> but that only covers in source builds.
>
> > Removing the rule from BuildDefaults.cmake gets around this issue.
> > Also, the source builds perfectly fine this way.  I'm not sure why
> > Amazon forces this.
>
> Agreed. So why not patch 'build/BuildDefaults.cmake' like that and add
> the patch to the buildroot package for that avs-device-sdk instead of
> changing buildroot core?
>
> Greets
> Alex
>
> --
> /"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
> \ / CAMPAIGN     | speech censured, the first thought forbidden, the
>  X  AGAINST      | first freedom denied, chains us all irrevocably.?
> / \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 18:16         ` Alexander Dahl
  2021-02-17 20:58           ` Adam Duskett
@ 2021-02-17 21:17           ` mattwood2000 at gmail.com
  1 sibling, 0 replies; 11+ messages in thread
From: mattwood2000 at gmail.com @ 2021-02-17 21:17 UTC (permalink / raw)
  To: buildroot

Hi Alex,

On Wed, Feb 17, 2021 at 1:16 PM Alexander Dahl <post@lespocky.de> wrote:
>
>
> Oh, my bad. Of course building in a subfolder "build" (or with another name like above) is
> quite common with CMake. I usually don't do this, but that's of course
> only my personal preference.

No problem at all!

>
> > But in this case there is a cmake rule that iterates over the entire
> > source directory to check if the build directory is present:
> > https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake
>
> That makes no sense to me. In that script they link to
> https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#cmake-does-not-generate-a-make-distclean-target-why
> but that only covers in source builds.
>
Agreed, very strange indeed.  And, like I said it builds perfectly
fine overriding their rule.

> > Removing the rule from BuildDefaults.cmake gets around this issue.
> > Also, the source builds perfectly fine this way.  I'm not sure why
> > Amazon forces this.
>
> Agreed. So why not patch 'build/BuildDefaults.cmake' like that and add
> the patch to the buildroot package for that avs-device-sdk instead of
> changing buildroot core?

Yup, thats exactly what I did, I reverted my patch against the core
and all works now

Thanks, Matt.
>
> Greets
> Alex
>
> --
> /"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
> \ / CAMPAIGN     | speech censured, the first thought forbidden, the
>  X  AGAINST      | first freedom denied, chains us all irrevocably.?
> / \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 14:20   ` mattwood2000 at gmail.com
  2021-02-17 15:52     ` Alexander Dahl
@ 2021-02-17 22:51     ` Peter Seiderer
  1 sibling, 0 replies; 11+ messages in thread
From: Peter Seiderer @ 2021-02-17 22:51 UTC (permalink / raw)
  To: buildroot

Hello Matt,

On Wed, 17 Feb 2021 09:20:03 -0500, mattwood2000 at gmail.com wrote:

> Hi Peter,
>
> On Mon, Feb 15, 2021 at 6:07 PM Peter Seiderer <ps.report@gmx.net> wrote:
> >
> > Hello Matt,
> >
> > On Mon, 15 Feb 2021 16:28:28 -0500, mattwood2000 at gmail.com wrote:
> >
> > > Hi,
> > >
> > > I've found myself in a bit of a dilemma with a piece of software I'm
> > > trying to integrate into a custom cmake package.
> > >
> > > The software is the amazon avs-device-sdk:
> > > https://github.com/alexa/avs-device-sdk
> > >
> > > For whatever reason, it does not support building within the source
> > > tree.  Under normal circumstances one would set
> > > <PKG>_SUPPORTS_IN_SOURCE_BUILD=NO, but in this case the sdk will not
> > > support a build directory in the source SDK whatsoever, so that config
> > > option is useless.
> > >
> > > The only way I can see to get around this short of Amazon fixing their
> > > weird build requirement is to do a dirty hack like below.
> > >
> > > Does anyone have any other suggestions?
> >
> > You can try it the other way round, overwrite the extract step
> > via <PKG>_EXTRACT_CMDS to extract into build/<package>-<version>/some_sub_dir
> > and use <PKGC>_SUBDIR=some_sub_dir then (did not test the solution)....
> >
> > If it works it would have the advantage to not touch pkg-cmake.mk and keep
> > all files in the package build directory...
>
> Well, that sounded like a great solution but unfortunately the
> buildroot still tries to build within the <PKG>_SUBDIR.  The main
> issue is Amazon's rule to disallow in-source building, even within a
> separate directory.  I worked around this by not including their
> iterate function to detect an in-source build and using
> SUPPORTS_IN_SOURCE_BUILD=NO.

Yes your are right, the actual buildroot logic moves even in the
case of _SUPPORTS_IN_SOURCE_BUILD = NO and given _SUBDIR the
buildroot-build to $(<PKG>_SUBDIR)/buildroot-build, maybe time to
change it for this case to do a real out-of-source-tree build...

Tested the following patch for e.g. jpeg-turbo package:


  --- a/package/jpeg-turbo/jpeg-turbo.mk
  +++ b/package/jpeg-turbo/jpeg-turbo.mk
  @@ -13,6 +13,13 @@ JPEG_TURBO_INSTALL_STAGING = YES
   JPEG_TURBO_PROVIDES = jpeg
   JPEG_TURBO_DEPENDENCIES = host-pkgconf

  +JPEG_TURBO_SUPPORTS_IN_SOURCE_BUILD = NO
  +define JPEG_TURBO_EXTRACT_CMDS
  +       mkdir -p $(@D)/jpeg-turbo-src
  +       gzip -d -c $(JPEG_TURBO_DL_DIR)/$(JPEG_TURBO_SOURCE) | tar --strip-components=1 -C $(@D)/jpeg-turbo-src -xf -
  +endef
  +JPEG_TURBO_SUBDIR = jpeg-turbo-src
  +
   JPEG_TURBO_CONF_OPTS = -DWITH_JPEG8=ON

   ifeq ($(BR2_STATIC_LIBS),y)

  --- a/package/pkg-cmake.mk
  +++ b/package/pkg-cmake.mk
  @@ -66,7 +66,7 @@ $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
   ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
   $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
   else
  -$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/buildroot-build
  +$(2)_BUILDDIR                  = $$($(2)_DIR)/buildroot-build
   endif

   #

Regards,
Peter

>
> Thanks for the suggestion though.
>
>
> >
> > Regards,
> > Peter
> >
> > >
> > > Thanks, Matt.
> > >
> > > --- a/package/pkg-cmake.mk
> > > +++ b/package/pkg-cmake.mk
> > > @@ -66,7 +66,8 @@ $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
> > >  ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES)
> > >  $(2)_BUILDDIR                  = $$($(2)_SRCDIR)
> > >  else
> > > -$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/buildroot-build
> > > +$(2)_BUILDDIR                  = $$($(2)_SRCDIR)/../$(1)_buildroot-build
> > >  endif
> > > _______________________________________________
> > > buildroot mailing list
> > > buildroot at busybox.net
> > > http://lists.busybox.net/mailman/listinfo/buildroot
> >
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-17 20:58           ` Adam Duskett
@ 2021-02-18 15:23             ` mattwood2000 at gmail.com
  2021-02-18 16:35               ` Adam Duskett
  0 siblings, 1 reply; 11+ messages in thread
From: mattwood2000 at gmail.com @ 2021-02-18 15:23 UTC (permalink / raw)
  To: buildroot

Hi Adam,

Thanks for this, sorry I somehow missed your email yesterday.

I'll take a look at what you did and compare it to my patches, but as of
now I have a working solution.

Thanks ,Matt.

On Wed, Feb 17, 2021, 3:58 PM Adam Duskett <aduskett@gmail.com> wrote:

> Hello;
>
> I have been porting several aws-iot packages to buildroot in an
> external tree found here:
> https://github.com/aduskett/buildroot-aws-iot/
>
> I added avs-device-sdk in the alexa-packages branch along with a small
> patch to allow for
> in-source builds.
>
> https://github.com/aduskett/buildroot-aws-iot/tree/alexa-packages
>
> Thanks!
>
> Adam
>
> On Wed, Feb 17, 2021 at 10:16 AM Alexander Dahl <post@lespocky.de> wrote:
> >
> > Hello Matt,
> >
> > On Wed, Feb 17, 2021 at 11:59:36AM -0500, mattwood2000 at gmail.com wrote:
> > > On Wed, Feb 17, 2021 at 10:52 AM Alexander Dahl <post@lespocky.de>
> wrote:
> > > > Just out of curiousity: why would you want to build in source
> anyways?
> > > > Why not build out of source as usually recommended and first class
> > > > supported by CMake?
> > >
> > > I would prefer to build the source like a normal cmake package,
> > > however Amazon disallows building their SDK anywhere within the
> > > original source directory.  Normally, there should not be any issue
> > > with:
> > >
> > > ./cmake_pkg_src
> > > ./cmake_pkg_src/buildroot-build // PKG_SUPPORTS_IN_SOURCE_BUILD = NO
> >
> > Oh, my bad. Of course building in a subfolder "build" (or with another
> name like above) is
> > quite common with CMake. I usually don't do this, but that's of course
> > only my personal preference.
> >
> > > But in this case there is a cmake rule that iterates over the entire
> > > source directory to check if the build directory is present:
> > >
> https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake
> >
> > That makes no sense to me. In that script they link to
> >
> https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#cmake-does-not-generate-a-make-distclean-target-why
> > but that only covers in source builds.
> >
> > > Removing the rule from BuildDefaults.cmake gets around this issue.
> > > Also, the source builds perfectly fine this way.  I'm not sure why
> > > Amazon forces this.
> >
> > Agreed. So why not patch 'build/BuildDefaults.cmake' like that and add
> > the patch to the buildroot package for that avs-device-sdk instead of
> > changing buildroot core?
> >
> > Greets
> > Alex
> >
> > --
> > /"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
> > \ / CAMPAIGN     | speech censured, the first thought forbidden, the
> >  X  AGAINST      | first freedom denied, chains us all irrevocably.?
> > / \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20210218/331d0a3b/attachment.html>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] CMake package requires out of source build
  2021-02-18 15:23             ` mattwood2000 at gmail.com
@ 2021-02-18 16:35               ` Adam Duskett
  0 siblings, 0 replies; 11+ messages in thread
From: Adam Duskett @ 2021-02-18 16:35 UTC (permalink / raw)
  To: buildroot

No worries; I also added two other Alexa packages in case you need them.

Adam

On Thu, Feb 18, 2021 at 7:23 AM <mattwood2000@gmail.com> wrote:
>
> Hi Adam,
>
> Thanks for this, sorry I somehow missed your email yesterday.
>
> I'll take a look at what you did and compare it to my patches, but as of now I have a working solution.
>
> Thanks ,Matt.
>
> On Wed, Feb 17, 2021, 3:58 PM Adam Duskett <aduskett@gmail.com> wrote:
>>
>> Hello;
>>
>> I have been porting several aws-iot packages to buildroot in an
>> external tree found here:
>> https://github.com/aduskett/buildroot-aws-iot/
>>
>> I added avs-device-sdk in the alexa-packages branch along with a small
>> patch to allow for
>> in-source builds.
>>
>> https://github.com/aduskett/buildroot-aws-iot/tree/alexa-packages
>>
>> Thanks!
>>
>> Adam
>>
>> On Wed, Feb 17, 2021 at 10:16 AM Alexander Dahl <post@lespocky.de> wrote:
>> >
>> > Hello Matt,
>> >
>> > On Wed, Feb 17, 2021 at 11:59:36AM -0500, mattwood2000 at gmail.com wrote:
>> > > On Wed, Feb 17, 2021 at 10:52 AM Alexander Dahl <post@lespocky.de> wrote:
>> > > > Just out of curiousity: why would you want to build in source anyways?
>> > > > Why not build out of source as usually recommended and first class
>> > > > supported by CMake?
>> > >
>> > > I would prefer to build the source like a normal cmake package,
>> > > however Amazon disallows building their SDK anywhere within the
>> > > original source directory.  Normally, there should not be any issue
>> > > with:
>> > >
>> > > ./cmake_pkg_src
>> > > ./cmake_pkg_src/buildroot-build // PKG_SUPPORTS_IN_SOURCE_BUILD = NO
>> >
>> > Oh, my bad. Of course building in a subfolder "build" (or with another name like above) is
>> > quite common with CMake. I usually don't do this, but that's of course
>> > only my personal preference.
>> >
>> > > But in this case there is a cmake rule that iterates over the entire
>> > > source directory to check if the build directory is present:
>> > > https://github.com/alexa/avs-device-sdk/blob/master/build/cmake/DisallowOutOfSourceBuilds.cmake
>> >
>> > That makes no sense to me. In that script they link to
>> > https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#cmake-does-not-generate-a-make-distclean-target-why
>> > but that only covers in source builds.
>> >
>> > > Removing the rule from BuildDefaults.cmake gets around this issue.
>> > > Also, the source builds perfectly fine this way.  I'm not sure why
>> > > Amazon forces this.
>> >
>> > Agreed. So why not patch 'build/BuildDefaults.cmake' like that and add
>> > the patch to the buildroot package for that avs-device-sdk instead of
>> > changing buildroot core?
>> >
>> > Greets
>> > Alex
>> >
>> > --
>> > /"\ ASCII RIBBON | ?With the first link, the chain is forged. The first
>> > \ / CAMPAIGN     | speech censured, the first thought forbidden, the
>> >  X  AGAINST      | first freedom denied, chains us all irrevocably.?
>> > / \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
>> > _______________________________________________
>> > buildroot mailing list
>> > buildroot at busybox.net
>> > http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-02-18 16:35 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 21:28 [Buildroot] CMake package requires out of source build mattwood2000 at gmail.com
2021-02-15 23:07 ` Peter Seiderer
2021-02-17 14:20   ` mattwood2000 at gmail.com
2021-02-17 15:52     ` Alexander Dahl
2021-02-17 16:59       ` mattwood2000 at gmail.com
2021-02-17 18:16         ` Alexander Dahl
2021-02-17 20:58           ` Adam Duskett
2021-02-18 15:23             ` mattwood2000 at gmail.com
2021-02-18 16:35               ` Adam Duskett
2021-02-17 21:17           ` mattwood2000 at gmail.com
2021-02-17 22:51     ` Peter Seiderer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.