mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
Merge #8084 'build/win: support MSVC'
This commit is contained in:
commit
9cefd83cc7
@ -204,6 +204,7 @@ int main(void)
|
|||||||
if(MSVC)
|
if(MSVC)
|
||||||
# XXX: /W4 gives too many warnings. #3241
|
# XXX: /W4 gives too many warnings. #3241
|
||||||
add_definitions(/W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
|
add_definitions(/W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
|
||||||
|
add_definitions(-DWIN32)
|
||||||
else()
|
else()
|
||||||
add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
|
add_definitions(-Wall -Wextra -pedantic -Wno-unused-parameter
|
||||||
-Wstrict-prototypes -std=gnu99)
|
-Wstrict-prototypes -std=gnu99)
|
||||||
@ -223,6 +224,9 @@ endif()
|
|||||||
if(MINGW)
|
if(MINGW)
|
||||||
# Use POSIX compatible stdio in Mingw
|
# Use POSIX compatible stdio in Mingw
|
||||||
add_definitions(-D__USE_MINGW_ANSI_STDIO)
|
add_definitions(-D__USE_MINGW_ANSI_STDIO)
|
||||||
|
endif()
|
||||||
|
if(WIN32)
|
||||||
|
# Windows Vista is the minimum supported version
|
||||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
version: '{build}'
|
version: '{build}'
|
||||||
environment:
|
environment:
|
||||||
APPVEYOR_CACHE_ENTRY_ZIP_ARGS: "-t7z -m0=lzma -mx=9"
|
APPVEYOR_CACHE_ENTRY_ZIP_ARGS: "-t7z -m0=lzma -mx=9"
|
||||||
|
image: Visual Studio 2017
|
||||||
configuration:
|
configuration:
|
||||||
|
- MSVC_64
|
||||||
|
- MSVC_32
|
||||||
- MINGW_64
|
- MINGW_64
|
||||||
- MINGW_32
|
- MINGW_32
|
||||||
- MINGW_64-gcov
|
- MINGW_64-gcov
|
||||||
matrix:
|
matrix:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
|
- configuration: MSVC_64
|
||||||
|
- configuration: MSVC_32
|
||||||
- configuration: MINGW_64-gcov
|
- configuration: MINGW_64-gcov
|
||||||
install: []
|
install: []
|
||||||
before_build:
|
before_build:
|
||||||
|
53
ci/build.bat
53
ci/build.bat
@ -1,27 +1,34 @@
|
|||||||
:: These are native MinGW builds, but they use the toolchain inside
|
|
||||||
:: MSYS2, this allows using all the dependencies and tools available
|
|
||||||
:: in MSYS2, but we cannot build inside the MSYS2 shell.
|
|
||||||
echo on
|
echo on
|
||||||
if "%CONFIGURATION%" == "MINGW_32" (
|
if "%CONFIGURATION%" == "MINGW_32" (
|
||||||
set ARCH=i686
|
set ARCH=i686
|
||||||
set BITS=32
|
set BITS=32
|
||||||
) else (
|
) else if "%CONFIGURATION:~0,8%" == "MINGW_64" (
|
||||||
set ARCH=x86_64
|
set ARCH=x86_64
|
||||||
set BITS=64
|
set BITS=64
|
||||||
)
|
if "%CONFIGURATION%" == "MINGW_64-gcov" (
|
||||||
if "%CONFIGURATION%" == "MINGW_64-gcov" (
|
set USE_GCOV="-DUSE_GCOV=ON"
|
||||||
set USE_GCOV="-DUSE_GCOV=ON"
|
)
|
||||||
|
) else if "%CONFIGURATION%" == "MSVC_32" (
|
||||||
|
set CMAKE_GENERATOR="Visual Studio 15 2017"
|
||||||
|
) else if "%CONFIGURATION%" == "MSVC_64" (
|
||||||
|
set CMAKE_GENERATOR="Visual Studio 15 2017 Win64"
|
||||||
)
|
)
|
||||||
|
|
||||||
:: We cannot have sh.exe in the PATH (MinGW)
|
if "%CONFIGURATION:~0,5%" == "MINGW" (
|
||||||
set PATH=%PATH:C:\Program Files\Git\usr\bin;=%
|
:: These are native MinGW builds, but they use the toolchain inside
|
||||||
set PATH=C:\msys64\mingw%BITS%\bin;C:\Windows\System32;C:\Windows;%PATH%
|
:: MSYS2, this allows using all the dependencies and tools available
|
||||||
:: The default cpack in the PATH is not CMake
|
:: in MSYS2, but we cannot build inside the MSYS2 shell.
|
||||||
set PATH=C:\Program Files (x86)\CMake\bin\cpack.exe;%PATH%
|
set CMAKE_GENERATOR="MinGW Makefiles"
|
||||||
|
set CMAKE_GENERATOR_ARGS=VERBOSE=1
|
||||||
:: Build third-party dependencies
|
:: Add MinGW to the PATH and remove the Git directory because it
|
||||||
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" || goto :error
|
:: has a conflicting sh.exe
|
||||||
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-%ARCH%-cmake mingw-w64-%ARCH%-perl mingw-w64-%ARCH%-diffutils mingw-w64-%ARCH%-unibilium gperf" || goto :error
|
set "PATH=C:\msys64\mingw%BITS%\bin;C:\Windows\System32;C:\Windows;%PATH:C:\Program Files\Git\usr\bin;=%"
|
||||||
|
:: Build third-party dependencies
|
||||||
|
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" || goto :error
|
||||||
|
C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S mingw-w64-%ARCH%-cmake mingw-w64-%ARCH%-perl mingw-w64-%ARCH%-diffutils mingw-w64-%ARCH%-unibilium gperf" || goto :error
|
||||||
|
) else if "%CONFIGURATION:~0,4%" == "MSVC" (
|
||||||
|
set CMAKE_GENERATOR_ARGS=/verbosity:normal
|
||||||
|
)
|
||||||
|
|
||||||
:: Setup python (use AppVeyor system python)
|
:: Setup python (use AppVeyor system python)
|
||||||
C:\Python27\python.exe -m pip install neovim || goto :error
|
C:\Python27\python.exe -m pip install neovim || goto :error
|
||||||
@ -42,19 +49,19 @@ where.exe neovim-node-host.cmd || goto :error
|
|||||||
|
|
||||||
mkdir .deps
|
mkdir .deps
|
||||||
cd .deps
|
cd .deps
|
||||||
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\third-party\ || goto :error
|
cmake -G %CMAKE_GENERATOR% -DCMAKE_BUILD_TYPE=RelWithDebInfo ..\third-party\ || goto :error
|
||||||
mingw32-make VERBOSE=1 || goto :error
|
cmake --build . -- %CMAKE_GENERATOR_ARGS% || goto :error
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
:: Build Neovim
|
:: Build Neovim
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUSTED_OUTPUT_TYPE=nvim %USE_GCOV% -DGPERF_PRG="C:\msys64\usr\bin\gperf.exe" .. || goto :error
|
cmake -G %CMAKE_GENERATOR% -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUSTED_OUTPUT_TYPE=nvim %USE_GCOV% -DGPERF_PRG="C:\msys64\usr\bin\gperf.exe" .. || goto :error
|
||||||
mingw32-make VERBOSE=1 || goto :error
|
cmake --build . --config RelWithDebInfo -- %CMAKE_GENERATOR_ARGS% || goto :error
|
||||||
bin\nvim --version || goto :error
|
bin\nvim --version || goto :error
|
||||||
|
|
||||||
:: Functional tests
|
:: Functional tests
|
||||||
mingw32-make functionaltest VERBOSE=1 || goto :error
|
cmake --build . --config RelWithDebInfo --target functionaltest -- %CMAKE_GENERATOR_ARGS% || goto :error
|
||||||
|
|
||||||
if defined USE_GCOV (
|
if defined USE_GCOV (
|
||||||
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F functionaltest || echo 'codecov upload failed.'"
|
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F functionaltest || echo 'codecov upload failed.'"
|
||||||
@ -63,13 +70,15 @@ if defined USE_GCOV (
|
|||||||
:: Old tests
|
:: Old tests
|
||||||
setlocal
|
setlocal
|
||||||
set PATH=%PATH%;C:\msys64\usr\bin
|
set PATH=%PATH%;C:\msys64\usr\bin
|
||||||
mingw32-make -C "%~dp0\..\src\nvim\testdir" VERBOSE=1
|
cmake --build "%~dp0\..\src\nvim\testdir" -- %CMAKE_GENERATOR_ARGS%
|
||||||
endlocal
|
endlocal
|
||||||
|
|
||||||
if defined USE_GCOV (
|
if defined USE_GCOV (
|
||||||
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F oldtest || echo 'codecov upload failed.'"
|
C:\msys64\usr\bin\bash -lc "cd /c/projects/neovim; bash <(curl -s https://codecov.io/bash) -c -F oldtest || echo 'codecov upload failed.'"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
:: The default cpack in the PATH is not CMake
|
||||||
|
set PATH=C:\Program Files (x86)\CMake\bin\cpack.exe;%PATH%
|
||||||
:: Build artifacts
|
:: Build artifacts
|
||||||
cpack -G ZIP -C RelWithDebInfo
|
cpack -G ZIP -C RelWithDebInfo
|
||||||
if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C RelWithDebInfo
|
if defined APPVEYOR_REPO_TAG_NAME cpack -G NSIS -C RelWithDebInfo
|
||||||
|
@ -44,7 +44,7 @@ endif()
|
|||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# The import library for the msgpack DLL has a different name
|
# The import library for the msgpack DLL has a different name
|
||||||
list(APPEND MSGPACK_NAMES msgpack_import)
|
list(APPEND MSGPACK_NAMES msgpackc_import)
|
||||||
else()
|
else()
|
||||||
list(APPEND MSGPACK_NAMES msgpackc msgpack)
|
list(APPEND MSGPACK_NAMES msgpackc msgpack)
|
||||||
endif()
|
endif()
|
||||||
|
@ -5936,6 +5936,14 @@ static int get_env_tv(char_u **arg, typval_T *rettv, int evaluate)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// This prevents MSVC from replacing the functions with intrinsics,
|
||||||
|
// and causing errors when trying to get their addresses in funcs.generated.h
|
||||||
|
#pragma function (ceil)
|
||||||
|
#pragma function (floor)
|
||||||
|
#endif
|
||||||
|
|
||||||
# include "funcs.generated.h"
|
# include "funcs.generated.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -224,23 +224,15 @@ local static = header
|
|||||||
local filepattern = '^#%a* (%d+) "([^"]-)/?([^"/]+)"'
|
local filepattern = '^#%a* (%d+) "([^"]-)/?([^"/]+)"'
|
||||||
local curfile
|
local curfile
|
||||||
|
|
||||||
local init = 0
|
local init = 1
|
||||||
local curfile = nil
|
local curfile = nil
|
||||||
local neededfile = fname:match('[^/]+$')
|
local neededfile = fname:match('[^/]+$')
|
||||||
local declline = 0
|
local declline = 0
|
||||||
local declendpos = 0
|
local declendpos = 0
|
||||||
local curdir = nil
|
local curdir = nil
|
||||||
local is_needed_file = false
|
local is_needed_file = false
|
||||||
|
local init_is_nl = true
|
||||||
while init ~= nil do
|
while init ~= nil do
|
||||||
init = text:find('[\n;}]', init)
|
|
||||||
if init == nil then
|
|
||||||
break
|
|
||||||
end
|
|
||||||
local init_is_nl = text:sub(init, init) == '\n'
|
|
||||||
init = init + 1
|
|
||||||
if init_is_nl and is_needed_file then
|
|
||||||
declline = declline + 1
|
|
||||||
end
|
|
||||||
if init_is_nl and text:sub(init, init) == '#' then
|
if init_is_nl and text:sub(init, init) == '#' then
|
||||||
local line, dir, file = text:match(filepattern, init)
|
local line, dir, file = text:match(filepattern, init)
|
||||||
if file ~= nil then
|
if file ~= nil then
|
||||||
@ -293,6 +285,15 @@ while init ~= nil do
|
|||||||
declendpos = e
|
declendpos = e
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
init = text:find('[\n;}]', init)
|
||||||
|
if init == nil then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
init_is_nl = text:sub(init, init) == '\n'
|
||||||
|
init = init + 1
|
||||||
|
if init_is_nl and is_needed_file then
|
||||||
|
declline = declline + 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
non_static = non_static .. footer
|
non_static = non_static .. footer
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "nvim/memory.h"
|
#include "nvim/memory.h"
|
||||||
|
#include "nvim/os/os_defs.h"
|
||||||
|
|
||||||
#define kv_roundup32(x) \
|
#define kv_roundup32(x) \
|
||||||
((--(x)), \
|
((--(x)), \
|
||||||
|
@ -7,11 +7,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
# include <wchar.h>
|
|
||||||
# include <winnls.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <msgpack.h>
|
#include <msgpack.h>
|
||||||
|
|
||||||
#include "nvim/ascii.h"
|
#include "nvim/ascii.h"
|
||||||
@ -795,7 +790,7 @@ static void command_line_scan(mparm_T *parmp)
|
|||||||
mch_exit(0);
|
mch_exit(0);
|
||||||
} else if (STRICMP(argv[0] + argv_idx, "api-info") == 0) {
|
} else if (STRICMP(argv[0] + argv_idx, "api-info") == 0) {
|
||||||
FileDescriptor fp;
|
FileDescriptor fp;
|
||||||
const int fof_ret = file_open_fd(&fp, OS_STDOUT_FILENO, true);
|
const int fof_ret = file_open_fd(&fp, STDOUT_FILENO, true);
|
||||||
msgpack_packer *p = msgpack_packer_new(&fp, msgpack_file_write);
|
msgpack_packer *p = msgpack_packer_new(&fp, msgpack_file_write);
|
||||||
|
|
||||||
if (fof_ret != 0) {
|
if (fof_ret != 0) {
|
||||||
@ -1256,10 +1251,10 @@ static void check_and_set_isatty(mparm_T *paramp)
|
|||||||
paramp->err_isatty = os_isatty(fileno(stderr));
|
paramp->err_isatty = os_isatty(fileno(stderr));
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
int tty_fd = paramp->input_isatty
|
int tty_fd = paramp->input_isatty
|
||||||
? OS_STDIN_FILENO
|
? STDIN_FILENO
|
||||||
: (paramp->output_isatty
|
: (paramp->output_isatty
|
||||||
? OS_STDOUT_FILENO
|
? STDOUT_FILENO
|
||||||
: (paramp->err_isatty ? OS_STDERR_FILENO : -1));
|
: (paramp->err_isatty ? STDERR_FILENO : -1));
|
||||||
pty_process_save_termios(tty_fd);
|
pty_process_save_termios(tty_fd);
|
||||||
#endif
|
#endif
|
||||||
TIME_MSG("window checked");
|
TIME_MSG("window checked");
|
||||||
|
@ -2436,6 +2436,11 @@ static bool valid_filetype(char_u *val)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
// MSVC optimizations are disabled for this function because it
|
||||||
|
// incorrectly generates an empty string for SHM_ALL.
|
||||||
|
#pragma optimize("", off)
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* Handle string options that need some action to perform when changed.
|
* Handle string options that need some action to perform when changed.
|
||||||
* Returns NULL for success, or an error message for an error.
|
* Returns NULL for success, or an error message for an error.
|
||||||
@ -3305,6 +3310,9 @@ did_set_string_option (
|
|||||||
|
|
||||||
return errmsg;
|
return errmsg;
|
||||||
}
|
}
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma optimize("", on)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Simple int comparison function for use with qsort()
|
* Simple int comparison function for use with qsort()
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/param.h>
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
@ -14,13 +13,6 @@
|
|||||||
# include "nvim/os/unix_defs.h"
|
# include "nvim/os/unix_defs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// File descriptor number used for standard IO streams
|
|
||||||
enum {
|
|
||||||
OS_STDIN_FILENO = STDIN_FILENO,
|
|
||||||
OS_STDOUT_FILENO = STDOUT_FILENO,
|
|
||||||
OS_STDERR_FILENO = STDERR_FILENO,
|
|
||||||
};
|
|
||||||
|
|
||||||
#define BASENAMELEN (NAME_MAX - 5)
|
#define BASENAMELEN (NAME_MAX - 5)
|
||||||
|
|
||||||
// Use the system path length if it makes sense.
|
// Use the system path length if it makes sense.
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
#ifndef NVIM_OS_UNIX_DEFS_H
|
#ifndef NVIM_OS_UNIX_DEFS_H
|
||||||
#define NVIM_OS_UNIX_DEFS_H
|
#define NVIM_OS_UNIX_DEFS_H
|
||||||
|
|
||||||
// Windows doesn't have unistd.h, so we include it here to avoid numerous
|
|
||||||
// instances of `#ifdef WIN32'.
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
|
||||||
// POSIX.1-2008 says that NAME_MAX should be in here
|
// POSIX.1-2008 says that NAME_MAX should be in here
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
@ -45,6 +45,9 @@
|
|||||||
# ifndef restrict
|
# ifndef restrict
|
||||||
# define restrict __restrict
|
# define restrict __restrict
|
||||||
# endif
|
# endif
|
||||||
|
# ifndef STDIN_FILENO
|
||||||
|
# define STDIN_FILENO _fileno(stdin)
|
||||||
|
# endif
|
||||||
# ifndef STDOUT_FILENO
|
# ifndef STDOUT_FILENO
|
||||||
# define STDOUT_FILENO _fileno(stdout)
|
# define STDOUT_FILENO _fileno(stdout)
|
||||||
# endif
|
# endif
|
||||||
@ -60,6 +63,7 @@
|
|||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
typedef SSIZE_T ssize_t;
|
typedef SSIZE_T ssize_t;
|
||||||
|
typedef int mode_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SSIZE_MAX
|
#ifndef SSIZE_MAX
|
||||||
|
@ -228,7 +228,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <wctype.h>
|
#include <wctype.h>
|
||||||
#include <strings.h>
|
|
||||||
|
|
||||||
#include "nvim/vim.h"
|
#include "nvim/vim.h"
|
||||||
#include "nvim/spell_defs.h"
|
#include "nvim/spell_defs.h"
|
||||||
|
@ -4,7 +4,12 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#include <Windows.h>
|
||||||
|
#define usleep(usecs) Sleep(usecs/1000)
|
||||||
|
#else
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
static void wait(void)
|
static void wait(void)
|
||||||
{
|
{
|
||||||
|
7
third-party/CMakeLists.txt
vendored
7
third-party/CMakeLists.txt
vendored
@ -50,6 +50,13 @@ endif()
|
|||||||
|
|
||||||
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
find_package(Git)
|
||||||
|
if(NOT Git_FOUND)
|
||||||
|
message(FATAL_ERROR "Git is required to apply patches for Windows.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
find_program(MAKE_PRG NAMES gmake make)
|
find_program(MAKE_PRG NAMES gmake make)
|
||||||
if(MAKE_PRG)
|
if(MAKE_PRG)
|
||||||
|
9
third-party/cmake/BuildLibtermkey.cmake
vendored
9
third-party/cmake/BuildLibtermkey.cmake
vendored
@ -1,5 +1,3 @@
|
|||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
ExternalProject_Add(libtermkey
|
ExternalProject_Add(libtermkey
|
||||||
PREFIX ${DEPS_BUILD_DIR}
|
PREFIX ${DEPS_BUILD_DIR}
|
||||||
@ -24,6 +22,8 @@ ExternalProject_Add(libtermkey
|
|||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
|
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
|
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
|
||||||
else()
|
else()
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
|
||||||
ExternalProject_Add(libtermkey
|
ExternalProject_Add(libtermkey
|
||||||
PREFIX ${DEPS_BUILD_DIR}
|
PREFIX ${DEPS_BUILD_DIR}
|
||||||
URL ${LIBTERMKEY_URL}
|
URL ${LIBTERMKEY_URL}
|
||||||
@ -48,7 +48,4 @@ ExternalProject_Add(libtermkey
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND THIRD_PARTY_DEPS libtermkey)
|
list(APPEND THIRD_PARTY_DEPS libtermkey)
|
||||||
if(NOT WIN32)
|
add_dependencies(libtermkey unibilium)
|
||||||
# There is no unibilium build recipe for Windows yet
|
|
||||||
add_dependencies(libtermkey unibilium)
|
|
||||||
endif()
|
|
||||||
|
12
third-party/cmake/BuildLibuv.cmake
vendored
12
third-party/cmake/BuildLibuv.cmake
vendored
@ -76,15 +76,19 @@ elseif(WIN32 AND MSVC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(TargetArch)
|
include(TargetArch)
|
||||||
if("${TARGET_ARCH}" STREQUAL "X86_64")
|
if(TARGET_ARCH STREQUAL "X86_64")
|
||||||
set(TARGET_ARCH x64)
|
set(TARGET_ARCH x64)
|
||||||
elseif(TARGET_ARCH STREQUAL "X86")
|
elseif(TARGET_ARCH STREQUAL "X86")
|
||||||
set(TARGET_ARCH x86)
|
set(TARGET_ARCH x86)
|
||||||
endif()
|
endif()
|
||||||
string(TOLOWER ${CMAKE_BUILD_TYPE} LOWERCASE_BUILD_TYPE)
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
|
set(TARGET_CONFIG debug)
|
||||||
|
else()
|
||||||
|
set(TARGET_CONFIG release)
|
||||||
|
endif()
|
||||||
|
set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${TARGET_CONFIG})
|
||||||
BuildLibUv(
|
BuildLibUv(
|
||||||
BUILD_COMMAND set PYTHON=${PYTHON_EXECUTABLE} COMMAND ${DEPS_BUILD_DIR}/src/libuv/vcbuild.bat shared ${LOWERCASE_BUILD_TYPE} ${TARGET_ARCH}
|
BUILD_COMMAND set PYTHON=${PYTHON_EXECUTABLE} COMMAND ${DEPS_BUILD_DIR}/src/libuv/vcbuild.bat shared ${TARGET_CONFIG} ${TARGET_ARCH}
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${UV_OUTPUT_DIR}/libuv.lib ${DEPS_INSTALL_DIR}/lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${UV_OUTPUT_DIR}/libuv.lib ${DEPS_INSTALL_DIR}/lib
|
||||||
|
13
third-party/cmake/BuildLibvterm.cmake
vendored
13
third-party/cmake/BuildLibvterm.cmake
vendored
@ -6,7 +6,7 @@ function(BuildLibvterm)
|
|||||||
cmake_parse_arguments(_libvterm
|
cmake_parse_arguments(_libvterm
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
|
"PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
|
||||||
${ARGN})
|
${ARGN})
|
||||||
|
|
||||||
if(NOT _libvterm_CONFIGURE_COMMAND AND NOT _libvterm_BUILD_COMMAND
|
if(NOT _libvterm_CONFIGURE_COMMAND AND NOT _libvterm_BUILD_COMMAND
|
||||||
@ -26,6 +26,7 @@ function(BuildLibvterm)
|
|||||||
-DTARGET=libvterm
|
-DTARGET=libvterm
|
||||||
-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
|
||||||
|
PATCH_COMMAND "${_libvterm_PATCH_COMMAND}"
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
CONFIGURE_COMMAND "${_libvterm_CONFIGURE_COMMAND}"
|
CONFIGURE_COMMAND "${_libvterm_CONFIGURE_COMMAND}"
|
||||||
@ -34,7 +35,12 @@ function(BuildLibvterm)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# MinGW
|
if(MSVC)
|
||||||
|
set(LIBVTERM_PATCH_COMMAND
|
||||||
|
${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libvterm init
|
||||||
|
COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libvterm apply
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/patches/libvterm-Remove-VLAs-for-MSVC.patch)
|
||||||
|
endif()
|
||||||
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
|
||||||
${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt
|
${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt
|
||||||
@ -53,7 +59,8 @@ else()
|
|||||||
install)
|
install)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
BuildLibvterm(CONFIGURE_COMMAND ${LIBVTERM_CONFIGURE_COMMAND}
|
BuildLibvterm(PATCH_COMMAND ${LIBVTERM_PATCH_COMMAND}
|
||||||
|
CONFIGURE_COMMAND ${LIBVTERM_CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND ${LIBVTERM_BUILD_COMMAND}
|
BUILD_COMMAND ${LIBVTERM_BUILD_COMMAND}
|
||||||
INSTALL_COMMAND ${LIBVTERM_INSTALL_COMMAND})
|
INSTALL_COMMAND ${LIBVTERM_INSTALL_COMMAND})
|
||||||
|
|
||||||
|
5
third-party/cmake/BuildLuajit.cmake
vendored
5
third-party/cmake/BuildLuajit.cmake
vendored
@ -101,7 +101,10 @@ elseif(MSVC)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
|
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
|
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib
|
# Luarocks searches for lua51.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib/lua51.lib
|
||||||
|
# Luv searches for luajit.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib/luajit.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.0
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.0
|
||||||
COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.0 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake)
|
COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.0 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake)
|
||||||
|
|
||||||
|
23
third-party/cmake/BuildLuarocks.cmake
vendored
23
third-party/cmake/BuildLuarocks.cmake
vendored
@ -12,7 +12,7 @@ function(BuildLuarocks)
|
|||||||
cmake_parse_arguments(_luarocks
|
cmake_parse_arguments(_luarocks
|
||||||
""
|
""
|
||||||
""
|
""
|
||||||
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
|
"PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
|
||||||
${ARGN})
|
${ARGN})
|
||||||
|
|
||||||
if(NOT _luarocks_CONFIGURE_COMMAND AND NOT _luarocks_BUILD_COMMAND
|
if(NOT _luarocks_CONFIGURE_COMMAND AND NOT _luarocks_BUILD_COMMAND
|
||||||
@ -32,6 +32,7 @@ function(BuildLuarocks)
|
|||||||
-DTARGET=luarocks
|
-DTARGET=luarocks
|
||||||
-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
|
||||||
|
PATCH_COMMAND "${_luarocks_PATCH_COMMAND}"
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
CONFIGURE_COMMAND "${_luarocks_CONFIGURE_COMMAND}"
|
CONFIGURE_COMMAND "${_luarocks_CONFIGURE_COMMAND}"
|
||||||
BUILD_COMMAND "${_luarocks_BUILD_COMMAND}"
|
BUILD_COMMAND "${_luarocks_BUILD_COMMAND}"
|
||||||
@ -50,6 +51,11 @@ if(NOT MSVC)
|
|||||||
# version already knows, and passing them here breaks the build
|
# version already knows, and passing them here breaks the build
|
||||||
set(LUAROCKS_BUILDARGS CC=${HOSTDEPS_C_COMPILER} LD=${HOSTDEPS_C_COMPILER})
|
set(LUAROCKS_BUILDARGS CC=${HOSTDEPS_C_COMPILER} LD=${HOSTDEPS_C_COMPILER})
|
||||||
endif()
|
endif()
|
||||||
|
if(WIN32)
|
||||||
|
# Use our bundled curl.exe for downloading packages
|
||||||
|
set(LUAROCKS_BUILDARGS ${LUAROCKS_BUILDARGS} CURL=${DEPS_BIN_DIR}/curl.exe)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
|
if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||||
|
|
||||||
@ -70,11 +76,18 @@ if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
|
|||||||
elseif(MSVC OR MINGW)
|
elseif(MSVC OR MINGW)
|
||||||
|
|
||||||
if(MINGW)
|
if(MINGW)
|
||||||
set(MINGW_FLAG /MW)
|
set(COMPILER_FLAG /MW)
|
||||||
|
elseif(MSVC)
|
||||||
|
set(COMPILER_FLAG /MSVC)
|
||||||
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
|
BuildLuarocks(
|
||||||
|
PATCH_COMMAND
|
||||||
|
${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/luarocks init
|
||||||
|
COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/luarocks apply
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/patches/luarocks-Change-default-downloader-to-curl.patch
|
||||||
|
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}
|
||||||
@ -82,10 +95,12 @@ elseif(MSVC OR MINGW)
|
|||||||
/P ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION} /TREE ${DEPS_INSTALL_DIR}
|
/P ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION} /TREE ${DEPS_INSTALL_DIR}
|
||||||
/SCRIPTS ${DEPS_BIN_DIR}
|
/SCRIPTS ${DEPS_BIN_DIR}
|
||||||
/CMOD ${DEPS_BIN_DIR}
|
/CMOD ${DEPS_BIN_DIR}
|
||||||
${MINGW_FLAG}
|
${COMPILER_FLAG}
|
||||||
/LUAMOD ${DEPS_BIN_DIR}/lua)
|
/LUAMOD ${DEPS_BIN_DIR}/lua)
|
||||||
|
|
||||||
set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION}/luarocks.bat)
|
set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/${LUAROCKS_VERSION}/luarocks.bat)
|
||||||
|
add_dependencies(luarocks wintools)
|
||||||
|
|
||||||
else()
|
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()
|
||||||
|
3
third-party/cmake/BuildMsgpack.cmake
vendored
3
third-party/cmake/BuildMsgpack.cmake
vendored
@ -70,9 +70,6 @@ elseif(MSVC)
|
|||||||
# Make sure we use the same generator, otherwise we may
|
# Make sure we use the same generator, otherwise we may
|
||||||
# accidentaly end up using different MSVC runtimes
|
# accidentaly end up using different MSVC runtimes
|
||||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||||
# Place the DLL in the bin folder
|
|
||||||
set(MSGPACK_INSTALL_COMMAND ${MSGPACK_INSTALL_COMMAND}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_INSTALL_DIR}/lib/msgpack.dll ${DEPS_INSTALL_DIR}/bin)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
BuildMsgpack(CONFIGURE_COMMAND ${MSGPACK_CONFIGURE_COMMAND}
|
BuildMsgpack(CONFIGURE_COMMAND ${MSGPACK_CONFIGURE_COMMAND}
|
||||||
|
67
third-party/cmake/BuildUnibilium.cmake
vendored
67
third-party/cmake/BuildUnibilium.cmake
vendored
@ -1,26 +1,49 @@
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
message(STATUS "Building Unibilium in Windows is not supported (skipping)")
|
ExternalProject_Add(unibilium
|
||||||
return()
|
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
|
||||||
|
${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/msvc-compat/unistd.h
|
||||||
|
${DEPS_BUILD_DIR}/src/unibilium/msvc-compat/unistd.h
|
||||||
|
COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||||
|
# Pass toolchain
|
||||||
|
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||||
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||||
|
-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(unibilium
|
||||||
|
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 ""
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
|
||||||
|
PREFIX=${DEPS_INSTALL_DIR}
|
||||||
|
CFLAGS=-fPIC
|
||||||
|
INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(unibilium
|
|
||||||
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 ""
|
|
||||||
BUILD_IN_SOURCE 1
|
|
||||||
BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
|
|
||||||
PREFIX=${DEPS_INSTALL_DIR}
|
|
||||||
CFLAGS=-fPIC
|
|
||||||
${DEFAULT_MAKE_CFLAGS}
|
|
||||||
INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install)
|
|
||||||
|
|
||||||
list(APPEND THIRD_PARTY_DEPS unibilium)
|
list(APPEND THIRD_PARTY_DEPS unibilium)
|
||||||
|
27
third-party/cmake/UnibiliumCMakeLists.txt
vendored
Normal file
27
third-party/cmake/UnibiliumCMakeLists.txt
vendored
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8.7)
|
||||||
|
project(unibilium LANGUAGES C)
|
||||||
|
|
||||||
|
file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/*.c)
|
||||||
|
add_library(unibilium ${SRC_FILES})
|
||||||
|
set_target_properties(unibilium PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/unibilium.h
|
||||||
|
VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
|
||||||
|
|
||||||
|
if(NOT WIN32)
|
||||||
|
execute_process(COMMAND "shell ncursesw6-config --terminfo-dirs 2>/dev/null || \
|
||||||
|
ncurses6-config --terminfo-dirs 2>/dev/null || \
|
||||||
|
ncursesw5-config --terminfo-dirs 2>/dev/null || \
|
||||||
|
ncurses5-config --terminfo-dirs 2>/dev/null || \
|
||||||
|
echo '/etc/terminfo:/lib/terminfo:/usr/share/terminfo:/usr/lib/terminfo:/usr/local/share/terminfo:/usr/local/lib/terminfo'"
|
||||||
|
OUTPUT_VARIABLE TERMINFO_DIRS)
|
||||||
|
endif()
|
||||||
|
target_compile_definitions(unibilium PUBLIC TERMINFO_DIRS ${TERMINFO_DIRS})
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
target_include_directories(unibilium PUBLIC ${PROJECT_SOURCE_DIR}/msvc-compat)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
install(TARGETS unibilium
|
||||||
|
PUBLIC_HEADER
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
10
third-party/msvc-compat/unistd.h
vendored
Normal file
10
third-party/msvc-compat/unistd.h
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef GUARD_UNIBILIUM_UNISTD_H_
|
||||||
|
#define GUARD_UNIBILIUM_UNISTD_H_
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
typedef unsigned __int64 ssize_t;
|
||||||
|
#else
|
||||||
|
typedef _W64 unsigned int ssize_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
50
third-party/patches/libvterm-Remove-VLAs-for-MSVC.patch
vendored
Normal file
50
third-party/patches/libvterm-Remove-VLAs-for-MSVC.patch
vendored
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From eb386b1d82f7d07363c9133b7aa06902ccd555fe Mon Sep 17 00:00:00 2001
|
||||||
|
Date: Tue, 27 Feb 2018 17:54:20 -0600
|
||||||
|
Subject: [PATCH] Remove VLAs for MSVC
|
||||||
|
|
||||||
|
VLAs are replaced with calls to _alloca() because MSVC does not support them.
|
||||||
|
---
|
||||||
|
src/state.c | 7 ++++---
|
||||||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/state.c b/src/state.c
|
||||||
|
index 84299df..f9aabb3 100644
|
||||||
|
--- a/src/state.c
|
||||||
|
+++ b/src/state.c
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
#include "vterm_internal.h"
|
||||||
|
|
||||||
|
+#include <malloc.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
@@ -236,7 +237,7 @@ static int on_text(const char bytes[], size_t len, void *user)
|
||||||
|
VTermPos oldpos = state->pos;
|
||||||
|
|
||||||
|
// We'll have at most len codepoints
|
||||||
|
- uint32_t codepoints[len];
|
||||||
|
+ uint32_t* codepoints = _alloca(len);
|
||||||
|
int npoints = 0;
|
||||||
|
size_t eaten = 0;
|
||||||
|
|
||||||
|
@@ -313,7 +314,7 @@ static int on_text(const char bytes[], size_t len, void *user)
|
||||||
|
|
||||||
|
int width = 0;
|
||||||
|
|
||||||
|
- uint32_t chars[glyph_ends - glyph_starts + 1];
|
||||||
|
+ uint32_t* chars = _alloca(glyph_ends - glyph_starts + 1);
|
||||||
|
|
||||||
|
for( ; i < glyph_ends; i++) {
|
||||||
|
chars[i - glyph_starts] = codepoints[i];
|
||||||
|
@@ -512,7 +513,7 @@ static int settermprop_int(VTermState *state, VTermProp prop, int v)
|
||||||
|
|
||||||
|
static int settermprop_string(VTermState *state, VTermProp prop, const char *str, size_t len)
|
||||||
|
{
|
||||||
|
- char strvalue[len+1];
|
||||||
|
+ char* strvalue = _alloca(len+1);
|
||||||
|
strncpy(strvalue, str, len);
|
||||||
|
strvalue[len] = 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.16.1.windows.4
|
||||||
|
|
24
third-party/patches/luarocks-Change-default-downloader-to-curl.patch
vendored
Normal file
24
third-party/patches/luarocks-Change-default-downloader-to-curl.patch
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
From 69313032fad04743c96bc8f2a029b691857488f9 Mon Sep 17 00:00:00 2001
|
||||||
|
Date: Thu, 1 Mar 2018 21:41:29 -0600
|
||||||
|
Subject: [PATCH] Change default downloader to curl
|
||||||
|
|
||||||
|
---
|
||||||
|
install.bat | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/install.bat b/install.bat
|
||||||
|
index 09cf9aa..76e4059 100644
|
||||||
|
--- a/install.bat
|
||||||
|
+++ b/install.bat
|
||||||
|
@@ -1037,7 +1037,7 @@ f:write(S[=[
|
||||||
|
site_config.LUAROCKS_UNAME_M=[[$UNAME_M]]
|
||||||
|
site_config.LUAROCKS_ROCKS_TREE=[[$TREE_ROOT]]
|
||||||
|
site_config.LUAROCKS_PREFIX=[[$PREFIX]]
|
||||||
|
-site_config.LUAROCKS_DOWNLOADER=[[wget]]
|
||||||
|
+site_config.LUAROCKS_DOWNLOADER=[[curl]]
|
||||||
|
site_config.LUAROCKS_MD5CHECKER=[[md5sum]]
|
||||||
|
]=])
|
||||||
|
if FORCE_CONFIG then
|
||||||
|
--
|
||||||
|
2.16.1.windows.4
|
||||||
|
|
Loading…
Reference in New Issue
Block a user