From 2c9a938c5b69e6d6fb88cf33f6ad32394b9966a2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 6 Feb 2022 18:43:50 +0100 Subject: [PATCH] devel/qt5-qdoc: fix CMake Config file for doctools We patch Qt to install into $LOCALBASE/lib/qt5, but the CMake bits of Qt go into $LOCALBASE; this mismatch of installation- prefixes means that the CMake Config files are generated with an incorrect number of "../" components, and end up looking in the wrong prefix. Symptom is this: The package "Qt5DocTools" references the file "/usr/lib/qt5/bin/qdoc" The logic to use the correct path is there, but not selected when writing out the Config file. Delete all the ones we don't want, rather than letting qmake / whatever text-substitution tool is in the build do it. Suggested by: tcberner --- devel/qt5-qdoc/Makefile | 1 + .../patch-src_qdoc_Qt5DocToolsConfig.cmake.in | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 devel/qt5-qdoc/files/patch-src_qdoc_Qt5DocToolsConfig.cmake.in diff --git a/devel/qt5-qdoc/Makefile b/devel/qt5-qdoc/Makefile index f954b602e778..dd9057daeb82 100644 --- a/devel/qt5-qdoc/Makefile +++ b/devel/qt5-qdoc/Makefile @@ -1,5 +1,6 @@ PORTNAME= qdoc PORTVERSION= ${QT5_VERSION}${QT5_KDE_PATCH} +PORTREVISION= 1 CATEGORIES= devel textproc PKGNAMEPREFIX= qt5- diff --git a/devel/qt5-qdoc/files/patch-src_qdoc_Qt5DocToolsConfig.cmake.in b/devel/qt5-qdoc/files/patch-src_qdoc_Qt5DocToolsConfig.cmake.in new file mode 100644 index 000000000000..2f3e727b074c --- /dev/null +++ b/devel/qt5-qdoc/files/patch-src_qdoc_Qt5DocToolsConfig.cmake.in @@ -0,0 +1,32 @@ +--- src/qdoc/Qt5DocToolsConfig.cmake.in.orig 2022-02-06 16:38:55 UTC ++++ src/qdoc/Qt5DocToolsConfig.cmake.in +@@ -2,29 +2,7 @@ if (CMAKE_VERSION VERSION_LESS 2.8.3) + message(FATAL_ERROR \"Qt 5 requires at least CMake version 2.8.3\") + endif() + +-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND) +-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + set(_qt5_qdoctools_install_prefix \"$$[QT_INSTALL_PREFIX]\") +-!!ELSE +-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH) +-# Use original install prefix when loaded through a +-# cross-prefix symbolic link such as /lib -> /usr/lib. +-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH) +-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5DocTools\" REALPATH) +-if(_realCurr STREQUAL _realOrig) +- get_filename_component(_qt5_qdoctools_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE) +-else() +- get_filename_component(_qt5_qdoctools_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) +-endif() +-unset(_realOrig) +-unset(_realCurr) +-unset(_IMPORT_PREFIX) +-!!ENDIF +-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +-get_filename_component(_qt5_qdoctools_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE) +-!!ELSE +-set(_qt5_qdoctools_install_prefix \"$$[QT_INSTALL_PREFIX]\") +-!!ENDIF + + macro(_qt5_DocTools_check_file_exists file) + if(NOT EXISTS \"${file}\" )