X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=CMakeLists.txt;h=910097215a404e0b442a3cc6e48edfc477194a42;hb=3a4c4605e9cc06f700cdfeb43f3a91592adea99a;hp=f9a5b66a26ee9aa6ef7a8da0ac8040cfcd6cbb87;hpb=11386f4601bbe1c1e5c14c0225993a36dbd849d5;p=lyx.git diff --git a/CMakeLists.txt b/CMakeLists.txt index f9a5b66a26..910097215a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # Copyright (c) 2006-2011 Peter Kümmel, # Copyright (c) 2008-2011 Kornel Benko, -cmake_minimum_required(VERSION 2.6.4) +cmake_minimum_required(VERSION 3.1.0) set(LYX_PROJECT LyX) @@ -25,6 +25,12 @@ set(TOP_SCRIPT_PATH "${TOP_CMAKE_PATH}/scripts") set(CMAKE_MODULE_PATH "${TOP_MODULE_PATH}") +# RKH +if(WIN32 AND MINGW) + set(Qt5Core_DIR "/usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Core/") + set(GNUWIN32_DIR "/cvs/lyx/lyx-dependencies/lyx-windows-deps-msvc2010/") +endif() + set(CMAKE_PROJECT_NAME ${LYX_PROJECT}) message(STATUS) @@ -47,6 +53,10 @@ if(COMMAND cmake_policy) # COMPILE_DEFINITIONS are not used yet. Enable new behavior. cmake_policy(SET CMP0043 NEW) endif() + cmake_policy(SET CMP0020 NEW) + if(POLICY CMP0075) + cmake_policy(SET CMP0075 OLD) + endif() endif() set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) @@ -260,7 +270,7 @@ if(NOT CXX11COMPILER_FOUND) endif() set(LYX_GCC11_MODE) if(UNIX OR MINGW) - if (CMAKE_CXX_COMPILER_ID MATCHES "^[cC]lang$") + if (CMAKE_CXX_COMPILER_ID MATCHES "^([cC]lang|AppleClang)$") # ignore the GCC_VERSION for clang # and use the resulting CXX11_STD_REGEX found in FindCXX11Compiler.cmake message(STATUS "Using clang") @@ -300,7 +310,12 @@ include(LyXPaths) file(STRINGS "${TOP_SRC_DIR}/configure.ac" _config_lines) if(WIN32) - set(CMAKE_PREFIX_PATH Specify-path-to-Qt CACHE PATH "Used Qt version") + # RKH + if (MINGW) + set(CMAKE_PREFIX_PATH "/usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Core/" "/usr/i686-w64-mingw32/sys-root/mingw/lib/cmake/Qt5Widgets/") + else() + set(CMAKE_PREFIX_PATH Specify-path-to-Qt CACHE PATH "Used Qt version") + endif() if(MSVC) set(LYX_3RDPARTY_BUILD ON CACHE BOOL "Build 3rdparty libraries" FORCE) endif() @@ -461,12 +476,16 @@ else() set(SYSTEM_DATADIR "${CMAKE_INSTALL_PREFIX}") endif() -if(CMAKE_COMPILER_IS_GNUCXX) - message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}") - set(suffixing ${LYX_PROGRAM_SUFFIX}) -else() +if(NOT CMAKE_COMPILER_IS_GNUCXX) # Not a GCC compiler, programs do not have a suffix set(suffixing ${LYX_PACKAGE_SUFFIX}) +elseif(WIN32 AND MINGW) + # We want to use a suffix for the package in this case, + # even if not for the program + set(suffixing ${LYX_PACKAGE_SUFFIX}) +else() + message(STATUS "CMAKE_COMPILER_IS_GNUCXX = ${CMAKE_COMPILER_IS_GNUCXX}") + set(suffixing ${LYX_PROGRAM_SUFFIX}) endif() # The define PACKAGE below allows lyx-executable to find its default configuration files @@ -475,7 +494,6 @@ endif() # get_default_user_support_dir() # relative_system_support_dir() # in src/support/Package.cpp -# if(suffixing) set(PACKAGE ${PACKAGE_BASE}${LYX_INSTALL_SUFFIX}) else() @@ -527,13 +545,15 @@ else() endif() mark_as_advanced(LYX_MAN_DIR) -if(LYX_INSTALL AND WIN32) - message(STATUS "Configuring NSIS files") - configure_file(development/Win32/packaging/installer/lyx.nsi.cmake ${CMAKE_BINARY_DIR}/installer/lyx.nsi @ONLY) - configure_file(development/Win32/packaging/installer/settings.nsh.cmake ${CMAKE_BINARY_DIR}/installer/settings-cmake.nsh @ONLY) - configure_file(development/Win32/packaging/installer/include/declarations.nsh.cmake ${CMAKE_BINARY_DIR}/installer/declarations-cmake.nsh @ONLY) - message(STATUS "NSIS files are created in ${CMAKE_BINARY_DIR}/installer") -endif() +# The Win installer cannot be built by Cmake because one needs to install plugins for NSIS +# see the Readme.txt of the installer +#if(LYX_INSTALL AND WIN32) +# message(STATUS "Configuring NSIS files") +# configure_file(development/Win32/packaging/installer/lyx.nsi.cmake ${CMAKE_BINARY_DIR}/installer/lyx.nsi @ONLY) +# configure_file(development/Win32/packaging/installer/settings.nsh.cmake ${CMAKE_BINARY_DIR}/installer/settings-cmake.nsh @ONLY) +# configure_file(development/Win32/packaging/installer/include/declarations.nsh.cmake ${CMAKE_BINARY_DIR}/installer/declarations-cmake.nsh @ONLY) +# message(STATUS "NSIS files are created in ${CMAKE_BINARY_DIR}/installer") +#endif() if(NOT GROUP_CODE) #set(GROUP_CODE "The Golden Code") @@ -623,7 +643,7 @@ endif() set(min_qt5_version "5.6") if(LYX_USE_QT MATCHES "AUTO") # try qt5 first - find_package(Qt5Core QUIET) + 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}") @@ -639,14 +659,14 @@ if(LYX_USE_QT MATCHES "AUTO") endif() if(LYX_USE_QT MATCHES "QT5") # set QPA_XCB if QT uses X11 - find_package(Qt5Core REQUIRED) + find_package(Qt5Core CONFIG REQUIRED) if (Qt5Core_FOUND) - find_package(Qt5Widgets REQUIRED) + find_package(Qt5Widgets CONFIG REQUIRED) if(APPLE) - find_package(Qt5MacExtras REQUIRED) + find_package(Qt5MacExtras CONFIG REQUIRED) endif() - find_package(Qt5X11Extras QUIET) - find_package(Qt5WinExtras QUIET) + find_package(Qt5X11Extras CONFIG QUIET) + find_package(Qt5WinExtras CONFIG QUIET) set(QTVERSION ${Qt5Core_VERSION}) if (QTVERSION VERSION_LESS ${min_qt5_version}) message(STATUS "QTVERSION = \"${QTVERSION}\"") @@ -658,8 +678,11 @@ if(LYX_USE_QT MATCHES "QT5") # Subject: cmake compilation error #message(FATAL_ERROR "Wrong Qt-Version") endif() - macro (qt_use_modules) - qt5_use_modules(${ARGN}) + macro (qt_use_modules lyxtarget) + foreach (_tg ${ARGN}) + find_package(Qt5${_tg} CONFIG REQUIRED) + target_link_libraries(${lyxtarget} Qt5::${_tg}) + endforeach() endmacro() macro (qt_add_resources) qt5_add_resources(${ARGN}) @@ -696,7 +719,7 @@ endif() find_package(Magic) if(Magic_FOUND) - set(HAVE_MAGIC_H 1) + set(HAVE_MAGIC_H 1) endif() include_directories(${TOP_BINARY_DIR} ${TOP_SRC_DIR}/src) @@ -784,17 +807,23 @@ if(LYX_NLS) endif() endif() -if(LYX_EXTERNAL_ICONV) - find_package(ICONV REQUIRED) +# RKH +if(WIN32 AND MINGW) + find_package(ICONV REQUIRED) + find_package(ZLIB REQUIRED) else() - add_subdirectory(3rdparty/libiconv) - set(HAVE_ICONV_CONST 1) -endif() + if(LYX_EXTERNAL_ICONV) + find_package(ICONV REQUIRED) + else() + add_subdirectory(3rdparty/libiconv) + set(HAVE_ICONV_CONST 1) + endif() -if(LYX_EXTERNAL_Z) - find_package(ZLIB REQUIRED) -else() - add_subdirectory(3rdparty/zlib) + if(LYX_EXTERNAL_Z) + find_package(ZLIB REQUIRED) + else() + add_subdirectory(3rdparty/zlib) + endif() endif() if(LYX_USE_STD_REGEX) @@ -989,7 +1018,7 @@ if (CMAKE_GENERATOR MATCHES Xcode) ENDIF(XCODE_VERSION VERSION_LESS "5.0") ENDIF(CMAKE_GENERATOR MATCHES Xcode) -if (WIN32 AND Qt5Core_FOUND) +if (WIN32 AND NOT MINGW AND Qt5Core_FOUND) set(Z_PREFIX 1) endif() @@ -1039,15 +1068,17 @@ if(LYX_INSTALL) endif() include(../Install) +# By running the URL tests first, time can be saved when running the ctests in +# parallel since the URL tests take a long time to run (e.g. 10 minutes). +if(LYX_ENABLE_URLTESTS) + add_subdirectory(development/checkurls "${TOP_BINARY_DIR}/checkurls") +endif() add_subdirectory(src "${TOP_BINARY_DIR}/src") add_subdirectory(lib/lyx2lyx "${TOP_BINARY_DIR}/lyx2lyx") add_subdirectory(lib/scripts "${TOP_BINARY_DIR}/scripts") add_subdirectory(lib/examples "${TOP_BINARY_DIR}/lib/examples") add_subdirectory(sourcedoc "${TOP_BINARY_DIR}/sourcedoc") add_subdirectory(development/autotests "${TOP_BINARY_DIR}/autotests") -if(LYX_ENABLE_URLTESTS) - add_subdirectory(development/checkurls "${TOP_BINARY_DIR}/checkurls") -endif() message(STATUS) message(STATUS "Build params, switch LYX_* options by -DLYX_*=ON or OFF, LYX_* combos by -DLYX_*=value:")