]> git.lyx.org Git - lyx.git/blobdiff - CMakeLists.txt
Mark a number of coverity false positives.
[lyx.git] / CMakeLists.txt
index b0e3fe17e9b34a3f67d4050bca6d3962ce86c565..1a52accec9286be40096d41271ba2aab2a7cdb03 100644 (file)
@@ -260,17 +260,28 @@ if(NOT CXX11COMPILER_FOUND)
 endif()
 set(LYX_GCC11_MODE)
 if(UNIX OR MINGW)
-       execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
-       message(STATUS "Using GCC version ${GCC_VERSION}")
-       if(GCC_VERSION VERSION_LESS 4.9)
-               if(GCC_VERSION VERSION_LESS 4.3)
-                       message(FATAL_ERROR "gcc >= 4.3 is required.")
-               endif()
-               # <regex> in gcc is unusable in versions less than 4.9.0
-               # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
-               set(LYX_USE_STD_REGEX 0)
+       if (CMAKE_CXX_COMPILER_ID MATCHES "^[cC]lang$")
+         # ignore the GCC_VERSION for clang
+         # and use the resulting CXX11_STD_REGEX found in FindCXX11Compiler.cmake
+         message(STATUS "Using clang")
+         if(CXX11_STD_REGEX)
+           set(LYX_USE_STD_REGEX 1)
+         else()
+           set(LYX_USE_STD_REGEX 0)
+         endif()
        else()
-               set(LYX_USE_STD_REGEX 1)
+         execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+         message(STATUS "Using GCC version ${GCC_VERSION}")
+         if(GCC_VERSION VERSION_LESS 4.9)
+                 if(GCC_VERSION VERSION_LESS 4.3)
+                         message(FATAL_ERROR "gcc >= 4.3 is required.")
+                 endif()
+                 # <regex> in gcc is unusable in versions less than 4.9.0
+                 # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
+                 set(LYX_USE_STD_REGEX 0)
+         else()
+                 set(LYX_USE_STD_REGEX 1)
+         endif()
        endif()
        set(LYX_GCC11_MODE "${CXX11_FLAG}")
 else()
@@ -430,7 +441,13 @@ if(LYX_INSTALL_PREFIX)
 endif()
 set(LYX_INSTALL_PREFIX ${LYX_INSTALL_PREFIX} CACHE PATH "LyX user's choice install prefix" FORCE)
 
-string(REGEX REPLACE "/lyx${LYX_INSTALL_SUFFIX}$" "/share" SYSTEM_DATADIR ${CMAKE_INSTALL_PREFIX})
+if(UNIX)
+  set(SYSTEM_DATADIR "${CMAKE_INSTALL_PREFIX}/share")
+elseif(CMAKE_INSTALL_PREFIX MATCHES "/lyx${LYX_INSTALL_SUFFIX}$")
+  string(REGEX REPLACE "/lyx${LYX_INSTALL_SUFFIX}$" "/share" SYSTEM_DATADIR ${CMAKE_INSTALL_PREFIX})
+else()
+  set(SYSTEM_DATADIR "${CMAKE_INSTALL_PREFIX}")
+endif()
 
 if(LYX_PACKAGE_SUFFIX)
        set(PACKAGE ${PACKAGE_BASE}${LYX_INSTALL_SUFFIX})
@@ -568,7 +585,6 @@ if(LYX_XMINGW)
        list(APPEND CMAKE_FIND_ROOT_PATH ${GNUWIN32_DIR})
 endif()
 
-set(QPA_XCB)
 if(LYX_USE_QT MATCHES "QT5")
        # set QPA_XCB if QT uses X11
        find_package(Qt5Core REQUIRED)
@@ -578,9 +594,6 @@ if(LYX_USE_QT MATCHES "QT5")
                        find_package(Qt5MacExtras REQUIRED)
                endif()
                find_package(Qt5X11Extras QUIET)
-               if(Qt5X11Extras_FOUND)
-                 set(QPA_XCB 1)
-               endif()
                find_package(Qt5WinExtras QUIET)
                set(QTVERSION ${Qt5Core_VERSION})
                macro (qt_use_modules)
@@ -705,10 +718,8 @@ endif()
 
 if(LYX_EXTERNAL_BOOST)
        message(STATUS "Searching for boost")
-       if(LYX_USE_STD_REGEX)
-               find_package(Boost COMPONENTS signals)
-       else()
-               find_package(Boost COMPONENTS signals regex)
+       if(NOT LYX_USE_STD_REGEX)
+               find_package(Boost COMPONENTS regex)
        endif()
        if(Boost_FOUND)
                message(STATUS "Boost found")
@@ -725,13 +736,10 @@ if(LYX_EXTERNAL_BOOST)
                message(FATAL_ERROR "Boost not found" ${Boost_ERROR_REASON})
        endif()
 else()
-       if(LYX_USE_STD_REGEX)
-               set(Lyx_Boost_Libraries boost_signals)
-       else()
-               set(Lyx_Boost_Libraries boost_signals boost_regex)
+       if(NOT LYX_USE_STD_REGEX)
+               set(Lyx_Boost_Libraries boost_regex)
        endif()
        add_definitions(-DBOOST_USER_CONFIG="<config.h>")
-       add_definitions(-DBOOST_SIGNALS_NO_DEPRECATION_WARNING=1)
        include_directories(${TOP_SRC_DIR}/3rdparty/boost)
        add_subdirectory(3rdparty/boost "${TOP_BINARY_DIR}/3rdparty/boost")
 endif()
@@ -904,6 +912,11 @@ else()
        configure_file(${LYX_CMAKE_DIR}/configCompiler.h.cmake ${TOP_BINARY_DIR}/configCompiler.h)
 endif()
 
+set(QPA_XCB)
+if(Qt5X11Extras_FOUND AND QT_USES_X11)
+  # QPA_XCB is only valid if QT5+X11
+  set(QPA_XCB 1)
+endif()
 configure_file(${LYX_CMAKE_DIR}/config.h.cmake ${TOP_BINARY_DIR}/config.h)
 
 if(QTVERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*")