tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] cmake/build.mk: Hide non-buildlink3 libraries from cmake



> Date: Sun, 12 Jan 2025 08:59:03 +0000
> From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
> 
> * archivers/kf6-karchive (ditto various other kf6-* packages)
> 
>   CMake Error at /tmp/pkgbuild/2024Q4/archivers/kf6-karchive/work/.buildlink/qt6/lib/cmake/Qt6CoreTools/Qt6CoreToolsTargets.cmake:197 (message):
>     The imported target "Qt6::syncqt" references the file
> 
>        "/tmp/pkgbuild/2024Q4/archivers/kf6-karchive/work/.buildlink/qt6/libexec/syncqt"
> 
>     but this file does not exist.  [...]

The attached patch to x11/qt6-qtbase/buildlink3.mk enables
kf6-karchive to build by adding qt6/bin/* and qt6/libexec/* to
BUILDLINK_FILES.qt6-qtbase.  I suspect it will resolve a lot of these
issues, so I'll kick off another bulk build with that change shortly.

Unfortunately, it is _wrong_ to do that, for reasons in another thread
(https://mail-index.netbsd.org/tech-pkg/2025/01/12/msg030374.html).
But I think I'd like to commit it in this patch series anyway as a
temporary workaround because:

(a) without TOOL_DEPENDS, these packages probably didn't cross-build
    anyway, so I doubt this change will cause a regression in that;

(b) the BUILDLINK_DEPMETHOD.foo=build issue isn't made any worse by
    this change; and

(c) I don't expect to have the buildlink3.mk -> tool.mk changes ready
    for a while, but the cmake change is getting close.

Later, we can add the appropriate TOOL_DEPENDS and populate the
qt6/bin and qt6/libexec directories some other way.

Perhaps it will also resolve some of the other issues.  x11/qt5-qtbase
probably needs the same treatment.
From 0741a5c01718db524222754e7eb36d732f8383d2 Mon Sep 17 00:00:00 2001
From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
Date: Sun, 12 Jan 2025 17:26:45 +0000
Subject: [PATCH] x11/qt6-qtbase: Expose qt6/bin/ and qt6/libexec/ to builds.

This is not right, but it mitigates a regression LOCALBASE is hidden
from cmake, and it can be done properly later along with everything
else that also abuses BUILDLINK_FILES for executables.
---
 x11/qt6-qtbase/buildlink3.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/x11/qt6-qtbase/buildlink3.mk b/x11/qt6-qtbase/buildlink3.mk
index e724119b6556..d6690dfb9ff5 100644
--- a/x11/qt6-qtbase/buildlink3.mk
+++ b/x11/qt6-qtbase/buildlink3.mk
@@ -13,6 +13,15 @@ BUILDLINK_INCDIRS.qt6-qtbase+=	qt6/include
 BUILDLINK_LIBDIRS.qt6-qtbase+=	qt6/lib
 BUILDLINK_LIBDIRS.qt6-qtbase+=	qt6/plugins
 
+# XXX This is wrong -- we should get build-time executables via
+# TOOL_DEPENDS, not via buildlink3.  See
+# https://mail-index.netbsd.org/tech-pkg/2025/01/12/msg030374.html for
+# details.  We do this anyway for now as an expedient workaround for a
+# bug unearthed by hiding files in LOCALBASE from cmake and limiting it
+# to buildlink3.
+BUILDLINK_FILES.qt6-qtbase+=	qt6/bin/*
+BUILDLINK_FILES.qt6-qtbase+=	qt6/libexec/*
+
 # \todo Fix duplication with prefix coded in Makefile.common
 QTDIR=		${BUILDLINK_PREFIX.qt6-qtbase}/qt6
 CMAKE_PREFIX_PATH+=	${QTDIR}


Home | Main Index | Thread Index | Old Index