Adapt CMake logic for finding lconvert in newer Qt5
[quassel.git] / CMakeLists.txt
index d6b0d2e..a9a32ac 100644 (file)
@@ -246,16 +246,23 @@ if (USE_QT5)
                            DESCRIPTION "contains tools for handling translation files"
                            PURPOSE "Required for having translations"
     )
-    # Qt5 does not define a target for lconvert, so we need to find it ourselves
+    # Some Qt5 versions do not define a target for lconvert, so we need to find it ourselves
     if (Qt5LinguistTools_FOUND)
         if (NOT TARGET Qt5::lconvert AND TARGET Qt5::lrelease)
             get_target_property(_lrelease_location Qt5::lrelease LOCATION)
             get_filename_component(_lrelease_path ${_lrelease_location} PATH)
             find_program(QT_LCONVERT_EXECUTABLE NAMES lconvert-qt5 lconvert PATHS ${_lrelease_path} NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+        elseif(TARGET Qt5::lconvert AND NOT Qt5_LCONVERT_EXECUTABLE)
+            # Newer Qt5 versions define the target, but not the Qt5_LCONVERT_EXECUTABLE variable for some reason
+            get_target_property(QT_LCONVERT_EXECUTABLE Qt5::lconvert LOCATION)
         endif()
+
         # Compatibility with the Qt4 variables
-        set (QT_LRELEASE_EXECUTABLE ${Qt5_LRELEASE_EXECUTABLE})
-        set (QT_LUPDATE_EXECUTABLE ${Qt5_LUPDATE_EXECUTABLE})
+        set(QT_LRELEASE_EXECUTABLE ${Qt5_LRELEASE_EXECUTABLE})
+        set(QT_LUPDATE_EXECUTABLE ${Qt5_LUPDATE_EXECUTABLE})
+        if (Qt5_LCONVERT_EXECUTABLE)
+            set(QT_LCONVERT_EXECUTABLE ${Qt5_LCONVERT_EXECUTABLE})
+        endif()
     endif()
 
 else(USE_QT5)