# Licence details can be found in the file COPYING.
#
# Copyright (c) 2006-2011 Peter Kümmel, <syntheticpp@gmx.net>
-# Copyright (c) 2008-2011 Kornel Benko, <Kornel.Benko@berlin.de>
+# Copyright (c) 2008-2020 Kornel Benko, <Kornel.Benko@berlin.de>
cmake_minimum_required(VERSION 3.1.0)
-set(CMAKE_CXX_STANDARD 20)
-set(GNUWIN32_DIR D:/LyX/lyx-unstable/lyx-windows-deps-msvc2017)
-set(LYX_USE_QT "QT5")
-set(LYX_REQUIRE_SPELLCHECK true)
-
set(LYX_PROJECT LyX)
-
# Instruct cmake to not use gnu extensions,
# this prevents the mix of '-std=c++*' and '-std=gnu++*' flags
set(CMAKE_CXX_EXTENSIONS OFF)
if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW)
endif()
+ if(POLICY CMP0077)
+ cmake_policy(SET CMP0077 NEW)
+ endif()
endif()
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
include(LyXMacros)
include(LyXDestinations)
-# Try to get some informations from configure.ac
-include(LyXPaths)
-
# Value of USE_POSIX_PACKAGING is needed in determineversionandbuildtype()
if(WIN32)
set(CMAKE_PREFIX_PATH Specify-path-to-Qt CACHE PATH "Used Qt version")
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
+include(LyXPaths)
+
if(help OR HELP)
message(STATUS)
message(STATUS)
LYX_OPTION_LIST_ALL(help)
message(STATUS)
+ unset(help CACHE)
+ unset(HELP CACHE)
RETURN()
endif()
if(NOT LYX_QUIET)
set(CMAKE_VERBOSE_MAKEFILE ON)
endif()
- set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
- if(LYX_GCC11_MODE MATCHES "\\+\\+(14|11|98)")
+ if(LYX_GCC11_MODE MATCHES "\\+\\+([0-9][0-9])")
# Thanks to Brad King <brad.king@kitware.com>
# for the pointer to https://cmake.org/cmake/help/v3.6/variable/CMAKE_CXX_STANDARD.html
# This allows us to use QT5.7 with recent g++ (version >= 4.9) compilers
# and still use our own c++ extension tests
- set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1})
- message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}")
+ set(std_num ${CMAKE_MATCH_1})
+ set(CMAKE_CXX_STANDARD ${std_num})
+ else()
+ message(STATUS "Setting CMAKE_CXX_STANDARD 11 as fallback")
+ set(CMAKE_CXX_STANDARD 11)
+ set(LYX_GCC11_MODE "--std=c++11")
endif()
+ # The following setting with LYX_GCC11_MODE is needed because cmake does not honor
+ # CMAKE_CXX_STANDARD while performing tests like
+ # check_cxx_source_compiles("..." HAVE_DEF_MAKE_UNIQUE)
+ set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
if(LYX_STDLIB_DEBUG)
set(LYX_CXX_FLAGS "${LYX_CXX_FLAGS} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
else()
if(GNUWIN32_DIR)
list(APPEND CMAKE_PROGRAM_PATH "${GNUWIN32_DIR}/Python" )
+ list(APPEND CMAKE_PROGRAM_PATH "${GNUWIN32_DIR}/Perl/bin" )
endif()
# Search for python default version first
endif()
if(LYX_EXTERNAL_ICONV)
+ # Possible remnants of previous run without external iconv
+ file(REMOVE_RECURSE "${CMAKE_BINARY_DIR}/libiconv" "${CMAKE_BINARY_DIR}/3rdparty/libiconv")
find_package(ICONV REQUIRED)
else()
add_subdirectory(3rdparty/libiconv)
# -DPSAPI_VERSION=1 is not needed for mingw, since the mingw psapi.h
# does not use it and always declares the vista compatible API.
# If this ever changes then -DPSAPI_VERSION might be needed here as well.
- add_definitions(-DWINVER=0x0600)
+ add_definitions(-DWINVER=0x0500)
endif()
endif()
# 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).
+
+# Needed, because of perl scripts in checkurls autotests and batchtests
+find_package(Perl REQUIRED)
+
if(LYX_ENABLE_URLTESTS)
add_subdirectory(development/checkurls "${TOP_BINARY_DIR}/checkurls")
endif()