mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #20154 build: cmake cleanup
This commit is contained in:
commit
56998feebd
@ -2,6 +2,10 @@
|
||||
cmake_minimum_required (VERSION 3.10)
|
||||
project(NVIM_DEPS C)
|
||||
|
||||
if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 NEW)
|
||||
endif()
|
||||
|
||||
# Point CMake at any custom modules we may ship
|
||||
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${PROJECT_SOURCE_DIR}/../cmake")
|
||||
|
||||
@ -62,8 +66,6 @@ else()
|
||||
option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." OFF)
|
||||
endif()
|
||||
|
||||
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
||||
|
||||
find_package(Git)
|
||||
if(NOT Git_FOUND)
|
||||
message(FATAL_ERROR "Git is required to apply patches.")
|
||||
@ -101,11 +103,7 @@ if(MINGW AND CMAKE_GENERATOR MATCHES "Ninja")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ARG1)
|
||||
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}")
|
||||
else()
|
||||
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER}")
|
||||
endif()
|
||||
set(DEPS_C_COMPILER "${CMAKE_C_COMPILER}")
|
||||
|
||||
if(CMAKE_CXX_COMPILER)
|
||||
set(DEPS_CXX_COMPILER "${CMAKE_CXX_COMPILER}")
|
||||
@ -143,13 +141,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
message("-- Using deployment target ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
endif()
|
||||
|
||||
set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}")
|
||||
set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}")
|
||||
set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}")
|
||||
set(HOSTDEPS_C_COMPILER "${DEPS_C_COMPILER}")
|
||||
set(HOSTDEPS_CXX_COMPILER "${DEPS_CXX_COMPILER}")
|
||||
|
||||
include(ExternalProject)
|
||||
set_directory_properties(PROPERTIES EP_PREFIX "${DEPS_BUILD_DIR}")
|
||||
|
||||
set(LIBUV_URL https://github.com/libuv/libuv/archive/f610339f74f7f0fcd183533d2c965ce1468b44c6.tar.gz)
|
||||
set(LIBUV_SHA256 d5f22303ba44ac60d3232b1977b404d23a349ae4e8cb83f00e7122fafe38d8c9)
|
||||
@ -190,8 +183,6 @@ set(WINTOOLS_SHA256 3c4c490a3d392ceeb1347cb77cc821a31900b688a2189276d3a1131a3f21
|
||||
set(WINGUI_URL https://github.com/equalsraf/neovim-qt/releases/download/v0.2.17/neovim-qt.zip)
|
||||
set(WINGUI_SHA256 502e386eef677c2c2e0c11d8cbb27f3e12b4d96818369417e8da4129c4580c25)
|
||||
|
||||
set(WIN32YANK_X86_URL https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x86.zip)
|
||||
set(WIN32YANK_X86_SHA256 62f34e5a46c5d4a7b3f3b512e1ff7b77fedd432f42581cbe825233a996eed62c)
|
||||
set(WIN32YANK_X86_64_URL https://github.com/equalsraf/win32yank/releases/download/v0.0.4/win32yank-x64.zip)
|
||||
set(WIN32YANK_X86_64_SHA256 33a747a92da60fb65e668edbf7661d3d902411a2d545fe9dc08623cecd142a20)
|
||||
|
||||
@ -281,15 +272,8 @@ if(WIN32)
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory bin ${DEPS_INSTALL_DIR}/bin
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory share ${DEPS_INSTALL_DIR}/share)
|
||||
|
||||
include(TargetArch)
|
||||
GetBinaryDep(TARGET "win32yank_${TARGET_ARCH}"
|
||||
GetBinaryDep(TARGET win32yank_X86_64
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy win32yank.exe ${DEPS_INSTALL_DIR}/bin)
|
||||
|
||||
if("${TARGET_ARCH}" STREQUAL "X86_64")
|
||||
set(TARGET_ARCH x64)
|
||||
elseif(TARGET_ARCH STREQUAL "X86")
|
||||
set(TARGET_ARCH ia32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# clean-shared-libraries removes ${DEPS_INSTALL_DIR}/lib/nvim/parser/c.dll,
|
||||
|
@ -1,23 +1,14 @@
|
||||
if(MSVC)
|
||||
ExternalProject_Add(gettext
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${GETTEXT_URL}
|
||||
URL_HASH SHA256=${GETTEXT_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/gettext
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/gettext
|
||||
-DURL=${GETTEXT_URL}
|
||||
-DEXPECTED_SHA256=${GETTEXT_SHA256}
|
||||
-DTARGET=gettext
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/gettext
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
${BUILD_TYPE_STRING}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
|
@ -1,23 +1,14 @@
|
||||
if(MSVC)
|
||||
ExternalProject_Add(libiconv
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LIBICONV_URL}
|
||||
URL_HASH SHA256=${LIBICONV_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libiconv
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libiconv
|
||||
-DURL=${LIBICONV_URL}
|
||||
-DEXPECTED_SHA256=${LIBICONV_SHA256}
|
||||
-DTARGET=libiconv
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt
|
||||
${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libiconv
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
${BUILD_TYPE_STRING}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
|
@ -4,8 +4,6 @@ if(WIN32)
|
||||
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
${BUILD_TYPE_STRING}
|
||||
# Hack to avoid -rdynamic in Mingw
|
||||
-DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS=""
|
||||
@ -25,17 +23,10 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(libtermkey
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LIBTERMKEY_URL}
|
||||
URL_HASH SHA256=${LIBTERMKEY_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey
|
||||
-DURL=${LIBTERMKEY_URL}
|
||||
-DEXPECTED_SHA256=${LIBTERMKEY_SHA256}
|
||||
-DTARGET=libtermkey
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}")
|
||||
|
@ -1,6 +1,7 @@
|
||||
ExternalProject_Add(libuv
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LIBUV_URL}
|
||||
URL_HASH SHA256=${LIBUV_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_INSTALL_LIBDIR=lib
|
||||
@ -9,14 +10,6 @@ ExternalProject_Add(libuv
|
||||
-DLIBUV_BUILD_SHARED=OFF
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libuv
|
||||
-DURL=${LIBUV_URL}
|
||||
-DEXPECTED_SHA256=${LIBUV_SHA256}
|
||||
-DTARGET=libuv
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake)
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv)
|
||||
|
||||
list(APPEND THIRD_PARTY_DEPS libuv)
|
||||
|
@ -10,10 +10,8 @@ if(WIN32)
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
if(MSVC)
|
||||
list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}")
|
||||
else()
|
||||
list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC")
|
||||
if(NOT MSVC)
|
||||
list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=-fPIC")
|
||||
endif()
|
||||
set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
|
||||
set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
|
||||
@ -27,17 +25,10 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(libvterm
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LIBVTERM_URL}
|
||||
URL_HASH SHA256=${LIBVTERM_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libvterm
|
||||
-DURL=${LIBVTERM_URL}
|
||||
-DEXPECTED_SHA256=${LIBVTERM_SHA256}
|
||||
-DTARGET=libvterm
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND "${LIBVTERM_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${LIBVTERM_BUILD_COMMAND}"
|
||||
|
@ -28,7 +28,7 @@ if(CLANG_ASAN_UBSAN)
|
||||
endif()
|
||||
|
||||
set(LUA_CONFIGURE_COMMAND
|
||||
sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}@"
|
||||
sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER}@"
|
||||
-e "/^CFLAGS/s@-O2@${LUA_CFLAGS}@"
|
||||
-e "/^MYLDFLAGS/s@$@${LUA_LDFLAGS}@"
|
||||
-e "s@-lreadline@@g"
|
||||
@ -43,17 +43,10 @@ set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}")
|
||||
message(STATUS "Lua target is ${LUA_TARGET}")
|
||||
|
||||
ExternalProject_Add(lua
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LUA_URL}
|
||||
URL_HASH SHA256=${LUA_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua
|
||||
-DURL=${LUA_URL}
|
||||
-DEXPECTED_SHA256=${LUA_SHA256}
|
||||
-DTARGET=lua
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${LUA_CONFIGURE_COMMAND}"
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET}
|
||||
|
@ -16,17 +16,10 @@ function(BuildLuajit)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(${_luajit_TARGET}
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LUAJIT_URL}
|
||||
URL_HASH SHA256=${LUAJIT_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luajit
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luajit
|
||||
-DURL=${LUAJIT_URL}
|
||||
-DEXPECTED_SHA256=${LUAJIT_SHA256}
|
||||
-DTARGET=${_luajit_TARGET}
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}"
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND "${_luajit_BUILD_COMMAND}"
|
||||
|
@ -1,8 +1,4 @@
|
||||
# Luarocks recipe. Luarocks is only required when building Neovim, when
|
||||
# cross compiling we still want to build for the HOST system, whenever
|
||||
# writing a recipe that is meant for cross-compile, use the HOSTDEPS_* variables
|
||||
# instead of DEPS_* - check the main CMakeLists.txt for a list.
|
||||
#
|
||||
# Luarocks recipe. Luarocks is only required when building Neovim.
|
||||
# NOTE: LuaRocks rocks need to "DEPENDS" on the previous module, because
|
||||
# running luarocks in parallel will break, e.g. when some rocks have
|
||||
# the same dependency..
|
||||
@ -10,13 +6,13 @@
|
||||
option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON)
|
||||
|
||||
# The luarocks binary location
|
||||
set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks)
|
||||
set(LUAROCKS_BINARY ${DEPS_BIN_DIR}/luarocks)
|
||||
|
||||
# Arguments for calls to 'luarocks build'
|
||||
if(NOT MSVC)
|
||||
# In MSVC don't pass the compiler/linker to luarocks, the bundled
|
||||
# version already knows, and passing them here breaks the build
|
||||
set(LUAROCKS_BUILDARGS CC=${HOSTDEPS_C_COMPILER} LD=${HOSTDEPS_C_COMPILER})
|
||||
set(LUAROCKS_BUILDARGS CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER})
|
||||
endif()
|
||||
|
||||
# Lua version, used with rocks directories.
|
||||
@ -27,12 +23,12 @@ if(UNIX)
|
||||
|
||||
if(USE_BUNDLED_LUAJIT)
|
||||
list(APPEND LUAROCKS_OPTS
|
||||
--with-lua=${HOSTDEPS_INSTALL_DIR}
|
||||
--with-lua-include=${HOSTDEPS_INSTALL_DIR}/include/luajit-2.1
|
||||
--with-lua=${DEPS_INSTALL_DIR}
|
||||
--with-lua-include=${DEPS_INSTALL_DIR}/include/luajit-2.1
|
||||
--with-lua-interpreter=luajit)
|
||||
elseif(USE_BUNDLED_LUA)
|
||||
list(APPEND LUAROCKS_OPTS
|
||||
--with-lua=${HOSTDEPS_INSTALL_DIR})
|
||||
--with-lua=${DEPS_INSTALL_DIR})
|
||||
else()
|
||||
find_package(LuaJit)
|
||||
if(LUAJIT_FOUND)
|
||||
@ -58,7 +54,7 @@ if(UNIX)
|
||||
endif()
|
||||
|
||||
set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure
|
||||
--prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS})
|
||||
--prefix=${DEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS})
|
||||
set(LUAROCKS_INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap)
|
||||
elseif(MSVC OR MINGW)
|
||||
|
||||
@ -86,17 +82,10 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(luarocks
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LUAROCKS_URL}
|
||||
URL_HASH SHA256=${LUAROCKS_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luarocks
|
||||
-DURL=${LUAROCKS_URL}
|
||||
-DEXPECTED_SHA256=${LUAROCKS_SHA256}
|
||||
-DTARGET=luarocks
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND "${LUAROCKS_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND ""
|
||||
@ -109,7 +98,7 @@ if(USE_BUNDLED_LUAJIT)
|
||||
elseif(USE_BUNDLED_LUA)
|
||||
add_dependencies(luarocks lua)
|
||||
endif()
|
||||
set(ROCKS_DIR ${HOSTDEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION})
|
||||
set(ROCKS_DIR ${DEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION})
|
||||
|
||||
# mpack
|
||||
add_custom_command(OUTPUT ${ROCKS_DIR}/mpack
|
||||
@ -149,11 +138,11 @@ if(USE_BUNDLED_BUSTED)
|
||||
|
||||
# busted
|
||||
if(WIN32)
|
||||
set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted.bat")
|
||||
set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck.bat")
|
||||
set(BUSTED_EXE "${DEPS_BIN_DIR}/busted.bat")
|
||||
set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck.bat")
|
||||
else()
|
||||
set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted")
|
||||
set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck")
|
||||
set(BUSTED_EXE "${DEPS_BIN_DIR}/busted")
|
||||
set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck")
|
||||
endif()
|
||||
add_custom_command(OUTPUT ${BUSTED_EXE}
|
||||
COMMAND ${LUAROCKS_BINARY} build busted 2.0.0 ${LUAROCKS_BUILDARGS}
|
||||
|
@ -40,8 +40,7 @@ if(MSVC)
|
||||
${LUV_CONFIGURE_COMMAND_COMMON}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
# Same as Unix without fPIC
|
||||
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} ${LUV_INCLUDE_FLAGS}"
|
||||
"-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}"
|
||||
# Make sure we use the same generator, otherwise we may
|
||||
# accidentally end up using different MSVC runtimes
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
@ -49,7 +48,7 @@ else()
|
||||
set(LUV_CONFIGURE_COMMAND
|
||||
${LUV_CONFIGURE_COMMAND_COMMON}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} ${LUV_INCLUDE_FLAGS} -fPIC")
|
||||
"-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -fPIC")
|
||||
if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND
|
||||
(CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly"))
|
||||
set(LUV_CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} -DCMAKE_MAKE_PROGRAM=gmake)
|
||||
@ -57,36 +56,21 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(lua-compat-5.3
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${LUA_COMPAT53_URL}
|
||||
URL_HASH SHA256=${LUA_COMPAT53_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua-compat-5.3
|
||||
-DURL=${LUA_COMPAT53_URL}
|
||||
-DEXPECTED_SHA256=${LUA_COMPAT53_SHA256}
|
||||
-DTARGET=lua-compat-5.3
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND "")
|
||||
|
||||
ExternalProject_Add(luv-static
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
DEPENDS lua-compat-5.3
|
||||
URL ${LUV_URL}
|
||||
URL_HASH SHA256=${LUV_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luv
|
||||
-DURL=${LUV_URL}
|
||||
-DEXPECTED_SHA256=${LUV_SHA256}
|
||||
-DTARGET=luv-static
|
||||
# The source is shared with BuildLuarocks (with USE_BUNDLED_LUV).
|
||||
-DSRC_DIR=${DEPS_BUILD_DIR}/src/luv
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv
|
||||
CONFIGURE_COMMAND "${LUV_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>
|
||||
|
@ -4,7 +4,7 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
|
||||
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC"
|
||||
"-DCMAKE_C_FLAGS:STRING=-fPIC"
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
|
||||
if(MSVC)
|
||||
@ -16,24 +16,16 @@ if(MSVC)
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
${BUILD_TYPE_STRING}
|
||||
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}"
|
||||
# Make sure we use the same generator, otherwise we may
|
||||
# accidentally end up using different MSVC runtimes
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(msgpack
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${MSGPACK_URL}
|
||||
URL_HASH SHA256=${MSGPACK_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/msgpack
|
||||
-DURL=${MSGPACK_URL}
|
||||
-DEXPECTED_SHA256=${MSGPACK_SHA256}
|
||||
-DTARGET=msgpack
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${MSGPACK_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>
|
||||
|
@ -18,18 +18,11 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(tree-sitter
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${TREESITTER_URL}
|
||||
URL_HASH SHA256=${TREESITTER_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter
|
||||
INSTALL_DIR ${DEPS_INSTALL_DIR}
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/tree-sitter
|
||||
-DURL=${TREESITTER_URL}
|
||||
-DEXPECTED_SHA256=${TREESITTER_SHA256}
|
||||
-DTARGET=tree-sitter
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND "${TREESITTER_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${TREESITTER_BUILD_COMMAND}"
|
||||
|
@ -1,25 +1,18 @@
|
||||
function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
|
||||
set(NAME treesitter-${LANG})
|
||||
ExternalProject_Add(${NAME}
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${TREESITTER_C_URL}
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME}
|
||||
-DURL=${TS_URL}
|
||||
-DEXPECTED_SHA256=${TS_SHA256}
|
||||
-DTARGET=${NAME}
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
URL ${TS_URL}
|
||||
URL_HASH SHA256=${TS_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE}
|
||||
${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DPARSERLANG=${LANG})
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DPARSERLANG=${LANG})
|
||||
endfunction()
|
||||
|
||||
BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt)
|
||||
|
@ -4,8 +4,6 @@ if(WIN32)
|
||||
${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt
|
||||
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
${BUILD_TYPE_STRING}
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
@ -19,17 +17,10 @@ else()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(unibilium
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${UNIBILIUM_URL}
|
||||
URL_HASH SHA256=${UNIBILIUM_SHA256}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/unibilium
|
||||
-DURL=${UNIBILIUM_URL}
|
||||
-DEXPECTED_SHA256=${UNIBILIUM_SHA256}
|
||||
-DTARGET=unibilium
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}")
|
||||
|
@ -1,195 +0,0 @@
|
||||
if(NOT DEFINED PREFIX)
|
||||
message(FATAL_ERROR "PREFIX must be defined.")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED URL)
|
||||
message(FATAL_ERROR "URL must be defined.")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED DOWNLOAD_DIR)
|
||||
message(FATAL_ERROR "DOWNLOAD_DIR must be defined.")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED EXPECTED_SHA256)
|
||||
message(FATAL_ERROR "EXPECTED_SHA256 must be defined.")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED TARGET)
|
||||
message(FATAL_ERROR "TARGET must be defined.")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED SRC_DIR)
|
||||
set(SRC_DIR ${PREFIX}/src/${TARGET})
|
||||
endif()
|
||||
set(BINARY_DIR ${PREFIX}/src/${TARGET}-build)
|
||||
|
||||
# Check whether the source has been downloaded. If true, skip it.
|
||||
# Useful for external downloads like homebrew.
|
||||
if(USE_EXISTING_SRC_DIR)
|
||||
if(EXISTS "${SRC_DIR}" AND IS_DIRECTORY "${SRC_DIR}")
|
||||
file(GLOB EXISTED_FILES "${SRC_DIR}/*")
|
||||
if(EXISTED_FILES)
|
||||
message(STATUS "${SRC_DIR} is found and not empty, skipping download and extraction. ")
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
message(FATAL_ERROR "USE_EXISTING_SRC_DIR set to ON, but '${SRC_DIR}' does not exist or is empty.")
|
||||
endif()
|
||||
|
||||
# Taken from ExternalProject_Add. Let's hope we can drop this one day when
|
||||
# ExternalProject_Add allows you to disable SHOW_PROGRESS on the file download.
|
||||
if(TIMEOUT)
|
||||
set(timeout_args TIMEOUT ${timeout})
|
||||
set(timeout_msg "${timeout} seconds")
|
||||
else()
|
||||
set(timeout_args "")
|
||||
set(timeout_msg "none")
|
||||
endif()
|
||||
|
||||
string(REGEX MATCH "[^/\\?]*$" fname "${URL}")
|
||||
if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$")
|
||||
string(REGEX MATCH "([^/\\?]+(\\.|=)(bz2|tar|tgz|tar\\.gz|zip))/.*$" match_result "${URL}")
|
||||
set(fname "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$")
|
||||
message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}")
|
||||
endif()
|
||||
string(REPLACE ";" "-" fname "${fname}")
|
||||
|
||||
set(file ${DOWNLOAD_DIR}/${fname})
|
||||
message(STATUS "file: ${file}")
|
||||
|
||||
set(EXISTING_SHA256 "")
|
||||
if(EXISTS ${file})
|
||||
file(SHA256 ${file} EXISTING_SHA256)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTING_SHA256 STREQUAL ${EXPECTED_SHA256})
|
||||
message(STATUS "downloading...
|
||||
src='${URL}'
|
||||
dst='${file}'
|
||||
timeout='${timeout_msg}'")
|
||||
|
||||
file(DOWNLOAD ${URL} ${file}
|
||||
${timeout_args}
|
||||
${hash_args}
|
||||
STATUS status
|
||||
LOG log)
|
||||
|
||||
list(GET status 0 status_code)
|
||||
list(GET status 1 status_string)
|
||||
|
||||
if(NOT status_code EQUAL 0)
|
||||
# Retry on certain errors, e.g. CURLE_COULDNT_RESOLVE_HOST, which is often
|
||||
# seen with libtermkey (www.leonerd.org.uk).
|
||||
if((status_code EQUAL 6) # "Couldn't resolve host name"
|
||||
OR (status_code EQUAL 7)) # "Couldn't connect to server"
|
||||
message(STATUS "warning: retrying '${URL}' (${status_string}, status ${status_code})")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 10)
|
||||
file(DOWNLOAD ${URL} ${file}
|
||||
${timeout_args}
|
||||
${hash_args}
|
||||
STATUS status
|
||||
LOG log)
|
||||
list(GET status 0 status_code)
|
||||
list(GET status 1 status_string)
|
||||
endif()
|
||||
if(NOT status_code EQUAL 0)
|
||||
message(FATAL_ERROR "error: downloading '${URL}' failed
|
||||
status_code: ${status_code}
|
||||
status_string: ${status_string}
|
||||
log: ${log}
|
||||
")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(NULL_SHA256 "0000000000000000000000000000000000000000000000000000000000000000")
|
||||
|
||||
# Allow users to use "SKIP" or "skip" as the sha256 to skip checking the hash.
|
||||
# You can still use the all zeros hash too.
|
||||
if((EXPECTED_SHA256 STREQUAL "SKIP") OR (EXPECTED_SHA256 STREQUAL "skip"))
|
||||
set(EXPECTED_SHA256 ${NULL_SHA256})
|
||||
endif()
|
||||
|
||||
# We could avoid computing the SHA256 entirely if a NULL_SHA256 was given,
|
||||
# but we want to warn users of an empty file.
|
||||
file(SHA256 ${file} ACTUAL_SHA256)
|
||||
if(ACTUAL_SHA256 STREQUAL "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
|
||||
# File was empty. It's likely due to lack of SSL support.
|
||||
message(FATAL_ERROR
|
||||
"Failed to download ${URL}. The file is empty and likely means CMake "
|
||||
"was built without SSL support. Please use a version of CMake with "
|
||||
"proper SSL support. See "
|
||||
"https://github.com/neovim/neovim/wiki/Building-Neovim#build-prerequisites "
|
||||
"for more information.")
|
||||
elseif((NOT EXPECTED_SHA256 STREQUAL NULL_SHA256) AND
|
||||
(NOT EXPECTED_SHA256 STREQUAL ACTUAL_SHA256))
|
||||
# Wasn't a NULL SHA256 and we didn't match, so we fail.
|
||||
message(FATAL_ERROR
|
||||
"Failed to download ${URL}. Expected a SHA256 of "
|
||||
"${EXPECTED_SHA256} but got ${ACTUAL_SHA256} instead.")
|
||||
endif()
|
||||
|
||||
message(STATUS "downloading... done")
|
||||
|
||||
# Slurped from a generated extract-TARGET.cmake file.
|
||||
message(STATUS "extracting...
|
||||
src='${file}'
|
||||
dst='${SRC_DIR}'")
|
||||
|
||||
if(NOT EXISTS "${file}")
|
||||
message(FATAL_ERROR "error: file to extract does not exist: '${file}'")
|
||||
endif()
|
||||
|
||||
# Prepare a space for extracting:
|
||||
#
|
||||
set(i 1234)
|
||||
while(EXISTS "${SRC_DIR}/../ex-${TARGET}${i}")
|
||||
math(EXPR i "${i} + 1")
|
||||
endwhile()
|
||||
set(ut_dir "${SRC_DIR}/../ex-${TARGET}${i}")
|
||||
file(MAKE_DIRECTORY "${ut_dir}")
|
||||
|
||||
# Extract it:
|
||||
#
|
||||
message(STATUS "extracting... [tar xfz]")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${file}
|
||||
WORKING_DIRECTORY ${ut_dir}
|
||||
RESULT_VARIABLE rv)
|
||||
|
||||
if(NOT rv EQUAL 0)
|
||||
message(STATUS "extracting... [error clean up]")
|
||||
file(REMOVE_RECURSE "${ut_dir}")
|
||||
message(FATAL_ERROR "error: extract of '${file}' failed")
|
||||
endif()
|
||||
|
||||
# Analyze what came out of the tar file:
|
||||
#
|
||||
message(STATUS "extracting... [analysis]")
|
||||
file(GLOB contents "${ut_dir}/*")
|
||||
list(LENGTH contents n)
|
||||
if(NOT n EQUAL 1 OR NOT IS_DIRECTORY "${contents}")
|
||||
set(contents "${ut_dir}")
|
||||
endif()
|
||||
|
||||
# Move "the one" directory to the final directory:
|
||||
#
|
||||
message(STATUS "extracting... [rename]")
|
||||
file(REMOVE_RECURSE ${SRC_DIR})
|
||||
get_filename_component(contents ${contents} ABSOLUTE)
|
||||
file(RENAME ${contents} ${SRC_DIR})
|
||||
|
||||
# Remove any existing BINARY_DIR, to force a new build.
|
||||
# Without this a necessary output (e.g. libluv.a) might not be updated/installed.
|
||||
#
|
||||
message(STATUS "extracting... [clean binary dir]")
|
||||
file(REMOVE_RECURSE ${BINARY_DIR})
|
||||
file(MAKE_DIRECTORY ${BINARY_DIR})
|
||||
|
||||
# Clean up:
|
||||
#
|
||||
message(STATUS "extracting... [clean up]")
|
||||
file(REMOVE_RECURSE "${ut_dir}")
|
||||
|
||||
message(STATUS "extracting... done")
|
@ -23,17 +23,10 @@ function(GetBinaryDep)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(${_gettool_TARGET}
|
||||
PREFIX ${DEPS_BUILD_DIR}
|
||||
URL ${URL}
|
||||
URL_HASH SHA256=${HASH}
|
||||
DOWNLOAD_NO_PROGRESS TRUE
|
||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}
|
||||
DOWNLOAD_COMMAND ${CMAKE_COMMAND}
|
||||
-DPREFIX=${DEPS_BUILD_DIR}
|
||||
-DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}
|
||||
-DURL=${URL}
|
||||
-DEXPECTED_SHA256=${HASH}
|
||||
-DTARGET=${_gettool_TARGET}
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND ""
|
||||
|
@ -1,23 +0,0 @@
|
||||
# Sets TARGET_ARCH to a normalized name (X86 or X86_64).
|
||||
# See https://github.com/axr/solar-cmake/blob/master/TargetArch.cmake
|
||||
include(CheckSymbolExists)
|
||||
|
||||
# X86
|
||||
check_symbol_exists("_M_IX86" "" T_M_IX86)
|
||||
check_symbol_exists("__i386__" "" T_I386)
|
||||
if(T_M_IX86 OR T_I386)
|
||||
set(TARGET_ARCH "X86")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# X86_64
|
||||
check_symbol_exists("_M_AMD64" "" T_M_AMD64)
|
||||
check_symbol_exists("__x86_64__" "" T_X86_64)
|
||||
check_symbol_exists("__amd64__" "" T_AMD64)
|
||||
|
||||
if(T_M_AMD64 OR T_X86_64 OR T_AMD64)
|
||||
set(TARGET_ARCH "X86_64")
|
||||
return()
|
||||
endif()
|
||||
|
||||
message(FATAL_ERROR "Unknown target architecture")
|
@ -2,14 +2,6 @@ function(get_compile_flags _compile_flags)
|
||||
# Create template akin to CMAKE_C_COMPILE_OBJECT.
|
||||
set(compile_flags "<CMAKE_C_COMPILER> <CFLAGS> <BUILD_TYPE_CFLAGS> <COMPILE_OPTIONS><COMPILE_DEFINITIONS> <INCLUDES>")
|
||||
|
||||
# Get C compiler.
|
||||
if(CMAKE_C_COMPILER_ARG1)
|
||||
string(REPLACE
|
||||
"<CMAKE_C_COMPILER>"
|
||||
"<CMAKE_C_COMPILER> ${CMAKE_C_COMPILER_ARG1}"
|
||||
compile_flags
|
||||
"${compile_flags}")
|
||||
endif()
|
||||
string(REPLACE
|
||||
"<CMAKE_C_COMPILER>"
|
||||
"${CMAKE_C_COMPILER}"
|
||||
|
@ -1,9 +0,0 @@
|
||||
set(ENV{OLD_PO_FILE_INPUT} yes)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${MSGFMT_PRG} -o ${MO_FILE} ${PO_FILE}
|
||||
ERROR_VARIABLE err
|
||||
RESULT_VARIABLE res)
|
||||
if(NOT res EQUAL 0)
|
||||
message(FATAL_ERROR "msgfmt failed to run correctly: ${err}")
|
||||
endif()
|
@ -1,11 +0,0 @@
|
||||
set(ENV{OLD_PO_FILE_INPUT} yes)
|
||||
set(ENV{OLD_PO_FILE_OUTPUT} yes)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${MSGMERGE_PRG} -q --update --backup=none --sort-by-file
|
||||
${PO_FILE} ${POT_FILE}
|
||||
ERROR_VARIABLE err
|
||||
RESULT_VARIABLE res)
|
||||
if(NOT res EQUAL 0)
|
||||
message(FATAL_ERROR "msgmerge failed to run correctly: ${err}")
|
||||
endif()
|
@ -1,14 +0,0 @@
|
||||
set(ENV{OLD_PO_FILE_INPUT} yes)
|
||||
set(ENV{OLD_PO_FILE_OUTPUT} yes)
|
||||
|
||||
list(SORT SOURCES)
|
||||
|
||||
execute_process(
|
||||
COMMAND ${XGETTEXT_PRG} -o ${POT_FILE} --default-domain=nvim
|
||||
--add-comments --keyword=_ --keyword=N_ -D ${SEARCH_DIR}
|
||||
${SOURCES}
|
||||
ERROR_VARIABLE err
|
||||
RESULT_VARIABLE res)
|
||||
if(NOT res EQUAL 0)
|
||||
message(FATAL_ERROR "xgettext failed to run correctly: ${err}")
|
||||
endif()
|
@ -37,7 +37,6 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
set(ENV{OLD_PO_FILE_INPUT} yes)
|
||||
set(ENV{OLD_PO_FILE_OUTPUT} yes)
|
||||
|
||||
|
||||
set(NVIM_RELATIVE_SOURCES)
|
||||
foreach(SRC ${NVIM_SOURCES} ${NVIM_HEADERS})
|
||||
file(RELATIVE_PATH RELATIVE_SRC ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
|
||||
@ -46,19 +45,14 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
|
||||
set(NVIM_POT ${CMAKE_CURRENT_BINARY_DIR}/nvim.pot)
|
||||
|
||||
list(SORT NVIM_RELATIVE_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT nvim.pot
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DXGETTEXT_PRG=${XGETTEXT_PRG}
|
||||
-DPOT_FILE=${NVIM_POT}
|
||||
-DSEARCH_DIR=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
"\"-DSOURCES=${NVIM_RELATIVE_SOURCES}\""
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunXgettext.cmake
|
||||
OUTPUT ${NVIM_POT}
|
||||
COMMAND ${XGETTEXT_PRG} -o ${NVIM_POT} --default-domain=nvim
|
||||
--add-comments --keyword=_ --keyword=N_ -D ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${NVIM_RELATIVE_SOURCES}
|
||||
DEPENDS ${NVIM_SOURCES})
|
||||
|
||||
add_custom_target(potfile DEPENDS ${NVIM_POT})
|
||||
set_target_properties(potfile PROPERTIES FOLDER po)
|
||||
|
||||
set(LANGUAGE_MO_FILES)
|
||||
set(UPDATE_PO_TARGETS)
|
||||
|
||||
@ -68,11 +62,7 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${moFile}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DMSGFMT_PRG=${GETTEXT_MSGFMT_EXECUTABLE}
|
||||
-DMO_FILE=${moFile}
|
||||
-DPO_FILE=${poFile}
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunMsgfmt.cmake
|
||||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} -o ${moFile} ${poFile}
|
||||
DEPENDS ${poFile} ${NVIM_POT})
|
||||
|
||||
install_helper(
|
||||
@ -101,8 +91,6 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
lang inputName outputName inputEnc outputEnc outputCharSet)
|
||||
set(inputFile ${CMAKE_CURRENT_SOURCE_DIR}/${inputName}.po)
|
||||
set(outputFile ${CMAKE_CURRENT_SOURCE_DIR}/${outputName}.po)
|
||||
string(TOUPPER ${inputEnc} upperInputEnc)
|
||||
string(TOLOWER ${inputEnc} lowerInputEnc)
|
||||
|
||||
add_custom_target(update-po-${lang}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
@ -172,11 +160,8 @@ if(HAVE_WORKING_LIBINTL AND GETTEXT_FOUND AND XGETTEXT_PRG AND ICONV_PRG)
|
||||
set(poFile "${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE}.po")
|
||||
|
||||
add_custom_target(update-po-${LANGUAGE}
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DMSGMERGE_PRG=${GETTEXT_MSGMERGE_EXECUTABLE}
|
||||
-DPO_FILE=${poFile}
|
||||
-DPOT_FILE=${NVIM_POT}
|
||||
-P ${PROJECT_SOURCE_DIR}/cmake/RunMsgmerge.cmake
|
||||
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} -q --update --backup=none --sort-by-file
|
||||
${poFile} ${NVIM_POT}
|
||||
COMMENT "Updating ${LANGUAGE}.po"
|
||||
DEPENDS ${NVIM_POT})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user