diff options
-rw-r--r-- | CMakeLists.txt | 62 | ||||
-rw-r--r-- | runtime/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/nvim/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/nvim/mbyte.c | 12 | ||||
-rw-r--r-- | src/nvim/mbyte.h | 4 | ||||
-rw-r--r-- | src/nvim/os/env.c | 4 | ||||
-rw-r--r-- | src/nvim/os/fs.c | 4 | ||||
-rw-r--r-- | third-party/CMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/GettextCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/GperfCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/LibiconvCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/LibuvCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/Libvterm-tbl2inc_c.cmake | 2 | ||||
-rw-r--r-- | third-party/cmake/LibvtermCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/UnibiliumCMakeLists.txt | 2 | ||||
-rw-r--r-- | third-party/cmake/libtermkeyCMakeLists.txt | 2 |
16 files changed, 44 insertions, 72 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/src/nvim/mbyte.c b/src/nvim/mbyte.c index a8781ffbb8..ea538fb4fc 100644 --- a/src/nvim/mbyte.c +++ b/src/nvim/mbyte.c @@ -1328,7 +1328,7 @@ static int utf_strnicmp(const char_u *s1, const char_u *s2, size_t n1, #endif /// Reassigns `strw` to a new, allocated pointer to a UTF16 string. -int utf8_to_utf16(const char *str, WCHAR **strw) +int utf8_to_utf16(const char *str, wchar_t **strw) FUNC_ATTR_NONNULL_ALL { ssize_t wchar_len = 0; @@ -1344,7 +1344,7 @@ int utf8_to_utf16(const char *str, WCHAR **strw) return GetLastError(); } - ssize_t buf_sz = wchar_len * sizeof(WCHAR); + ssize_t buf_sz = wchar_len * sizeof(wchar_t); if (buf_sz == 0) { *strw = NULL; @@ -1358,19 +1358,19 @@ int utf8_to_utf16(const char *str, WCHAR **strw) 0, str, -1, - (WCHAR *)pos, + (wchar_t *)pos, wchar_len); assert(r == wchar_len); if (r != wchar_len) { EMSG2("MultiByteToWideChar failed: %d", r); } - *strw = (WCHAR *)pos; + *strw = (wchar_t *)pos; return 0; } /// Reassigns `str` to a new, allocated pointer to a UTF8 string. -int utf16_to_utf8(const WCHAR *strw, char **str) +int utf16_to_utf8(const wchar_t *strw, char **str) FUNC_ATTR_NONNULL_ALL { // Compute the space required to store the string as UTF-8. @@ -2201,7 +2201,7 @@ HINSTANCE vimLoadLib(char *name) // NOTE: Do not use mch_dirname() and mch_chdir() here, they may call // vimLoadLib() recursively, which causes a stack overflow. - WCHAR old_dirw[MAXPATHL]; + wchar_t old_dirw[MAXPATHL]; // Path to exe dir. char *buf = xstrdup((char *)get_vim_var_str(VV_PROGPATH)); diff --git a/src/nvim/mbyte.h b/src/nvim/mbyte.h index dd8e44b3f9..99aadcacad 100644 --- a/src/nvim/mbyte.h +++ b/src/nvim/mbyte.h @@ -7,8 +7,8 @@ #include "nvim/iconv.h" #include "nvim/func_attr.h" -#include "nvim/os/os_defs.h" // For WCHAR, indirect -#include "nvim/types.h" // for char_u +#include "nvim/os/os_defs.h" // For indirect +#include "nvim/types.h" // for char_u /* * Return byte length of character that starts with byte "b". diff --git a/src/nvim/os/env.c b/src/nvim/os/env.c index 25c4cc4f92..0df857352b 100644 --- a/src/nvim/os/env.c +++ b/src/nvim/os/env.c @@ -56,7 +56,7 @@ int os_setenv(const char *name, const char *value, int overwrite) char *envbuf = xmalloc(envbuflen); snprintf(envbuf, envbuflen, "%s=%s", name, value); - WCHAR *p; + wchar_t *p; utf8_to_utf16(envbuf, &p); xfree(envbuf); if (p == NULL) { @@ -146,7 +146,7 @@ void os_get_hostname(char *hostname, size_t size) xstrlcpy(hostname, vutsname.nodename, size); } #elif defined(WIN32) - WCHAR host_utf16[MAX_COMPUTERNAME_LENGTH + 1]; + wchar_t host_utf16[MAX_COMPUTERNAME_LENGTH + 1]; DWORD host_wsize = sizeof(host_utf16) / sizeof(host_utf16[0]); if (GetComputerNameW(host_utf16, &host_wsize) == 0) { *hostname = '\0'; diff --git a/src/nvim/os/fs.c b/src/nvim/os/fs.c index 5412c5daae..cf00fd4f82 100644 --- a/src/nvim/os/fs.c +++ b/src/nvim/os/fs.c @@ -1052,7 +1052,7 @@ char *os_resolve_shortcut(const char *fname) hr = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, &IID_IShellLinkW, (void **)&pslw); if (hr == S_OK) { - WCHAR *p; + wchar_t *p; const int conversion_result = utf8_to_utf16(fname, &p); if (conversion_result != 0) { EMSG2("utf8_to_utf16 failed: %d", conversion_result); @@ -1080,7 +1080,7 @@ char *os_resolve_shortcut(const char *fname) # endif // Get the path to the link target. - ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR)); + ZeroMemory(wsz, MAX_PATH * sizeof(wchar_t)); hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0); if (hr == S_OK && wsz[0] != NUL) { const int conversion_result = utf16_to_utf8(wsz, &rfname); 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) |