Merge pull request #19958 from dundargoc/build/cmake/cleanup

build: remove ARGS from add_custom_command
It's a command that doesn't do anything, kept only for compatibility
reasons.

build: remove unnecessary policy related code
Having cmake version 3.10 as the required minimum version ensures these
are set to new by default.

build: replace deprecated CMAKE_COMPILER_IS_GNUCC variable
Instead use the recommended form CMAKE_C_COMPILER_ID MATCHES "GNU"

build: remove unnecessary build functions
These functions serve no purpose if they're only used as intermediary
functions that passes on arguments to ExternalProject_Add.
This commit is contained in:
Christian Clason 2022-09-08 14:51:27 +02:00 committed by GitHub
commit bb35422659
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 192 additions and 372 deletions

View File

@ -6,12 +6,6 @@
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(nvim C) project(nvim C)
if(POLICY CMP0065)
cmake_policy(SET CMP0065 NEW)
endif()
if(POLICY CMP0060)
cmake_policy(SET CMP0060 NEW)
endif()
if(POLICY CMP0075) if(POLICY CMP0075)
cmake_policy(SET CMP0075 NEW) cmake_policy(SET CMP0075 NEW)
endif() endif()
@ -102,7 +96,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
# Work around some old, broken detection by CMake for knowing when to use the # Work around some old, broken detection by CMake for knowing when to use the
# isystem flag. Apple's compilers have supported this for quite some time # isystem flag. Apple's compilers have supported this for quite some time
# now. # now.
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_C_COMPILER_ID MATCHES "GNU")
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ") set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
endif() endif()
endif() endif()
@ -176,7 +170,7 @@ if(CMAKE_C_FLAGS_RELEASE MATCHES "-O3")
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
endif() endif()
if(CMAKE_COMPILER_IS_GNUCC) if(CMAKE_C_COMPILER_ID MATCHES "GNU")
check_c_compiler_flag(-Og HAS_OG_FLAG) check_c_compiler_flag(-Og HAS_OG_FLAG)
else() else()
set(HAS_OG_FLAG 0) set(HAS_OG_FLAG 0)

View File

@ -1,17 +1,5 @@
if(WIN32) if(WIN32)
ExternalProject_Add(libtermkey set(LIBTERMKEY_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
PREFIX ${DEPS_BUILD_DIR}
URL ${LIBTERMKEY_URL}
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 ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey
@ -24,11 +12,17 @@ ExternalProject_Add(libtermkey
-DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
-DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
-DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX})
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> set(LIBTERMKEY_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>) set(LIBTERMKEY_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
else() else()
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
set(LIBTERMKEY_BUILD_COMMAND "" BUILD_IN_SOURCE 1)
set(LIBTERMKEY_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
PREFIX=${DEPS_INSTALL_DIR} PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig
CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install)
endif()
ExternalProject_Add(libtermkey ExternalProject_Add(libtermkey
PREFIX ${DEPS_BUILD_DIR} PREFIX ${DEPS_BUILD_DIR}
@ -42,16 +36,8 @@ ExternalProject_Add(libtermkey
-DTARGET=libtermkey -DTARGET=libtermkey
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
CONFIGURE_COMMAND "" CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}"
BUILD_IN_SOURCE 1 BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}"
BUILD_COMMAND "" INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}")
INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
PREFIX=${DEPS_INSTALL_DIR}
PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig
CFLAGS=-fPIC
LDFLAGS+=-static
${DEFAULT_MAKE_CFLAGS}
install)
endif()
list(APPEND THIRD_PARTY_DEPS libtermkey) list(APPEND THIRD_PARTY_DEPS libtermkey)

View File

@ -1,36 +1,3 @@
# BuildLibvterm(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Failing to pass a command argument will result in no command being run
function(BuildLibvterm)
cmake_parse_arguments(_libvterm
""
""
"PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _libvterm_CONFIGURE_COMMAND AND NOT _libvterm_BUILD_COMMAND
AND NOT _libvterm_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
ExternalProject_Add(libvterm
PREFIX ${DEPS_BUILD_DIR}
URL ${LIBVTERM_URL}
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
PATCH_COMMAND "${_libvterm_PATCH_COMMAND}"
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND "${_libvterm_CONFIGURE_COMMAND}"
BUILD_COMMAND "${_libvterm_BUILD_COMMAND}"
INSTALL_COMMAND "${_libvterm_INSTALL_COMMAND}")
endfunction()
if(WIN32) if(WIN32)
set(LIBVTERM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy set(LIBVTERM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt
@ -59,9 +26,21 @@ else()
install) install)
endif() endif()
BuildLibvterm(PATCH_COMMAND ${LIBVTERM_PATCH_COMMAND} ExternalProject_Add(libvterm
CONFIGURE_COMMAND ${LIBVTERM_CONFIGURE_COMMAND} PREFIX ${DEPS_BUILD_DIR}
BUILD_COMMAND ${LIBVTERM_BUILD_COMMAND} URL ${LIBVTERM_URL}
INSTALL_COMMAND ${LIBVTERM_INSTALL_COMMAND}) 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}"
INSTALL_COMMAND "${LIBVTERM_INSTALL_COMMAND}")
list(APPEND THIRD_PARTY_DEPS libvterm) list(APPEND THIRD_PARTY_DEPS libvterm)

View File

@ -1,36 +1,3 @@
# BuildLua(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Reusable function to build lua, wraps ExternalProject_Add.
# Failing to pass a command argument will result in no command being run
function(BuildLua)
cmake_parse_arguments(_lua
""
""
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _lua_CONFIGURE_COMMAND AND NOT _lua_BUILD_COMMAND
AND NOT _lua_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
ExternalProject_Add(lua
PREFIX ${DEPS_BUILD_DIR}
URL ${LUA_URL}
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 "${_lua_BUILD_COMMAND}"
INSTALL_COMMAND "${_lua_INSTALL_COMMAND}")
endfunction()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux") if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(LUA_TARGET linux) set(LUA_TARGET linux)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
@ -72,16 +39,26 @@ set(LUA_CONFIGURE_COMMAND
-e "s@\\(#define LUA_ROOT[ ]*\"\\)/usr/local@\\1${DEPS_INSTALL_DIR}@" -e "s@\\(#define LUA_ROOT[ ]*\"\\)/usr/local@\\1${DEPS_INSTALL_DIR}@"
-i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h) -i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h)
set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}")
set(LUA_BUILD_COMMAND
${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET})
set(LUA_INSTALL_COMMAND
${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install)
message(STATUS "Lua target is ${LUA_TARGET}") message(STATUS "Lua target is ${LUA_TARGET}")
BuildLua(CONFIGURE_COMMAND ${LUA_CONFIGURE_COMMAND} ExternalProject_Add(lua
BUILD_COMMAND ${LUA_BUILD_COMMAND} PREFIX ${DEPS_BUILD_DIR}
INSTALL_COMMAND ${LUA_INSTALL_COMMAND}) URL ${LUA_URL}
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}
INSTALL_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install)
list(APPEND THIRD_PARTY_DEPS lua) list(APPEND THIRD_PARTY_DEPS lua)
set(BUSTED ${DEPS_INSTALL_DIR}/bin/busted) set(BUSTED ${DEPS_INSTALL_DIR}/bin/busted)

View File

@ -9,39 +9,6 @@
option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON) option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON)
# BuildLuarocks(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Reusable function to build luarocks, wraps ExternalProject_Add.
# Failing to pass a command argument will result in no command being run
function(BuildLuarocks)
cmake_parse_arguments(_luarocks
""
""
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _luarocks_CONFIGURE_COMMAND AND NOT _luarocks_BUILD_COMMAND
AND NOT _luarocks_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
ExternalProject_Add(luarocks
PREFIX ${DEPS_BUILD_DIR}
URL ${LUAROCKS_URL}
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 "${_luarocks_BUILD_COMMAND}"
INSTALL_COMMAND "${_luarocks_INSTALL_COMMAND}")
endfunction()
# The luarocks binary location # The luarocks binary location
set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks) set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks)
@ -90,10 +57,9 @@ if(UNIX)
endif() endif()
endif() endif()
BuildLuarocks( set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure
CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure --prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS})
--prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS} set(LUAROCKS_INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap)
INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap)
elseif(MSVC OR MINGW) elseif(MSVC OR MINGW)
if(MINGW) if(MINGW)
@ -103,7 +69,7 @@ elseif(MSVC OR MINGW)
endif() endif()
# Ignore USE_BUNDLED_LUAJIT - always ON for native Win32 # Ignore USE_BUNDLED_LUAJIT - always ON for native Win32
BuildLuarocks(INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F set(LUAROCKS_INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F
/LUA ${DEPS_INSTALL_DIR} /LUA ${DEPS_INSTALL_DIR}
/LIB ${DEPS_LIB_DIR} /LIB ${DEPS_LIB_DIR}
/BIN ${DEPS_BIN_DIR} /BIN ${DEPS_BIN_DIR}
@ -119,6 +85,23 @@ else()
message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif() endif()
ExternalProject_Add(luarocks
PREFIX ${DEPS_BUILD_DIR}
URL ${LUAROCKS_URL}
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 ""
INSTALL_COMMAND "${LUAROCKS_INSTALL_COMMAND}")
list(APPEND THIRD_PARTY_DEPS luarocks) list(APPEND THIRD_PARTY_DEPS luarocks)
if(USE_BUNDLED_LUAJIT) if(USE_BUNDLED_LUAJIT)
@ -130,16 +113,14 @@ set(ROCKS_DIR ${HOSTDEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION})
# mpack # mpack
add_custom_command(OUTPUT ${ROCKS_DIR}/mpack add_custom_command(OUTPUT ${ROCKS_DIR}/mpack
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build mpack 1.0.8-0 ${LUAROCKS_BUILDARGS}
ARGS build mpack 1.0.8-0 ${LUAROCKS_BUILDARGS}
DEPENDS luarocks) DEPENDS luarocks)
add_custom_target(mpack DEPENDS ${ROCKS_DIR}/mpack) add_custom_target(mpack DEPENDS ${ROCKS_DIR}/mpack)
list(APPEND THIRD_PARTY_DEPS mpack) list(APPEND THIRD_PARTY_DEPS mpack)
# lpeg # lpeg
add_custom_command(OUTPUT ${ROCKS_DIR}/lpeg add_custom_command(OUTPUT ${ROCKS_DIR}/lpeg
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build lpeg 1.0.2-1 ${LUAROCKS_BUILDARGS}
ARGS build lpeg 1.0.2-1 ${LUAROCKS_BUILDARGS}
DEPENDS mpack) DEPENDS mpack)
add_custom_target(lpeg DEPENDS ${ROCKS_DIR}/lpeg) add_custom_target(lpeg DEPENDS ${ROCKS_DIR}/lpeg)
list(APPEND THIRD_PARTY_DEPS lpeg) list(APPEND THIRD_PARTY_DEPS lpeg)
@ -147,8 +128,7 @@ list(APPEND THIRD_PARTY_DEPS lpeg)
if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA) if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA)
# luabitop # luabitop
add_custom_command(OUTPUT ${ROCKS_DIR}/luabitop add_custom_command(OUTPUT ${ROCKS_DIR}/luabitop
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build luabitop 1.0.2-3 ${LUAROCKS_BUILDARGS}
ARGS build luabitop 1.0.2-3 ${LUAROCKS_BUILDARGS}
DEPENDS lpeg) DEPENDS lpeg)
add_custom_target(luabitop DEPENDS ${ROCKS_DIR}/luabitop) add_custom_target(luabitop DEPENDS ${ROCKS_DIR}/luabitop)
list(APPEND THIRD_PARTY_DEPS luabitop) list(APPEND THIRD_PARTY_DEPS luabitop)
@ -163,8 +143,7 @@ if(USE_BUNDLED_BUSTED)
# penlight # penlight
add_custom_command(OUTPUT ${ROCKS_DIR}/penlight add_custom_command(OUTPUT ${ROCKS_DIR}/penlight
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS}
ARGS build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS}
DEPENDS ${PENLIGHT_DEPENDS}) DEPENDS ${PENLIGHT_DEPENDS})
add_custom_target(penlight DEPENDS ${ROCKS_DIR}/penlight) add_custom_target(penlight DEPENDS ${ROCKS_DIR}/penlight)
@ -177,15 +156,13 @@ if(USE_BUNDLED_BUSTED)
set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck") set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck")
endif() endif()
add_custom_command(OUTPUT ${BUSTED_EXE} add_custom_command(OUTPUT ${BUSTED_EXE}
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build busted 2.0.0 ${LUAROCKS_BUILDARGS}
ARGS build busted 2.0.0 ${LUAROCKS_BUILDARGS}
DEPENDS penlight) DEPENDS penlight)
add_custom_target(busted DEPENDS ${BUSTED_EXE}) add_custom_target(busted DEPENDS ${BUSTED_EXE})
# luacheck # luacheck
add_custom_command(OUTPUT ${LUACHECK_EXE} add_custom_command(OUTPUT ${LUACHECK_EXE}
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS}
ARGS build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS}
DEPENDS busted) DEPENDS busted)
add_custom_target(luacheck DEPENDS ${LUACHECK_EXE}) add_custom_target(luacheck DEPENDS ${LUACHECK_EXE})
@ -195,8 +172,7 @@ if(USE_BUNDLED_BUSTED)
set(NVIM_CLIENT_DEPS luacheck luv-static lua-compat-5.3) set(NVIM_CLIENT_DEPS luacheck luv-static lua-compat-5.3)
else() else()
add_custom_command(OUTPUT ${ROCKS_DIR}/luv add_custom_command(OUTPUT ${ROCKS_DIR}/luv
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS}
ARGS build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS}
DEPENDS luacheck) DEPENDS luacheck)
add_custom_target(luv DEPENDS ${ROCKS_DIR}/luv) add_custom_target(luv DEPENDS ${ROCKS_DIR}/luv)
set(NVIM_CLIENT_DEPS luv) set(NVIM_CLIENT_DEPS luv)
@ -204,8 +180,7 @@ if(USE_BUNDLED_BUSTED)
# nvim-client: https://github.com/neovim/lua-client # nvim-client: https://github.com/neovim/lua-client
add_custom_command(OUTPUT ${ROCKS_DIR}/nvim-client add_custom_command(OUTPUT ${ROCKS_DIR}/nvim-client
COMMAND ${LUAROCKS_BINARY} COMMAND ${LUAROCKS_BINARY} build nvim-client 0.2.4-1 ${LUAROCKS_BUILDARGS}
ARGS build nvim-client 0.2.4-1 ${LUAROCKS_BUILDARGS}
DEPENDS ${NVIM_CLIENT_DEPS}) DEPENDS ${NVIM_CLIENT_DEPS})
add_custom_target(nvim-client DEPENDS ${ROCKS_DIR}/nvim-client) add_custom_target(nvim-client DEPENDS ${ROCKS_DIR}/nvim-client)

View File

@ -1,57 +1,3 @@
# BuildLuv(PATCH_COMMAND ... CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Reusable function to build luv, wraps ExternalProject_Add.
# Failing to pass a command argument will result in no command being run
function(BuildLuv)
cmake_parse_arguments(_luv
""
""
"PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _luv_CONFIGURE_COMMAND AND NOT _luv_BUILD_COMMAND
AND NOT _luv_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
ExternalProject_Add(lua-compat-5.3
PREFIX ${DEPS_BUILD_DIR}
URL ${LUA_COMPAT53_URL}
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
PATCH_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND "")
ExternalProject_Add(luv-static
PREFIX ${DEPS_BUILD_DIR}
DEPENDS lua-compat-5.3
URL ${LUV_URL}
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
PATCH_COMMAND "${_luv_PATCH_COMMAND}"
CONFIGURE_COMMAND "${_luv_CONFIGURE_COMMAND}"
BUILD_COMMAND "${_luv_BUILD_COMMAND}"
INSTALL_COMMAND "${_luv_INSTALL_COMMAND}"
LIST_SEPARATOR |)
endfunction()
set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv) set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv)
set(LUV_INCLUDE_FLAGS set(LUV_INCLUDE_FLAGS
"-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1")
@ -110,13 +56,41 @@ else()
endif() endif()
endif() endif()
set(LUV_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>) ExternalProject_Add(lua-compat-5.3
set(LUV_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>) PREFIX ${DEPS_BUILD_DIR}
URL ${LUA_COMPAT53_URL}
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 "")
BuildLuv(PATCH_COMMAND ${LUV_PATCH_COMMAND} ExternalProject_Add(luv-static
CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} PREFIX ${DEPS_BUILD_DIR}
BUILD_COMMAND ${LUV_BUILD_COMMAND} DEPENDS lua-compat-5.3
INSTALL_COMMAND ${LUV_INSTALL_COMMAND}) URL ${LUV_URL}
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
CONFIGURE_COMMAND "${LUV_CONFIGURE_COMMAND}"
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>
LIST_SEPARATOR |)
list(APPEND THIRD_PARTY_DEPS luv-static) list(APPEND THIRD_PARTY_DEPS luv-static)
if(USE_BUNDLED_LUAJIT) if(USE_BUNDLED_LUAJIT)

View File

@ -1,36 +1,3 @@
# BuildMsgpack(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
# Reusable function to build msgpack, wraps ExternalProject_Add.
# Failing to pass a command argument will result in no command being run
function(BuildMsgpack)
cmake_parse_arguments(_msgpack
""
""
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
${ARGN})
if(NOT _msgpack_CONFIGURE_COMMAND AND NOT _msgpack_BUILD_COMMAND
AND NOT _msgpack_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
ExternalProject_Add(msgpack
PREFIX ${DEPS_BUILD_DIR}
URL ${MSGPACK_URL}
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 "${_msgpack_BUILD_COMMAND}"
INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}"
LIST_SEPARATOR |)
endfunction()
set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
-DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_TESTS=OFF
-DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_EXAMPLES=OFF
@ -40,9 +7,6 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC" "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC"
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
if(MSVC) if(MSVC)
# Same as Unix without fPIC # Same as Unix without fPIC
set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
@ -58,8 +22,21 @@ if(MSVC)
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
endif() endif()
BuildMsgpack(CONFIGURE_COMMAND ${MSGPACK_CONFIGURE_COMMAND} ExternalProject_Add(msgpack
BUILD_COMMAND ${MSGPACK_BUILD_COMMAND} PREFIX ${DEPS_BUILD_DIR}
INSTALL_COMMAND ${MSGPACK_INSTALL_COMMAND}) URL ${MSGPACK_URL}
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>
LIST_SEPARATOR |)
list(APPEND THIRD_PARTY_DEPS msgpack) list(APPEND THIRD_PARTY_DEPS msgpack)

View File

@ -1,20 +1,23 @@
# BuildTreeSitter(TARGET targetname CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) if(MSVC)
function(BuildTreeSitter) set(TREESITTER_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
cmake_parse_arguments(_treesitter ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
"BUILD_IN_SOURCE" ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt
"TARGET" COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
${ARGN}) -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
${BUILD_TYPE_STRING}
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR})
set(TREESITTER_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
set(TREESITTER_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
else()
set(TS_CFLAGS "-O3 -Wall -Wextra")
set(TREESITTER_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} CFLAGS=${TS_CFLAGS})
set(TREESITTER_INSTALL_COMMAND
${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install)
endif()
if(NOT _treesitter_CONFIGURE_COMMAND AND NOT _treesitter_BUILD_COMMAND ExternalProject_Add(tree-sitter
AND NOT _treesitter_INSTALL_COMMAND)
message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
endif()
if(NOT _treesitter_TARGET)
set(_treesitter_TARGET "tree-sitter")
endif()
ExternalProject_Add(tree-sitter
PREFIX ${DEPS_BUILD_DIR} PREFIX ${DEPS_BUILD_DIR}
URL ${TREESITTER_URL} URL ${TREESITTER_URL}
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter
@ -27,33 +30,9 @@ function(BuildTreeSitter)
-DTARGET=tree-sitter -DTARGET=tree-sitter
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
BUILD_IN_SOURCE ${_treesitter_BUILD_IN_SOURCE} BUILD_IN_SOURCE 1
PATCH_COMMAND "" CONFIGURE_COMMAND "${TREESITTER_CONFIGURE_COMMAND}"
CONFIGURE_COMMAND "${_treesitter_CONFIGURE_COMMAND}" BUILD_COMMAND "${TREESITTER_BUILD_COMMAND}"
BUILD_COMMAND "${_treesitter_BUILD_COMMAND}" INSTALL_COMMAND "${TREESITTER_INSTALL_COMMAND}")
INSTALL_COMMAND "${_treesitter_INSTALL_COMMAND}")
endfunction()
if(MSVC)
BuildTreeSitter(BUILD_IN_SOURCE
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
${BUILD_TYPE_STRING}
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>
)
else()
set(TS_CFLAGS "-O3 -Wall -Wextra")
BuildTreeSitter(BUILD_IN_SOURCE
CONFIGURE_COMMAND ""
BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} CFLAGS=${TS_CFLAGS}
INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install)
endif()
list(APPEND THIRD_PARTY_DEPS tree-sitter) list(APPEND THIRD_PARTY_DEPS tree-sitter)

View File

@ -1,17 +1,5 @@
if(WIN32) if(WIN32)
ExternalProject_Add(unibilium set(UNIBILIUM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
PREFIX ${DEPS_BUILD_DIR}
URL ${UNIBILIUM_URL}
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 ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt
${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium
@ -20,11 +8,17 @@ if(WIN32)
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
${BUILD_TYPE_STRING} ${BUILD_TYPE_STRING}
-DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> set(UNIBILIUM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>) set(UNIBILIUM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
else() else()
ExternalProject_Add(unibilium set(UNIBILIUM_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
PREFIX=${DEPS_INSTALL_DIR} CFLAGS=-fPIC LDFLAGS+=-static
BUILD_IN_SOURCE 1)
set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install)
endif()
ExternalProject_Add(unibilium
PREFIX ${DEPS_BUILD_DIR} PREFIX ${DEPS_BUILD_DIR}
URL ${UNIBILIUM_URL} URL ${UNIBILIUM_URL}
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
@ -36,13 +30,8 @@ else()
-DTARGET=unibilium -DTARGET=unibilium
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
CONFIGURE_COMMAND "" CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}"
BUILD_IN_SOURCE 1 BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}"
BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}")
PREFIX=${DEPS_INSTALL_DIR}
CFLAGS=-fPIC
LDFLAGS+=-static
INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install)
endif()
list(APPEND THIRD_PARTY_DEPS unibilium) list(APPEND THIRD_PARTY_DEPS unibilium)

View File

@ -1,11 +1,6 @@
# Set LC_ALL to meet expectations of some locale-sensitive tests. # Set LC_ALL to meet expectations of some locale-sensitive tests.
set(ENV{LC_ALL} "en_US.UTF-8") set(ENV{LC_ALL} "en_US.UTF-8")
if(POLICY CMP0012)
# Handle CI=true, without dev warnings.
cmake_policy(SET CMP0012 NEW)
endif()
set(ENV{VIMRUNTIME} ${WORKING_DIR}/runtime) set(ENV{VIMRUNTIME} ${WORKING_DIR}/runtime)
set(ENV{NVIM_RPLUGIN_MANIFEST} ${BUILD_DIR}/Xtest_rplugin_manifest) set(ENV{NVIM_RPLUGIN_MANIFEST} ${BUILD_DIR}/Xtest_rplugin_manifest)
set(ENV{XDG_CONFIG_HOME} ${BUILD_DIR}/Xtest_xdg/config) set(ENV{XDG_CONFIG_HOME} ${BUILD_DIR}/Xtest_xdg/config)

View File

@ -443,11 +443,6 @@ endif()
set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUA_PREFERRED_LIBRARIES}) set(NVIM_EXEC_LINK_LIBRARIES ${NVIM_LINK_LIBRARIES} ${LUA_PREFERRED_LIBRARIES})
# Add IPO flags (for LTO), or error if CMake does not know the flags. #8654
if(POLICY CMP0069)
cmake_policy(SET CMP0069 NEW)
endif()
add_executable(nvim ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS} add_executable(nvim ${NVIM_GENERATED_FOR_SOURCES} ${NVIM_GENERATED_FOR_HEADERS}
${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${NVIM_HEADERS} ${NVIM_GENERATED_SOURCES} ${NVIM_SOURCES} ${NVIM_HEADERS}
${EXTERNAL_SOURCES} ${EXTERNAL_HEADERS}) ${EXTERNAL_SOURCES} ${EXTERNAL_HEADERS})
@ -461,7 +456,7 @@ set_property(TARGET nvim APPEND PROPERTY
INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS}) INCLUDE_DIRECTORIES ${LUA_PREFERRED_INCLUDE_DIRS})
set_property(TARGET nvim PROPERTY ENABLE_EXPORTS TRUE) set_property(TARGET nvim PROPERTY ENABLE_EXPORTS TRUE)
if(ENABLE_LTO AND (POLICY CMP0069)) if(ENABLE_LTO)
include(CheckIPOSupported) include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_SUPPORTED) check_ipo_supported(RESULT IPO_SUPPORTED)
if(IPO_SUPPORTED AND (NOT CMAKE_BUILD_TYPE MATCHES Debug)) if(IPO_SUPPORTED AND (NOT CMAKE_BUILD_TYPE MATCHES Debug))