aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt62
-rw-r--r--runtime/CMakeLists.txt6
-rw-r--r--src/nvim/CMakeLists.txt6
-rw-r--r--third-party/CMakeLists.txt2
-rw-r--r--third-party/cmake/GettextCMakeLists.txt2
-rw-r--r--third-party/cmake/GperfCMakeLists.txt2
-rw-r--r--third-party/cmake/LibiconvCMakeLists.txt2
-rw-r--r--third-party/cmake/LibuvCMakeLists.txt2
-rw-r--r--third-party/cmake/Libvterm-tbl2inc_c.cmake2
-rw-r--r--third-party/cmake/LibvtermCMakeLists.txt2
-rw-r--r--third-party/cmake/UnibiliumCMakeLists.txt2
-rw-r--r--third-party/cmake/libtermkeyCMakeLists.txt2
12 files changed, 32 insertions, 60 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2100c53ad2..a697480fba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,8 +2,8 @@
# intro: https://codingnest.com/basic-cmake/
# best practices (3.0+): https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1
-cmake_minimum_required(VERSION 2.8.7)
-project(nvim)
+cmake_minimum_required(VERSION 2.8.12)
+project(nvim C)
if(POLICY CMP0059)
cmake_policy(SET CMP0059 OLD) # Needed until cmake 2.8.12. #4389
@@ -47,9 +47,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
if(CMAKE_COMPILER_IS_GNUCC)
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
endif()
- if(CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
- endif()
endif()
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
@@ -181,7 +178,6 @@ if(NOT HAS_ACCEPTABLE_FORTIFY)
# -U in add_definitions doesn't end up in the correct spot, so we add it to
# the flags variable instead.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_FORTIFY_SOURCE_PREFIX}-U_FORTIFY_SOURCE ${_FORTIFY_SOURCE_PREFIX}-D_FORTIFY_SOURCE=1")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_FORTIFY_SOURCE_PREFIX}-U_FORTIFY_SOURCE ${_FORTIFY_SOURCE_PREFIX}-D_FORTIFY_SOURCE=1")
endif()
# Remove --sort-common from linker flags, as this seems to cause bugs (see #2641, #3374).
@@ -264,7 +260,7 @@ if(HAS_DIAG_COLOR_FLAG)
add_definitions(-fdiagnostics-color=auto)
endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
# 1. Array-bounds testing is broken in some GCC versions before 4.8.5.
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273
# 2. But _Pragma("...ignored") is broken (unresolved) in GCC 5+:
@@ -297,10 +293,14 @@ option(LOG_LIST_ACTIONS "Add list actions logging" OFF)
add_definitions(-DINCLUDE_GENERATED_DECLARATIONS)
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined")
+if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+ set(NO_UNDEFINED "-Wl,--no-undefined -lsocket")
+ elseif(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ set(NO_UNDEFINED "-Wl,--no-undefined")
+ endif()
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${NO_UNDEFINED}")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${NO_UNDEFINED}")
# For O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags on older systems
# (pre POSIX.1-2008: glibc 2.11 and earlier). #4042
@@ -308,10 +308,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_definitions(-D_GNU_SOURCE)
endif()
-if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_NAME STREQUAL "SunOS")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined -lsocket")
-endif()
-
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
# Required for luajit.
set(CMAKE_EXE_LINKER_FLAGS
@@ -357,7 +353,7 @@ main(void)
}
" MSGPACK_HAS_FLOAT32)
if(MSGPACK_HAS_FLOAT32)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_MSGPACK_HAS_FLOAT32")
+ add_definitions(-DNVIM_MSGPACK_HAS_FLOAT32)
endif()
option(FEAT_TUI "Enable the Terminal UI" ON)
@@ -378,7 +374,7 @@ if(FEAT_TUI)
}
" UNIBI_HAS_VAR_FROM)
if(UNIBI_HAS_VAR_FROM)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_UNIBI_HAS_VAR_FROM")
+ add_definitions(-DNVIM_UNIBI_HAS_VAR_FROM)
endif()
find_package(LibTermkey REQUIRED)
@@ -573,31 +569,17 @@ if(BUSTED_PRG)
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
endif()
- if(${CMAKE_VERSION} VERSION_LESS 2.8.12)
- if(CMAKE_GENERATOR MATCHES "Visual Studio")
- set(TEST_LIBNVIM_PATH ${CMAKE_BINARY_DIR}/lib/nvim-test.dll)
- else()
- get_target_property(TEST_LIBNVIM_PATH nvim-test LOCATION)
- endif()
- configure_file(
- ${CMAKE_SOURCE_DIR}/test/config/paths.lua.in
- ${CMAKE_BINARY_DIR}/test/config/paths.lua)
+ if(LUA_HAS_FFI)
+ set(TEST_LIBNVIM_PATH $<TARGET_FILE:nvim-test>)
else()
- # To avoid duplicating paths.lua.in while we still support CMake < 2.8.12,
- # use configure_file() to add the generator expression and then generate
- # the final file
- if(LUA_HAS_FFI)
- set(TEST_LIBNVIM_PATH $<TARGET_FILE:nvim-test>)
- else()
- set(TEST_LIBNVIM_PATH "")
- endif()
- configure_file(
- ${CMAKE_SOURCE_DIR}/test/config/paths.lua.in
- ${CMAKE_BINARY_DIR}/test/config/paths.lua.gen)
- file(GENERATE
- OUTPUT ${CMAKE_BINARY_DIR}/test/config/paths.lua
- INPUT ${CMAKE_BINARY_DIR}/test/config/paths.lua.gen)
+ set(TEST_LIBNVIM_PATH "")
endif()
+ configure_file(
+ ${CMAKE_SOURCE_DIR}/test/config/paths.lua.in
+ ${CMAKE_BINARY_DIR}/test/config/paths.lua.gen)
+ file(GENERATE
+ OUTPUT ${CMAKE_BINARY_DIR}/test/config/paths.lua
+ INPUT ${CMAKE_BINARY_DIR}/test/config/paths.lua.gen)
add_custom_target(functionaltest
COMMAND ${CMAKE_COMMAND}
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index 0ae7c231af..70e4ca2eec 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -21,17 +21,13 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM}
${FUNCS_DATA}
)
-if(POLICY CMP0054)
- cmake_policy(SET CMP0054 OLD)
-endif()
-
file(GLOB PACKAGES ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*)
set(GENERATED_PACKAGE_TAGS)
foreach(PACKAGE ${PACKAGES})
get_filename_component(PACKNAME ${PACKAGE} NAME)
file(GLOB "${PACKNAME}_DOC_FILES" ${PACKAGE}/doc/*.txt)
- if("${PACKNAME}_DOC_FILES")
+ if(${PACKNAME}_DOC_FILES)
file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME})
add_custom_target("${PACKNAME}-tags"
COMMAND ${CMAKE_COMMAND} -E copy_directory
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index bdedce8076..825ebc29cf 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -394,12 +394,6 @@ endif()
set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUA_PREFERRED_LIBRARIES})
-if(CMAKE_VERSION VERSION_LESS "2.8.8")
- # Use include_directories() because INCLUDE_DIRECTORIES target property
- # is not supported
- include_directories(${LUA_PREFERRED_INCLUDE_DIRS})
-endif()
-
# Don't use jemalloc in the unit test library.
if(JEMALLOC_FOUND)
list(APPEND NVIM_EXEC_LINK_LIBRARIES ${JEMALLOC_LIBRARIES})
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index 8aae8ea9e4..cf49a67f60 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -1,5 +1,5 @@
# This is not meant to be included by the top-level.
-cmake_minimum_required (VERSION 2.8.7)
+cmake_minimum_required (VERSION 2.8.12)
project(NVIM_DEPS)
# Needed for: check_c_compiler_flag()
diff --git a/third-party/cmake/GettextCMakeLists.txt b/third-party/cmake/GettextCMakeLists.txt
index 67ec0d113f..5a6253df3b 100644
--- a/third-party/cmake/GettextCMakeLists.txt
+++ b/third-party/cmake/GettextCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(gettext C)
# Adds PREFIX to each item in LIST
diff --git a/third-party/cmake/GperfCMakeLists.txt b/third-party/cmake/GperfCMakeLists.txt
index 32837fc166..15ae305ba8 100644
--- a/third-party/cmake/GperfCMakeLists.txt
+++ b/third-party/cmake/GperfCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(gperf LANGUAGES C CXX)
add_executable(gperf
diff --git a/third-party/cmake/LibiconvCMakeLists.txt b/third-party/cmake/LibiconvCMakeLists.txt
index d14b8529d4..8ad3cc9352 100644
--- a/third-party/cmake/LibiconvCMakeLists.txt
+++ b/third-party/cmake/LibiconvCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(libiconv C)
include_directories(
diff --git a/third-party/cmake/LibuvCMakeLists.txt b/third-party/cmake/LibuvCMakeLists.txt
index 8b51a101c6..c9b7c56e7b 100644
--- a/third-party/cmake/LibuvCMakeLists.txt
+++ b/third-party/cmake/LibuvCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(libuv LANGUAGES C)
file(GLOB UV_SOURCES_COMMON src/*.c)
diff --git a/third-party/cmake/Libvterm-tbl2inc_c.cmake b/third-party/cmake/Libvterm-tbl2inc_c.cmake
index b1ee0246f1..7a82f4248b 100644
--- a/third-party/cmake/Libvterm-tbl2inc_c.cmake
+++ b/third-party/cmake/Libvterm-tbl2inc_c.cmake
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
set(HEX_ALPHABET "0123456789abcdef")
diff --git a/third-party/cmake/LibvtermCMakeLists.txt b/third-party/cmake/LibvtermCMakeLists.txt
index 27d0d11e9f..dad3ef62c2 100644
--- a/third-party/cmake/LibvtermCMakeLists.txt
+++ b/third-party/cmake/LibvtermCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.11)
+cmake_minimum_required(VERSION 2.8.12)
project(libvterm LANGUAGES C)
include(GNUInstallDirs)
diff --git a/third-party/cmake/UnibiliumCMakeLists.txt b/third-party/cmake/UnibiliumCMakeLists.txt
index 49bc12c6b7..a96482bcbb 100644
--- a/third-party/cmake/UnibiliumCMakeLists.txt
+++ b/third-party/cmake/UnibiliumCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(unibilium LANGUAGES C)
file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/*.c)
diff --git a/third-party/cmake/libtermkeyCMakeLists.txt b/third-party/cmake/libtermkeyCMakeLists.txt
index cb57631c1c..c55da7929a 100644
--- a/third-party/cmake/libtermkeyCMakeLists.txt
+++ b/third-party/cmake/libtermkeyCMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 2.8.12)
project(libtermkey)
add_definitions(-D _CRT_SECURE_NO_WARNINGS)