From fe9ec9c29956cb2bd4062d3e582412006d42292e Mon Sep 17 00:00:00 2001 From: Rui Abreu Ferreira Date: Sat, 18 Apr 2015 00:02:28 +0100 Subject: [PATCH 1/3] Add option USE_BUNDLED_BUSTED to third-party - When not running the unit tests, building the third-party busted, nvim-client and other dependencies can be skipped by passing -DUSE_BUNDLED_BUSTED=FALSE to the third-party project. --- third-party/cmake/BuildLuarocks.cmake | 96 +++++++++++++++------------ 1 file changed, 52 insertions(+), 44 deletions(-) diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index 590c41c5d5..c9b6cb49a0 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -1,3 +1,5 @@ +option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON) + if(USE_BUNDLED_LUAJIT) list(APPEND LUAROCKS_OPTS --with-lua=${DEPS_INSTALL_DIR} @@ -28,46 +30,12 @@ if(USE_BUNDLED_LUAJIT) add_dependencies(luarocks luajit) endif() -add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lua_cliargs 2.3-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luafilesystem 1.6.3-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build dkjson 2.5-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build say 1.3-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luassert 1.7.4-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lua-term 0.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build penlight 1.0.0-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build mediator_lua 1.1-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luasocket 3.0rc1-2 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build xml 1.1.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND touch ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps - DEPENDS luarocks) -add_custom_target(stable-busted-deps - DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps) - -add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - DEPENDS stable-busted-deps) -add_custom_target(busted - DEPENDS ${DEPS_BIN_DIR}/busted) - -# lua-messagepack doesn't depend on busted, but luarocks is unhappy to have -# two instances running in parallel. So we depend on busted to force it to -# be serialized. +# Each target depends on the previous module, this serializes all calls to +# luarocks since it is unhappy to be called in parallel. add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lua-messagepack COMMAND ${DEPS_BIN_DIR}/luarocks ARGS build lua-messagepack CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - DEPENDS busted) + DEPENDS luarocks) add_custom_target(lua-messagepack DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lua-messagepack) @@ -80,11 +48,51 @@ add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lpeg add_custom_target(lpeg DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lpeg) -add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build https://raw.githubusercontent.com/neovim/lua-client/8cc5b6090ac61cd0bba53ba984f15792fbb64573/nvim-client-0.0.1-11.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} LIBUV_DIR=${DEPS_INSTALL_DIR} - DEPENDS lpeg libuv) -add_custom_target(nvim-client - DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client) +list(APPEND THIRD_PARTY_DEPS lua-messagepack lpeg) -list(APPEND THIRD_PARTY_DEPS stable-busted-deps busted lua-messagepack lpeg nvim-client) +if(USE_BUNDLED_BUSTED) + # The following are only required if we want to run tests + # with busted + + add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build lua_cliargs 2.3-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build luafilesystem 1.6.3-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build dkjson 2.5-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build say 1.3-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build luassert 1.7.4-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build lua-term 0.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build penlight 1.0.0-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build mediator_lua 1.1-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build luasocket 3.0rc1-2 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build xml 1.1.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND touch ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps + DEPENDS lpeg) + add_custom_target(stable-busted-deps + DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps) + + add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + DEPENDS stable-busted-deps) + add_custom_target(busted + DEPENDS ${DEPS_BIN_DIR}/busted) + + add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client + COMMAND ${DEPS_BIN_DIR}/luarocks + ARGS build https://raw.githubusercontent.com/neovim/lua-client/8cc5b6090ac61cd0bba53ba984f15792fbb64573/nvim-client-0.0.1-11.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} LIBUV_DIR=${DEPS_INSTALL_DIR} + DEPENDS busted libuv) + add_custom_target(nvim-client + DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client) + + list(APPEND THIRD_PARTY_DEPS stable-busted-deps busted nvim-client) +endif() From 78460bdf044c477edc911584c7d6c128c1442151 Mon Sep 17 00:00:00 2001 From: Rui Abreu Ferreira Date: Sat, 18 Apr 2015 00:22:54 +0100 Subject: [PATCH 2/3] Refactor luarocks third-party recipe - Replace repeated use of the luarocks command and build arguments with variables ${LUAROCKS_BINARY} and ${LUAROCKS_BUILDARGS} --- third-party/cmake/BuildLuarocks.cmake | 61 +++++++++++++++------------ 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index c9b6cb49a0..72de6e9541 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -26,6 +26,11 @@ ExternalProject_Add(luarocks list(APPEND THIRD_PARTY_DEPS luarocks) +# The path to the luarocks executable +set(LUAROCKS_BINARY ${DEPS_BIN_DIR}/luarocks) +# Common build arguments for luarocks build +set(LUAROCKS_BUILDARGS CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}) + if(USE_BUNDLED_LUAJIT) add_dependencies(luarocks luajit) endif() @@ -33,8 +38,8 @@ endif() # Each target depends on the previous module, this serializes all calls to # luarocks since it is unhappy to be called in parallel. add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lua-messagepack - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lua-messagepack CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${LUAROCKS_BINARY} + ARGS build lua-messagepack ${LUAROCKS_BUILDARGS} DEPENDS luarocks) add_custom_target(lua-messagepack DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lua-messagepack) @@ -42,8 +47,8 @@ add_custom_target(lua-messagepack # Like before, depend on lua-messagepack to ensure serialization of install # commands add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/lpeg - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lpeg CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${LUAROCKS_BINARY} + ARGS build lpeg ${LUAROCKS_BUILDARGS} DEPENDS lua-messagepack) add_custom_target(lpeg DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/lpeg) @@ -55,41 +60,41 @@ if(USE_BUNDLED_BUSTED) # with busted add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lua_cliargs 2.3-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luafilesystem 1.6.3-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build dkjson 2.5-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build say 1.3-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luassert 1.7.4-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build lua-term 0.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build penlight 1.0.0-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build mediator_lua 1.1-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build luasocket 3.0rc1-2 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build xml 1.1.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${LUAROCKS_BINARY} + ARGS build lua_cliargs 2.3-3 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build luafilesystem 1.6.3-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build dkjson 2.5-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build say 1.3-0 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build luassert 1.7.4-0 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build lua-term 0.1-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build penlight 1.0.0-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build mediator_lua 1.1-3 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build luasocket 3.0rc1-2 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} + ARGS build xml 1.1.1-1 ${LUAROCKS_BUILDARGS} COMMAND touch ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps DEPENDS lpeg) add_custom_target(stable-busted-deps DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps) add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} + COMMAND ${LUAROCKS_BINARY} + ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec ${LUAROCKS_BUILDARGS} DEPENDS stable-busted-deps) add_custom_target(busted DEPENDS ${DEPS_BIN_DIR}/busted) add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client - COMMAND ${DEPS_BIN_DIR}/luarocks - ARGS build https://raw.githubusercontent.com/neovim/lua-client/8cc5b6090ac61cd0bba53ba984f15792fbb64573/nvim-client-0.0.1-11.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER} LIBUV_DIR=${DEPS_INSTALL_DIR} + COMMAND ${LUAROCKS_BINARY} + ARGS build https://raw.githubusercontent.com/neovim/lua-client/8cc5b6090ac61cd0bba53ba984f15792fbb64573/nvim-client-0.0.1-11.rockspec ${LUAROCKS_BUILDARGS} LIBUV_DIR=${DEPS_INSTALL_DIR} DEPENDS busted libuv) add_custom_target(nvim-client DEPENDS ${DEPS_LIB_DIR}/luarocks/rocks/nvim-client) From f67c3e67ab62fdd94f8bfb4fe5b83713b9f69377 Mon Sep 17 00:00:00 2001 From: Rui Abreu Ferreira Date: Wed, 22 Apr 2015 14:07:10 +0100 Subject: [PATCH 3/3] Update busted version to 2.0.rc8-0 --- third-party/cmake/BuildLuarocks.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index 72de6e9541..2f83cb8239 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -87,7 +87,7 @@ if(USE_BUNDLED_BUSTED) add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted COMMAND ${LUAROCKS_BINARY} - ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec ${LUAROCKS_BUILDARGS} + ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc8-0/busted-2.0.rc8-0.rockspec ${LUAROCKS_BUILDARGS} DEPENDS stable-busted-deps) add_custom_target(busted DEPENDS ${DEPS_BIN_DIR}/busted)