aboutsummaryrefslogtreecommitdiff
path: root/third-party/cmake/BuildLibtermkey.cmake
diff options
context:
space:
mode:
authorRui Abreu Ferreira <raf-ep@gmx.com>2017-03-18 00:06:47 +0000
committerJustin M. Keyes <justinkz@gmail.com>2017-05-03 12:48:24 +0200
commit685ca180f7c96f77a79c78d3b26bd003f8cd834c (patch)
treec8f74f7e9ca99ee323c7b25d3f4fc144962a7ac2 /third-party/cmake/BuildLibtermkey.cmake
parent31e5053253e1b341b341e772fa7f2e24d75488d3 (diff)
downloadrneovim-685ca180f7c96f77a79c78d3b26bd003f8cd834c.tar.gz
rneovim-685ca180f7c96f77a79c78d3b26bd003f8cd834c.tar.bz2
rneovim-685ca180f7c96f77a79c78d3b26bd003f8cd834c.zip
win: Terminal UI #6315
For CI builds unibilium is provided through msys2 packages, and libtermkey is built from source in third-party from equalsraf/libtermkey. In Windows we cannot read terminal input from the stdin file descriptor, instead use libuv's uv_tty API. It should handle key input and encoding. The UI suspend is not implemented for Windows, because the SIGSTP/SIGCONT do not exist in windows. Currently this is a NOOP. Closes #3902 Closes #6640
Diffstat (limited to 'third-party/cmake/BuildLibtermkey.cmake')
-rw-r--r--third-party/cmake/BuildLibtermkey.cmake48
1 files changed, 36 insertions, 12 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()