I am building a cmake package that strictly does not allow in source build, output/build/$(PKG_NAME)-$(PKG_VERSION)/buildroot-build is rejected. Suggest this change which solves the problem --- a/package/pkg-cmake.mk +++ b/package/pkg-cmake.mk @@ -66,9 +66,9 @@ ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES) -$(2)_BUILDDIR = $$($(2)_SRCDIR) -else -$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build +$(2)_BUILDDIR ?= $$($(2)_SRCDIR) +else +$(2)_BUILDDIR ?= $$($(2)_SRCDIR)/buildroot-build endif #
Could you submit this as a proper patch to the mailing list, with an update to the Buildroot manual ? Thanks!
Created attachment 8241 [details] Allow custom _BUILDDIR for cmake packages
(In reply to Thomas Petazzoni from comment #1) Attached here.
> --- a/package/pkg-cmake.mk > +++ b/package/pkg-cmake.mk > @@ -66,9 +66,9 @@ > > > ifeq ($$($(3)_SUPPORTS_IN_SOURCE_BUILD),YES) > -$(2)_BUILDDIR = $$($(2)_SRCDIR) > -else > -$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build > +$(2)_BUILDDIR ?= $$($(2)_SRCDIR) > +else > +$(2)_BUILDDIR ?= $$($(2)_SRCDIR)/buildroot-build > endif I am not at all happy with this approach. First of all, it becomes unnecessary if/when the separate-source-and-build-dir series finally gets merged. Second, the approach taken by pkg-cmake is already kind of awkward IMO; allowing individual packages to override BUILDDIR makes it worse. Third, it breaks a couple of things, e.g. <pkg>-dirclean. Finally, the problem is really with the package itself, there should be no reason at all to reject output/build/$(PKG_NAME)-$(PKG_VERSION)/buildroot-build as the build directory. So just patch the package and whatever check it does, replace it with a check that CMAKE_SOURCE_DIR != CMAKE_BINARY_DIR. Failing that, I would be more in favour in advancing the separate-source-and-build-dir approach.
I agree that fixing the package seems like a much better option.