diff options
author | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2023-05-21 20:57:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-21 20:57:39 +0200 |
commit | 8b8e60728486e1fbb308bee2961175be355e550a (patch) | |
tree | 878a80ccf7a2453d16b4030aacd1f60fe503cb41 /cmake.deps/cmake | |
parent | 384a3bc308c95c9511eff1b85cd55357bdaedd9e (diff) | |
download | rneovim-8b8e60728486e1fbb308bee2961175be355e550a.tar.gz rneovim-8b8e60728486e1fbb308bee2961175be355e550a.tar.bz2 rneovim-8b8e60728486e1fbb308bee2961175be355e550a.zip |
build: move luarocks and rocks installation to main build
This will ensure luacheck and busted are only installed when they're
actually needed. This cuts total build time by over 50%.
Closes https://github.com/neovim/neovim/issues/22797.
Diffstat (limited to 'cmake.deps/cmake')
-rw-r--r-- | cmake.deps/cmake/BuildLua.cmake | 9 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLuajit.cmake | 5 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLuarocks.cmake | 133 |
3 files changed, 5 insertions, 142 deletions
diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index 3e7b5dee51..24da331867 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -51,12 +51,3 @@ ExternalProject_Add(lua BUILD_IN_SOURCE 1 BUILD_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET} INSTALL_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install) - -set(BUSTED ${DEPS_BIN_DIR}/busted) -set(BUSTED_LUA ${BUSTED}-lua) - -add_custom_command(OUTPUT ${BUSTED_LUA} - COMMAND sed -e 's/^exec/exec $$LUA_DEBUGGER/' -e 's/jit//g' < ${BUSTED} > ${BUSTED_LUA} && chmod +x ${BUSTED_LUA} - DEPENDS lua busted ${BUSTED}) -add_custom_target(busted-lua ALL - DEPENDS ${DEPS_BIN_DIR}/busted-lua) diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake index cb2e8b9292..554add1c4a 100644 --- a/cmake.deps/cmake/BuildLuajit.cmake +++ b/cmake.deps/cmake/BuildLuajit.cmake @@ -66,6 +66,11 @@ if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES)) elseif(CMAKE_OSX_ARCHITECTURES AND APPLE) + set(LUAJIT_C_COMPILER "${CMAKE_C_COMPILER}") + if(CMAKE_OSX_SYSROOT) + set(LUAJIT_C_COMPILER "${LUAJIT_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}") + endif() + # Passing multiple `-arch` flags to the LuaJIT build will cause it to fail. # To get a working universal build, we build each requested architecture slice # individually then `lipo` them all up. diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake deleted file mode 100644 index 5725507c36..0000000000 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ /dev/null @@ -1,133 +0,0 @@ -# Luarocks recipe. Luarocks is only required when testing 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. - -# The luarocks binary location -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=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}) -endif() - -# Lua version, used with rocks directories. -# Defaults to 5.1 for bundled LuaJIT/Lua. -set(LUA_VERSION "5.1") - -if(UNIX) - - if(USE_BUNDLED_LUAJIT) - list(APPEND LUAROCKS_OPTS - --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=${DEPS_INSTALL_DIR}) - else() - find_package(Luajit) - if(LUAJIT_FOUND) - list(APPEND LUAROCKS_OPTS - --with-lua-include=${LUAJIT_INCLUDE_DIR} - --with-lua-interpreter=luajit) - endif() - - # Get LUA_VERSION used with rocks output. - if(LUAJIT_FOUND) - set(LUA_EXE "luajit") - else() - set(LUA_EXE "lua") - endif() - execute_process( - COMMAND ${LUA_EXE} -e "print(string.sub(_VERSION, 5))" - OUTPUT_VARIABLE LUA_VERSION - ERROR_VARIABLE ERR - RESULT_VARIABLE RES) - if(RES) - message(FATAL_ERROR "Could not get LUA_VERSION with ${LUA_EXE}: ${ERR}") - endif() - endif() - - set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure - --prefix=${DEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS}) - set(LUAROCKS_INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap) -elseif(MSVC OR MINGW) - - if(MINGW) - set(COMPILER_FLAG /MW) - elseif(MSVC) - set(COMPILER_FLAG /MSVC) - endif() - - # Ignore USE_BUNDLED_LUAJIT - always ON for native Win32 - set(LUAROCKS_INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F - /LUA ${DEPS_INSTALL_DIR} - /LIB ${DEPS_LIB_DIR} - /BIN ${DEPS_BIN_DIR} - /INC ${DEPS_INSTALL_DIR}/include/luajit-2.1 - /P ${DEPS_INSTALL_DIR}/luarocks /TREE ${DEPS_INSTALL_DIR} - /SCRIPTS ${DEPS_BIN_DIR} - /CMOD ${DEPS_BIN_DIR} - ${COMPILER_FLAG} - /LUAMOD ${DEPS_BIN_DIR}/lua) - - set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/luarocks/luarocks.bat) -else() - message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") -endif() - -ExternalProject_Add(luarocks - URL ${LUAROCKS_URL} - URL_HASH SHA256=${LUAROCKS_SHA256} - DOWNLOAD_NO_PROGRESS TRUE - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "${LUAROCKS_CONFIGURE_COMMAND}" - BUILD_COMMAND "" - INSTALL_COMMAND "${LUAROCKS_INSTALL_COMMAND}") - -if(USE_BUNDLED_LUAJIT) - add_dependencies(luarocks luajit) -elseif(USE_BUNDLED_LUA) - add_dependencies(luarocks lua) -endif() -set(ROCKS_DIR ${DEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION}) - -if(MSVC) - # Workaround for luarocks failing to find the md5sum.exe it is shipped with. - list(APPEND LUAROCKS_BUILDARGS MD5SUM=md5sum) - set(PATH PATH=${DEPS_INSTALL_DIR}/luarocks/tools;$ENV{PATH}) -endif() - -set(CURRENT_DEP luarocks) - -function(Download ROCK VER) - if(ARGV2) - set(OUTPUT ${ARGV2}) - else() - set(OUTPUT ${ROCKS_DIR}/${ROCK}) - endif() - add_custom_command(OUTPUT ${OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env "${PATH}" ${LUAROCKS_BINARY} build ${ROCK} ${VER} ${LUAROCKS_BUILDARGS} - DEPENDS ${CURRENT_DEP}) - add_custom_target(${ROCK} ALL DEPENDS ${OUTPUT}) - set(CURRENT_DEP ${ROCK} PARENT_SCOPE) -endfunction() - -if(WIN32) - set(BUSTED_EXE "${DEPS_BIN_DIR}/busted.bat") - set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck.bat") -else() - set(BUSTED_EXE "${DEPS_BIN_DIR}/busted") - set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck") -endif() - -Download(busted 2.1.1 ${BUSTED_EXE}) -Download(luacheck 1.1.0-1 ${LUACHECK_EXE}) - -if (USE_BUNDLED_LUA OR NOT USE_BUNDLED_LUAJIT) - Download(coxpcall 1.17.0-1) -endif() |