On Fri Jun 03, 2022 at 06:07:45PM +0200, Caspar Schutijser wrote:
> Hi,
> 
> On a snapshot of two weeks old, the below command sequence (to compile
> trojita outside the ports tree) succeeds successfully. However, on a
> machine updated to today's snapshot, this fails with the error message
> shown below. I assume it has something to do with the update to
> CMake 3.23 (and perhaps specifically with the
> "Fix build with CMake 3.23" commit on 2022-05-28) but I don't know for
> sure. Do you know what's going on?
> 
> Thanks,
> Caspar
> 
> 
> $ cd /tmp
> $ git clone https://invent.kde.org/pim/trojita
> $ cd trojita
> $ echo "set(CMAKE_PREFIX_PATH /usr/local/lib/qt5/cmake)" >new
> $ cat CMakeLists.txt >>new
> $ mv new CMakeLists.txt
> $ mkdir _build
> $ cd _build
> $ cmake ..
> [snip]
> -- Configuring done
> CMake Error at /usr/local/lib/qt5/cmake/Qt5WebKit/WebKitTargets.cmake:67 
> (set_target_properties):
>   The link interface of target "Qt5::WebCore" contains:
> 
>     Qt5::Sensors
> 
>   but the target was not found.  Possible reasons include:
> 
>     * There is a typo in the target name.
>     * A find_package call is missing for an IMPORTED target.
>     * An ALIAS target is missing.
> 
> Call Stack (most recent call first):
>   /usr/local/lib/qt5/cmake/Qt5WebKit/Qt5WebKitConfig.cmake:87 (include)
>   /usr/local/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 
> (find_package)
>   /usr/local/lib/qt5/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake:83 
> (find_dependency)
>   CMakeLists.txt:52 (find_package)
> 
> 
> CMake Error at /usr/local/lib/qt5/cmake/Qt5WebKit/WebKitTargets.cmake:83 
> (set_target_properties):
>   The link interface of target "Qt5::WebKit2" contains:
> 
>     Qt5::Positioning
> 
>   but the target was not found.  Possible reasons include:
> 
>     * There is a typo in the target name.
>     * A find_package call is missing for an IMPORTED target.
>     * An ALIAS target is missing.
> 
> Call Stack (most recent call first):
>   /usr/local/lib/qt5/cmake/Qt5WebKit/Qt5WebKitConfig.cmake:87 (include)
>   /usr/local/share/cmake/Modules/CMakeFindDependencyMacro.cmake:47 
> (find_package)
>   /usr/local/lib/qt5/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake:83 
> (find_dependency)
>   CMakeLists.txt:52 (find_package)
> 
> 
> -- Generating done
> CMake Generate step failed.  Build files cannot be regenerated correctly.

I think I forgot about this patch.

This is a nasty Qt5WebKit issue. Qt5::WebKit2 depends on Sensors,
Positioning, Quick and WebChannel but it is not defined in the WebKit2
cmake module as a dependency (/usr/local/lib/qt5/cmake/Qt5WebKit/*).

I have also not found a solution to fix this in x11/qt5/qtwebkit (ugly
deadbeef).

This is the "workaround" we use in other cases.

OK?

Index: Makefile
===================================================================
RCS file: /cvs/ports/mail/trojita/Makefile,v
retrieving revision 1.39
diff -u -p -u -p -r1.39 Makefile
--- Makefile    28 May 2022 06:20:02 -0000      1.39
+++ Makefile    4 Jun 2022 07:28:57 -0000
@@ -3,7 +3,7 @@ USE_WXNEEDED =  Yes
 COMMENT =              fast Qt IMAP e-mail client
 
 DISTNAME =             trojita-0.7
-REVISION =             15
+REVISION =             16
 
 SHARED_LIBS =          trojita_plugins 2.0 # 2.0
 
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: /cvs/ports/mail/trojita/patches/patch-CMakeLists_txt,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-CMakeLists_txt
--- patches/patch-CMakeLists_txt        11 Mar 2022 19:35:02 -0000      1.4
+++ patches/patch-CMakeLists_txt        4 Jun 2022 07:28:57 -0000
@@ -12,7 +12,18 @@ Index: CMakeLists.txt
  
  if(WIN32)
      trojita_option(WITH_NSIS "Build Windows NSIS installer" AUTO 
"WITH_DESKTOP")
-@@ -94,8 +96,13 @@ trojita_plugin_option(WITH_QTKEYCHAIN_PLUGIN "Build Qt
+@@ -81,6 +83,10 @@ find_package(Qt5WebKitWidgets REQUIRED)
+ find_package(Qt5Widgets REQUIRED)
+ find_package(Qt5LinguistTools)
+ find_package(Qt5Svg REQUIRED)
++find_package(Qt5Sensors REQUIRED)
++find_package(Qt5Positioning REQUIRED)
++find_package(Qt5Quick REQUIRED)
++find_package(Qt5WebChannel REQUIRED)
+ trojita_find_package(Qt5DBus "" "http://qt-project.org"; "Qt5 D-Bus support" 
"Needed for IPC and for some plugins" WITH_DBUS)
+ trojita_find_package(Qt5Test "" "http://qt-project.org"; "Qt5 QTest library" 
"Needed for automated tests" WITH_TESTS)
+ if(Qt5LinguistTools_FOUND)
+@@ -94,8 +100,13 @@ trojita_plugin_option(WITH_QTKEYCHAIN_PLUGIN "Build Qt
  trojita_find_package(Git "" "" "" "")
  
  trojita_find_package(Mimetic "" 
"http://www.codesink.org/mimetic_mime_library.html"; "C++ MIME Library" 
"Required for client-side MIME parsing" WITH_MIMETIC)
@@ -28,7 +39,7 @@ Index: CMakeLists.txt
  
  if(WIN32)
      trojita_find_package(MakeNSIS "" "http://nsis.sourceforge.net"; "Nullsoft 
Scriptable Install System" "Needed for building Windows installer" WITH_NSIS)
-@@ -154,14 +161,6 @@ else()
+@@ -154,14 +165,6 @@ else()
      set(CMAKE_CXX_FLAGS_DEBUG "-Werror ${CMAKE_CXX_FLAGS_DEBUG}")
      # Also see CMP0043...
  
@@ -43,7 +54,7 @@ Index: CMakeLists.txt
      # Build warnings are useful tools (and Trojita should be warning-free 
anyway), enable them on all
      # configurations. They are warnings, not errors.
      set(CMAKE_CXX_FLAGS "-Wall -Wsign-compare ${CMAKE_CXX_FLAGS}")
-@@ -207,7 +206,7 @@ else()
+@@ -207,7 +210,7 @@ else()
    set(TROJITA_HAVE_MIMETIC False)
  endif()
  
@@ -52,7 +63,7 @@ Index: CMakeLists.txt
    set(TROJITA_HAVE_GPGMEPP True)
  else()
    set(TROJITA_HAVE_GPGMEPP False)
-@@ -321,12 +320,10 @@ if(WITH_MIMETIC)
+@@ -321,12 +324,10 @@ if(WITH_MIMETIC)
      )
  endif()
  if(WITH_CRYPTO_MESSAGES)
@@ -65,7 +76,7 @@ Index: CMakeLists.txt
  endif()
  
  if(WITH_ZLIB)
-@@ -622,16 +619,20 @@ set_property(TARGET Cryptography APPEND PROPERTY COMPI
+@@ -622,16 +623,20 @@ set_property(TARGET Cryptography APPEND PROPERTY COMPI
  target_link_libraries(Cryptography Common Imap)
  if(WITH_MIMETIC)
      target_link_libraries(Cryptography ${MIMETIC_LIBRARIES})
@@ -93,7 +104,7 @@ Index: CMakeLists.txt
  endif()
  
  ## ClearText password plugin
-@@ -786,32 +787,6 @@ if(WITH_TESTS)
+@@ -786,32 +791,6 @@ if(WITH_TESTS)
      trojita_test(Imap Imap_Offline)
      trojita_test(Imap Imap_CopyAndFlagOperations)
      trojita_test(Cryptography Cryptography_MessageModel)

Reply via email to