]> git.lyx.org Git - lyx.git/blobdiff - CMakeLists.txt
Update sk.po
[lyx.git] / CMakeLists.txt
index ecebdc91bc1802c973e918ffbddb6d98129a7645..146556c9027159e9e364abefba304c472d1c1936 100644 (file)
@@ -219,7 +219,7 @@ else()
 endif()
 LYX_COMBO(DEBUG_SANITIZE    "Use sanitize check" NONE ADDRESS UNSPECIFIED)
 #LYX_COMBO(USE_FILEDIALOG    "Use native or QT file dialog" QT NATIVE)
-LYX_COMBO(USE_QT            "Use Qt version as frontend" AUTO QT4 QT5 QT6)
+LYX_COMBO(USE_QT            "Use Qt version as frontend" AUTO QT5 QT6)
 LYX_COMBO(USE_IPO           "Interprocedural optimization" OFF AUTO ON)
 #LYX_OPTION(3RDPARTY_BUILD   "Build 3rdparty libs" OFF ALL)
 LYX_OPTION(DISABLE_CALLSTACK_PRINTING "do not print a callstack when crashing" OFF ALL)
@@ -235,6 +235,7 @@ LYX_OPTION(EXTERNAL_BOOST       "Use external boost" ${DefaultExternalLibs} GCC)
 LYX_OPTION(PROGRAM_SUFFIX       "Append version suffix to binaries" ON GCC)
 LYX_OPTION(DEBUG_GLIBC          "Enable libstdc++ debug mode" OFF GCC)
 LYX_OPTION(DEBUG_GLIBC_PEDANTIC "Enable libstdc++ pedantic debug mode" OFF GCC)
+LYX_OPTION(DEBUG_GLIBC_ASSERTIONS "Enable stdlib-assertions debug mode" OFF GCC)
 LYX_OPTION(STDLIB_DEBUG         "Use debug stdlib" ${DefaultLyxStdlibDebug} GCC)
 
 # MSVC specific
@@ -659,6 +660,26 @@ else()
        set(LYX_DEBUG ON)
 endif()
 
+set(min_qt5_version "5.6")
+if(LYX_USE_QT MATCHES "AUTO")
+       # try qt6 first
+       find_package(Qt6Core CONFIG QUIET)
+       if (Qt6Core_Found)
+               set(LYX_USE_QT "QT6" CACHE STRING "Valid qt version" FORCE)
+               message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
+       else()
+               find_package(Qt5Core CONFIG QUIET)
+               if(Qt5Core_FOUND)
+                       set(LYX_USE_QT "QT5" CACHE STRING "Valid qt version" FORCE)
+                       message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
+                       if(Qt5Core_VERSION VERSION_LESS ${min_qt5_version})
+                               message(FATAL_ERROR "No appropriate QT-version found")
+                       endif()
+               else()
+                       message(FATAL_ERROR "No appropriate QT-version found")
+               endif()
+       endif()
+endif()
 
 # When shared libs are supported enable this option
 #LYX_OPTION(SHARED_LIBRARIES "Build shared libraries" OFF ALL)
@@ -714,21 +735,26 @@ else()
        # check_cxx_source_compiles("..." HAVE_DEF_MAKE_UNIQUE)
        include(CheckCXXCompilerFlag)
        unset(CHECK_WNODEPRECATEDCOPY_FLAG CACHE)
-       CHECK_CXX_COMPILER_FLAG("-Wno-deprecated-copy" CHECK_WNODEPRECATEDCOPY_FLAG)
+       CHECK_CXX_COMPILER_FLAG("-Wdeprecated-copy" CHECK_WNODEPRECATEDCOPY_FLAG)
        if(${CHECK_WNODEPRECATEDCOPY_FLAG})
                set(LYX_CXX_FLAGS "-Wall -Wextra -Wno-deprecated-copy ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
        else()
                set(LYX_CXX_FLAGS "-Wall -Wextra ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
        endif()
-       if(LYX_STDLIB_DEBUG)
-         set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
-        else()
-          if(LYX_DEBUG_GLIBC)
-            set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG")
-          endif()
-          if(LYX_DEBUG_GLIBC_PEDANTIC)
-            set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG_PEDANTIC")
-          endif()
+       message(STATUS "LYX_USE_QT = ${LYX_USE_QT}")
+       if(LYX_USE_QT MATCHES "QT6")
+         if (LYX_DEBUG_GLIBC OR LYX_DEBUG_GLIBC_PEDANTIC)
+           message(WARNING "Compiling LyX with stdlib-debug and Qt6 library may lead to crashes. Consider dropping -DLYX_DEBUG_GLIBC=ON and -DLYX_DEBUG_GLIBC_PEDANTIC=ON")
+         endif()
+       endif()
+       if(LYX_STDLIB_DEBUG OR LYX_DEBUG_GLIBC_ASSERTIONS)
+         set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_ASSERTIONS")
+       endif()
+       if(LYX_DEBUG_GLIBC)
+         set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG")
+       endif()
+       if(LYX_DEBUG_GLIBC_PEDANTIC)
+         set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG_PEDANTIC")
        endif()
        set(CMAKE_CXX_FLAGS       "${LYX_CXX_FLAGS} -fno-strict-aliasing " CACHE STRING "Set CXX flags" FORCE)
        set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3 -D_DEBUG" CACHE STRING "Set debug flags" FORCE)
@@ -751,30 +777,6 @@ if(LYX_XMINGW)
        list(APPEND CMAKE_FIND_ROOT_PATH ${GNUWIN32_DIR})
 endif()
 
-set(min_qt5_version "5.6")
-if(LYX_USE_QT MATCHES "AUTO")
-       # try qt6 first
-       find_package(Qt6Core CONFIG QUIET)
-       if (Qt6Core_Found)
-               set(LYX_USE_QT "QT6" CACHE STRING "Valid qt version" FORCE)
-               message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
-       else()
-               find_package(Qt5Core CONFIG QUIET)
-               if(Qt5Core_FOUND)
-                       set(LYX_USE_QT "QT5" CACHE STRING "Valid qt version" FORCE)
-                       message(STATUS "Qt5Core_VERSION = ${Qt5Core_VERSION}")
-                       if(Qt5Core_VERSION VERSION_LESS ${min_qt5_version})
-                               find_package(Qt4 "4.5.0" QUIET)
-                               if(QT4_FOUND)
-                                       set(LYX_USE_QT "QT4" CACHE STRING "Valid qt version" FORCE)
-                               endif()
-                       endif()
-               else()
-                       set(LYX_USE_QT "QT4" CACHE STRING "Valid qt version" FORCE)
-               endif()
-       endif()
-endif()
-
 set(QtCore5CompatLibrary)
 set(QtCore5CompatModule)
 if(LYX_USE_QT MATCHES "QT6|QT5")
@@ -811,8 +813,8 @@ if(LYX_USE_QT MATCHES "QT6|QT5")
                set(QTVERSION ${${QtVal}Core_VERSION})
                if (QTVERSION VERSION_LESS ${min_qt5_version})
                        message(STATUS "QTVERSION = \"${QTVERSION}\"")
-                       message(STATUS "This version is not recommended, try either option -DLYX_USE_QT=QT4 or")
-                       message(STATUS "install QT-Version >= \"${min_qt5_version}\"")
+                       message(STATUS "This version is not recommended,")
+                       message(STATUS "please install QT-Version >= \"${min_qt5_version}\"")
                        # see thread in lyx-devel list
                        # From: Jean-Pierre Chrétien <jeanpierre.chretien@free.fr>
                        # Date 11.03.2017
@@ -832,29 +834,18 @@ if(LYX_USE_QT MATCHES "QT6|QT5")
                if (LYX_USE_QT MATCHES "QT6")
                        get_target_property(QT_MOC_EXECUTABLE Qt6::moc LOCATION)
                        find_package(Qt6 COMPONENTS Core5Compat REQUIRED)
+                       # We don't know why QtZlib is included, and ideally we
+                       # would have a different fix than relying on this
+                       # variable (which as "Private" in the name indicates,
+                       # it might be a fragile workaround).
+                       # See ML discussion here:
+                       # https://www.mail-archive.com/search?l=mid&q=CAGU9VOqpkngYBumnNh%3DcuzQ585GsS7TJbhHa903nJSfy-davRg%40mail.gmail.com
+                       list(REMOVE_ITEM Qt6Core5Compat_INCLUDE_DIRS ${_Qt6ZlibPrivate_OWN_INCLUDE_DIRS})
                        include_directories(${Qt6Core5Compat_INCLUDE_DIRS})
                        set(QtCore5CompatLibrary Qt6::Core5Compat)
                        set(QtCore5CompatModule Core5Compat)
                endif()
        endif()
-elseif(LYX_USE_QT MATCHES "QT4")
-       if(LYX_XMINGW)
-               set(QT_MINGW_DIR ${LYX_QT4} CACHE PATH "Qt for Mingw" FORCE)
-               list(APPEND CMAKE_FIND_ROOT_PATH ${QT_MINGW_DIR} ${GNUWIN32_DIR})
-       endif()
-       find_package(Qt4 "4.5.0" REQUIRED)
-       macro (qt_use_modules)
-       endmacro()
-       macro (qt_add_resources)
-               qt4_add_resources(${ARGN})
-       endmacro()
-       macro (qt_wrap_uifiles)
-               qt4_wrap_ui(${ARGN})
-       endmacro()
-        set(LYX_QTMAIN_LIBRARY ${QT_QTSVG_LIBRARY})
-       if(WIN32)
-               list(APPEND LYX_QTMAIN_LIBRARY ${QT_QTMAIN_LIBRARIES})
-       endif()
 else()
   message(FATAL_ERROR "Unhandled value for LYX_USE_QT (${LYX_USE_QT})")
 endif()
@@ -1194,7 +1185,7 @@ unset(opts)
 unset(tmp_vi)
 
 if(QTVERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*")
-       MATH(EXPR QT4_VERSION "(${CMAKE_MATCH_1}<<16)|(${CMAKE_MATCH_2}<<8)|${CMAKE_MATCH_3}")
+       MATH(EXPR QTx_VERSION "(${CMAKE_MATCH_1}<<16)|(${CMAKE_MATCH_2}<<8)|${CMAKE_MATCH_3}")
 endif()