diff options
Diffstat (limited to 'third-party/cmake')
-rw-r--r-- | third-party/cmake/BuildLibtermkey.cmake | 48 | ||||
-rw-r--r-- | third-party/cmake/BuildLua.cmake | 19 | ||||
-rw-r--r-- | third-party/cmake/BuildLuarocks.cmake | 11 | ||||
-rw-r--r-- | third-party/cmake/BuildLuv.cmake | 8 | ||||
-rw-r--r-- | third-party/cmake/BuildMsgpack.cmake | 3 | ||||
-rw-r--r-- | third-party/cmake/DownloadAndExtractFile.cmake | 2 |
6 files changed, 69 insertions, 22 deletions
diff --git a/third-party/cmake/BuildLibtermkey.cmake b/third-party/cmake/BuildLibtermkey.cmake index 57e14d36d3..4b581c2a01 100644 --- a/third-party/cmake/BuildLibtermkey.cmake +++ b/third-party/cmake/BuildLibtermkey.cmake @@ -1,21 +1,41 @@ -if(WIN32) - message(STATUS "Building libtermkey in Windows is not supported (skipping)") - return() -endif() find_package(PkgConfig REQUIRED) +if(WIN32) +ExternalProject_Add(libtermkey + 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} ${DEPS_BUILD_DIR}/src/libtermkey + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + # Hack to avoid -rdynamic in Mingw + -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) +else() ExternalProject_Add(libtermkey 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 + -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 "" BUILD_IN_SOURCE 1 BUILD_COMMAND "" @@ -24,6 +44,10 @@ ExternalProject_Add(libtermkey PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig CFLAGS=-fPIC install) +endif() list(APPEND THIRD_PARTY_DEPS libtermkey) -add_dependencies(libtermkey unibilium) +if(NOT WIN32) + # There is no unibilium build recipe for Windows yet + add_dependencies(libtermkey unibilium) +endif() diff --git a/third-party/cmake/BuildLua.cmake b/third-party/cmake/BuildLua.cmake index 1c5e2a186c..ea1371d1d5 100644 --- a/third-party/cmake/BuildLua.cmake +++ b/third-party/cmake/BuildLua.cmake @@ -51,19 +51,32 @@ else() endif() endif() +set(LUA_CFLAGS "-O0 -g3 -fPIC") +set(LUA_LDFLAGS "") + +if(CLANG_ASAN_UBSAN) + set(LUA_CFLAGS "${LUA_CFLAGS} -fsanitize=address") + set(LUA_CFLAGS "${LUA_CFLAGS} -fno-omit-frame-pointer") + set(LUA_CFLAGS "${LUA_CFLAGS} -fno-optimize-sibling-calls") + + set(LUA_LDFLAGS "${LUA_LDFLAGS} -fsanitize=address") +endif() + set(LUA_CONFIGURE_COMMAND sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}@" - -e "/^CFLAGS/s@-O2@-g3@" + -e "/^CFLAGS/s@-O2@${LUA_CFLAGS}@" + -e "/^MYLDFLAGS/s@$@${LUA_LDFLAGS}@" -e "s@-lreadline@@g" -e "s@-lhistory@@g" -e "s@-lncurses@@g" -i ${DEPS_BUILD_DIR}/src/lua/src/Makefile && sed -e "/#define LUA_USE_READLINE/d" -i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h) +set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") set(LUA_BUILD_COMMAND - ${MAKE_PRG} ${LUA_TARGET}) + ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET}) set(LUA_INSTALL_COMMAND - ${MAKE_PRG} INSTALL_TOP=${DEPS_INSTALL_DIR} install) + ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install) message(STATUS "Lua target is ${LUA_TARGET}") diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake index 9ea96b7cc5..ef8a8450f1 100644 --- a/third-party/cmake/BuildLuarocks.cmake +++ b/third-party/cmake/BuildLuarocks.cmake @@ -41,6 +41,9 @@ endfunction() # The luarocks binary location set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks) +# NOTE: Version must match version of LuaRocks in third-party/CMakeLists.txt +set(LUAROCKS_VERSION 2.4) + # Arguments for calls to 'luarocks build' if(NOT MSVC) # In MSVC don't pass the compiler/linker to luarocks, the bundled @@ -73,13 +76,13 @@ elseif(MSVC OR MINGW) /LIB ${DEPS_LIB_DIR} /BIN ${DEPS_BIN_DIR} /INC ${DEPS_INSTALL_DIR}/include/luajit-2.0/ - /P ${DEPS_INSTALL_DIR} /TREE ${DEPS_INSTALL_DIR} + /P ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION} /TREE ${DEPS_INSTALL_DIR} /SCRIPTS ${DEPS_BIN_DIR} /CMOD ${DEPS_BIN_DIR} ${MINGW_FLAG} /LUAMOD ${DEPS_BIN_DIR}/lua) - set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/2.2/luarocks.bat) + set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION}/luarocks.bat) else() message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() @@ -137,7 +140,7 @@ if(USE_BUNDLED_BUSTED) endif() add_custom_command(OUTPUT ${BUSTED_EXE} COMMAND ${LUAROCKS_BINARY} - ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc11-0/busted-2.0.rc11-0.rockspec ${LUAROCKS_BUILDARGS} + ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/v2.0.rc12-1/busted-2.0.rc12-1.rockspec ${LUAROCKS_BUILDARGS} DEPENDS penlight) add_custom_target(busted DEPENDS ${BUSTED_EXE}) @@ -167,7 +170,7 @@ if(USE_BUNDLED_BUSTED) add_custom_command(OUTPUT ${HOSTDEPS_LIB_DIR}/luarocks/rocks/nvim-client COMMAND ${LUAROCKS_BINARY} - ARGS build https://raw.githubusercontent.com/neovim/lua-client/0.0.1-25/nvim-client-0.0.1-25.rockspec ${LUAROCKS_BUILDARGS} + ARGS build https://raw.githubusercontent.com/neovim/lua-client/0.0.1-26/nvim-client-0.0.1-26.rockspec ${LUAROCKS_BUILDARGS} DEPENDS luv) add_custom_target(nvim-client DEPENDS ${HOSTDEPS_LIB_DIR}/luarocks/rocks/nvim-client) diff --git a/third-party/cmake/BuildLuv.cmake b/third-party/cmake/BuildLuv.cmake index 8ba4a0b41b..2a786dd8f3 100644 --- a/third-party/cmake/BuildLuv.cmake +++ b/third-party/cmake/BuildLuv.cmake @@ -87,5 +87,9 @@ BuildLuv(PATCH_COMMAND ${LUV_PATCH_COMMAND} INSTALL_COMMAND ${LUV_INSTALL_COMMAND}) list(APPEND THIRD_PARTY_DEPS luv-static) -add_dependencies(luv-static luajit) -add_dependencies(luv-static libuv) +if(USE_BUNDLED_LUAJIT) + add_dependencies(luv-static luajit) +endif() +if(USE_BUNDLED_LIBUV) + add_dependencies(luv-static libuv) +endif() diff --git a/third-party/cmake/BuildMsgpack.cmake b/third-party/cmake/BuildMsgpack.cmake index 6b38508b0b..779cb1ebfe 100644 --- a/third-party/cmake/BuildMsgpack.cmake +++ b/third-party/cmake/BuildMsgpack.cmake @@ -35,6 +35,7 @@ endfunction() set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DMSGPACK_ENABLE_CXX=OFF -DMSGPACK_BUILD_TESTS=OFF + -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} @@ -49,6 +50,7 @@ if(MINGW AND CMAKE_CROSSCOMPILING) set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DMSGPACK_ENABLE_CXX=OFF -DMSGPACK_BUILD_TESTS=OFF + -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} # Pass toolchain -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} @@ -60,6 +62,7 @@ elseif(MSVC) set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DMSGPACK_ENABLE_CXX=OFF -DMSGPACK_BUILD_TESTS=OFF + -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}" diff --git a/third-party/cmake/DownloadAndExtractFile.cmake b/third-party/cmake/DownloadAndExtractFile.cmake index 24e431b5e5..2fc6e0415f 100644 --- a/third-party/cmake/DownloadAndExtractFile.cmake +++ b/third-party/cmake/DownloadAndExtractFile.cmake @@ -39,7 +39,7 @@ if(TIMEOUT) set(timeout_args TIMEOUT ${timeout}) set(timeout_msg "${timeout} seconds") else() - set(timeout_args "# no TIMEOUT") + set(timeout_args "") set(timeout_msg "none") endif() |