]> git.lyx.org Git - lyx.git/blobdiff - CMakeLists.txt
ctests: log a fixed issue
[lyx.git] / CMakeLists.txt
index 02a1b3000db773d74ea4fdf8114472b846107f4f..f8ca0c10fdd39c5e699ac8bdca8cd490570f44da 100644 (file)
@@ -247,7 +247,49 @@ LYX_OPTION(DEPENDENCIES_DOWNLOAD "Download dependencies for MSVC 10" OFF MSVC)
 LYX_OPTION(DMG                   "Build as Mac bundle, needed for .dmg  (experimental) " OFF MAC)
 LYX_OPTION(COCOA                 "Use Cocoa on Mac" OFF MAC)
 
-# Try to get some informations from configure.ac
+# On Windows, download the dependencies if need be.
+if(LYX_DEPENDENCIES_DOWNLOAD)
+       message(STATUS)
+       # Do not check for bitness against CMAKE_SIZEOF_VOID_P, as it relates to the bitness of the CMake executable,
+       # not that of the compiler.
+       if(MSVC_VERSION GREATER_EQUAL 1920 AND "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" MATCHES "x64")
+               set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2019-deps-64)
+               set(deps_files lyx-windows-deps-msvc2019_64.zip)
+               set(deps_server http://ftp.lyx.org/pub/lyx/devel/win_deps)
+               set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/lyx-windows-deps-msvc2019-64)
+       elseif(MSVC_VERSION GREATER_EQUAL 1920)
+               set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2019-deps)
+               set(deps_files lyx-windows-deps-msvc2019_32.zip)
+               set(deps_server http://ftp.lyx.org/pub/lyx/devel/win_deps)
+               set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/lyx-windows-deps-msvc2019)
+       elseif(MSVC_VERSION GREATER_EQUAL 1900 AND NOT "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" MATCHES "x64")
+               set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2015-deps)
+               set(deps_files lyx-windows-deps-msvc2015.zip)
+               set(deps_server http://ftp.lyx.org/pub/lyx/devel/win_deps)
+               set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/lyx-windows-deps-msvc2015)
+       else()
+               message(FATAL_ERROR "error: no dependency package known for the selected MSVC version.")
+       endif()
+       message(STATUS "Using downloaded dependencies in ${LYX_DEPENDENCIES_DIR}")
+       foreach(it ${deps_files})
+               set(already_downloaded already_downloaded-NOTFOUND CACHE PATH "downloaded" FORCE)
+               find_file(already_downloaded ${it} "${LYX_DEPENDENCIES_DIR}/download")
+               if(NOT already_downloaded)
+                       message(STATUS "Downloading ${it} ...")
+                       file(DOWNLOAD ${deps_server}/${it} ${LYX_DEPENDENCIES_DIR}/download/${it} SHOW_PROGRESS STATUS status LOG log)
+                       list(GET status 0 status_code)
+                       list(GET status 1 status_string)
+                       if(NOT status_code EQUAL 0)
+                               file(REMOVE ${LYX_DEPENDENCIES_DIR}/${it})
+                               message(FATAL_ERROR "error: downloading '${it}' failed. status_code: ${status_code}, status_string: ${status_string}. \nLog: ${log} ")
+                       endif()
+                       execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${LYX_DEPENDENCIES_DIR}/download/${it}
+                                       WORKING_DIRECTORY ${LYX_DEPENDENCIES_DIR})
+               endif()
+       endforeach()
+endif()
+
+# Try to get some information from configure.ac
 include(LyXPaths)
 
 
@@ -309,40 +351,6 @@ else()
        set(LYX_MERGE_REBUILD OFF)
 endif()
 
-if(LYX_DEPENDENCIES_DOWNLOAD)
-       message(STATUS)
-       if(MSVC14)
-               set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2015-deps)
-               set(deps_files lyx-windows-deps-msvc2015.zip)
-               set(deps_server http://ftp.lyx.de/LyX-Windows-Deps)
-               set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/lyx-windows-deps-msvc2015)
-       elseif(MSVC10)
-               set(LYX_DEPENDENCIES_DIR ${TOP_BINARY_DIR}/msvc2010-deps)
-               set(deps_files lyx-windows-deps-msvc2010.zip)
-               set(deps_server http://ftp.lyx.de/LyX-Windows-Deps)
-               set(GNUWIN32_DIR ${LYX_DEPENDENCIES_DIR}/lyx-windows-deps-msvc2010)
-       else()
-               message(FATAL_ERROR "error: no dependency package known for the selected MSVC version.")
-       endif()
-    message(STATUS "Using downloaded dependencies in ${LYX_DEPENDENCIES_DIR}")
-       foreach(it ${deps_files})
-               set(already_downloaded already_downloaded-NOTFOUND CACHE PATH "downloaded" FORCE)
-               find_file(already_downloaded ${it} "${LYX_DEPENDENCIES_DIR}/download")
-               if(NOT already_downloaded)
-                       message(STATUS "Downloading ${it} ...")
-                       file(DOWNLOAD ${deps_server}/${it} ${LYX_DEPENDENCIES_DIR}/download/${it} SHOW_PROGRESS STATUS status LOG log)
-                       list(GET status 0 status_code)
-                       list(GET status 1 status_string)
-                       if(NOT status_code EQUAL 0)
-                               file(REMOVE ${LYX_DEPENDENCIES_DIR}/${it})
-                               message(FATAL_ERROR "error: downloading '${it}' failed. status_code: ${status_code}, status_string: ${status_string}. \nLog: ${log} ")
-                       endif()
-                       execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${LYX_DEPENDENCIES_DIR}/download/${it}
-                                     WORKING_DIRECTORY ${LYX_DEPENDENCIES_DIR})
-               endif()
-       endforeach()
-endif()
-
 message(STATUS)
 
 set(EXECUTABLE_OUTPUT_PATH  ${TOP_BINARY_DIR}/bin)
@@ -940,6 +948,8 @@ set(Lyx_Boost_Libraries)
 add_definitions(-DBOOST_USER_CONFIG=<config.h>)
 include_directories(${TOP_SRC_DIR}/3rdparty/boost)
 
+include_directories(${TOP_SRC_DIR}/3rdparty/nod)
+
 if(WIN32)
        if(LYX_CONSOLE)
                set(LYX_QTMAIN_LIBRARY)
@@ -1067,6 +1077,13 @@ if(MSVC)
                set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Zc:wchar_t-")
        endif()
 
+       if (MSVC_VERSION GREATER_EQUAL 1914)
+               # Ensure the __cplusplus macro is set to a sensible value.
+               set(CMAKE_CXX_FLAGS_DEBUG      "${CMAKE_CXX_FLAGS_DEBUG} /Zc:__cplusplus")
+               set(CMAKE_CXX_FLAGS_RELEASE    "${CMAKE_CXX_FLAGS_RELEASE} /Zc:__cplusplus")
+               set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Zc:__cplusplus")
+       endif()
+
        message(STATUS "----- Warning level      : ${CMAKE_CXX_WARNING_LEVEL}  ${WARNING_LEVEL_MESSAGE}")
        message(STATUS "----- Warnings as errors : ${MSVC_W_ERROR}")
        message(STATUS "----- Warnings disabled  : ${MSVC_W_DISABLE}")