mirror of
https://github.com/neovim/neovim.git
synced 2026-06-30 15:01:13 +00:00
Merge pull request #19085 from neovim/build-universal-macos
[Backport release-0.7] macOS universal release (#19029, #18914, #19084)
This commit is contained in:
2
.github/workflows/notes.md
vendored
2
.github/workflows/notes.md
vendored
@@ -22,7 +22,7 @@ ${NVIM_VERSION}
|
||||
|
||||
1. Download **nvim-macos.tar.gz**
|
||||
2. Extract: `tar xzvf nvim-macos.tar.gz`
|
||||
3. Run `./nvim-osx64/bin/nvim`
|
||||
3. Run `./nvim-macos/bin/nvim`
|
||||
|
||||
### Linux (x64)
|
||||
|
||||
|
||||
45
.github/workflows/release.yml
vendored
45
.github/workflows/release.yml
vendored
@@ -78,7 +78,7 @@ jobs:
|
||||
retention-days: 1
|
||||
|
||||
macOS:
|
||||
runs-on: macos-10.15
|
||||
runs-on: macos-11
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -91,28 +91,37 @@ jobs:
|
||||
run: printf 'NVIM_BUILD_TYPE=Release\n' >> $GITHUB_ENV
|
||||
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
|
||||
run: printf 'NVIM_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV
|
||||
- name: Provision universal `libintl`
|
||||
run: |
|
||||
GETTEXT_PREFIX="$(brew --prefix gettext)"
|
||||
printf 'GETTEXT_PREFIX=%s\n' "$GETTEXT_PREFIX" >> $GITHUB_ENV
|
||||
bottle_tag="arm64_big_sur"
|
||||
brew fetch --bottle-tag="$bottle_tag" gettext
|
||||
cd "$(mktemp -d)"
|
||||
tar xf "$(brew --cache)"/**/*gettext*${bottle_tag}*.tar.gz
|
||||
lipo gettext/*/lib/libintl.a "${GETTEXT_PREFIX}/lib/libintl.a" -create -output libintl.a
|
||||
mv -f libintl.a /usr/local/lib/
|
||||
- name: Ensure static linkage to `libintl`
|
||||
run: |
|
||||
# We're about to mangle `gettext`, so let's remove any potentially broken
|
||||
# installs (e.g. curl, git) as those could interfere with our build.
|
||||
brew uninstall $(brew uses --installed --recursive gettext)
|
||||
brew unlink gettext
|
||||
ln -sf "$(brew --prefix)/opt/$(readlink "${GETTEXT_PREFIX}")/bin"/* /usr/local/bin/
|
||||
rm -f "$GETTEXT_PREFIX"
|
||||
- name: Build release
|
||||
run: |
|
||||
make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11"
|
||||
make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-osx64" install
|
||||
export MACOSX_DEPLOYMENT_TARGET="$(sw_vers -productVersion | cut -f1 -d.)"
|
||||
OSX_FLAGS="-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_ARCHITECTURES=arm64\;x86_64"
|
||||
make CMAKE_BUILD_TYPE=${NVIM_BUILD_TYPE} \
|
||||
CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX:PATH= $OSX_FLAGS" \
|
||||
DEPS_CMAKE_FLAGS="$OSX_FLAGS"
|
||||
make DESTDIR="$GITHUB_WORKSPACE/build/release/nvim-macos" install
|
||||
- name: Create package
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE/build/release"
|
||||
mkdir -p nvim-osx64/libs
|
||||
libs=($(otool -L nvim-osx64/bin/nvim | sed 1d | sed -E -e 's|^[[:space:]]*||' -e 's| .*||'))
|
||||
echo "libs:"
|
||||
for lib in "${libs[@]}"; do
|
||||
if echo "$lib" | grep -q -E 'libSystem|CoreServices' 2>/dev/null; then
|
||||
echo " [skipped] $lib"
|
||||
else
|
||||
echo " $lib"
|
||||
relname="libs/${lib##*/}"
|
||||
cp -L "$lib" "nvim-osx64/$relname"
|
||||
install_name_tool -change "$lib" "@executable_path/../$relname" nvim-osx64/bin/nvim
|
||||
fi
|
||||
done
|
||||
tar cfz nvim-macos.tar.gz nvim-osx64
|
||||
- uses: actions/upload-artifact@v2
|
||||
tar cfz nvim-macos.tar.gz nvim-macos
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: nvim-macos
|
||||
path: build/release/nvim-macos.tar.gz
|
||||
|
||||
@@ -71,13 +71,8 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_CROSSCOMPILING AND NOT UNIX)
|
||||
list(INSERT CMAKE_FIND_ROOT_PATH 0 ${DEPS_PREFIX})
|
||||
list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}/../host/bin)
|
||||
else()
|
||||
list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX})
|
||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${DEPS_PREFIX}/lib/pkgconfig")
|
||||
endif()
|
||||
list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX})
|
||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${DEPS_PREFIX}/lib/pkgconfig")
|
||||
|
||||
# used for check_c_compiler_flag
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
35
third-party/CMakeLists.txt
vendored
35
third-party/CMakeLists.txt
vendored
@@ -124,24 +124,25 @@ if(CMAKE_OSX_SYSROOT)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Cross compiling: use these for dependencies built for the
|
||||
# HOST system, when not crosscompiling these should be the
|
||||
# same as DEPS_*. Except when targeting Unix in which case
|
||||
# want all the dependencies to use the same compiler.
|
||||
if(CMAKE_CROSSCOMPILING AND NOT UNIX)
|
||||
set(HOSTDEPS_INSTALL_DIR "${CMAKE_BINARY_DIR}/host")
|
||||
set(HOSTDEPS_BIN_DIR "${HOSTDEPS_INSTALL_DIR}/bin")
|
||||
set(HOSTDEPS_LIB_DIR "${HOSTDEPS_INSTALL_DIR}/lib")
|
||||
set(HOSTDEPS_C_COMPILER "${HOST_C_COMPILER}")
|
||||
set(HOSTDEPS_CXX_COMPILER "${HOST_CXX_COMPILER}")
|
||||
else()
|
||||
set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}")
|
||||
set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}")
|
||||
set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}")
|
||||
set(HOSTDEPS_C_COMPILER "${DEPS_C_COMPILER}")
|
||||
set(HOSTDEPS_CXX_COMPILER "${DEPS_CXX_COMPILER}")
|
||||
if(CMAKE_OSX_ARCHITECTURES)
|
||||
string(REPLACE ";" "|" CMAKE_OSX_ARCHITECTURES_ALT_SEP "${CMAKE_OSX_ARCHITECTURES}")
|
||||
# The LuaJIT build does not like being passed multiple `-arch` flags
|
||||
# so we handle a universal build the old-fashioned way.
|
||||
set(LUAJIT_C_COMPILER "${DEPS_C_COMPILER}")
|
||||
foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
|
||||
set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -arch ${ARCH}")
|
||||
if(DEPS_CXX_COMPILER)
|
||||
set(DEPS_CXX_COMPILER "${DEPS_CXX_COMPILER} -arch ${ARCH}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
set(HOSTDEPS_INSTALL_DIR "${DEPS_INSTALL_DIR}")
|
||||
set(HOSTDEPS_BIN_DIR "${DEPS_BIN_DIR}")
|
||||
set(HOSTDEPS_LIB_DIR "${DEPS_LIB_DIR}")
|
||||
set(HOSTDEPS_C_COMPILER "${DEPS_C_COMPILER}")
|
||||
set(HOSTDEPS_CXX_COMPILER "${DEPS_CXX_COMPILER}")
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
set(LIBUV_URL https://github.com/libuv/libuv/archive/v1.44.1.tar.gz)
|
||||
@@ -233,7 +234,7 @@ if(USE_BUNDLED_LUAJIT)
|
||||
include(BuildLuajit)
|
||||
endif()
|
||||
|
||||
if(USE_BUNDLED_LUA AND NOT CMAKE_CROSSCOMPILING)
|
||||
if(USE_BUNDLED_LUA)
|
||||
include(BuildLua)
|
||||
endif()
|
||||
|
||||
|
||||
11
third-party/cmake/BuildLibuv.cmake
vendored
11
third-party/cmake/BuildLibuv.cmake
vendored
@@ -45,17 +45,6 @@ if(UNIX)
|
||||
CONFIGURE_COMMAND ${UNIX_CFGCMD} MAKE=${MAKE_PRG}
|
||||
INSTALL_COMMAND ${MAKE_PRG} V=1 install)
|
||||
|
||||
elseif(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
# Build libuv for the host
|
||||
BuildLibuv(TARGET libuv_host
|
||||
CONFIGURE_COMMAND sh ${DEPS_BUILD_DIR}/src/libuv_host/autogen.sh && ${DEPS_BUILD_DIR}/src/libuv_host/configure --with-pic --disable-shared --prefix=${HOSTDEPS_INSTALL_DIR} CC=${HOST_C_COMPILER}
|
||||
INSTALL_COMMAND ${MAKE_PRG} V=1 install)
|
||||
|
||||
# Build libuv for the target
|
||||
BuildLibuv(
|
||||
CONFIGURE_COMMAND ${UNIX_CFGCMD} --host=${CROSS_TARGET}
|
||||
INSTALL_COMMAND ${MAKE_PRG} V=1 install)
|
||||
|
||||
elseif(WIN32)
|
||||
|
||||
set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
|
||||
|
||||
94
third-party/cmake/BuildLuajit.cmake
vendored
94
third-party/cmake/BuildLuajit.cmake
vendored
@@ -5,7 +5,7 @@ function(BuildLuajit)
|
||||
cmake_parse_arguments(_luajit
|
||||
""
|
||||
"TARGET"
|
||||
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
|
||||
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND;DEPENDS"
|
||||
${ARGN})
|
||||
if(NOT _luajit_CONFIGURE_COMMAND AND NOT _luajit_BUILD_COMMAND
|
||||
AND NOT _luajit_INSTALL_COMMAND)
|
||||
@@ -30,13 +30,14 @@ function(BuildLuajit)
|
||||
CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}"
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_COMMAND "${_luajit_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${_luajit_INSTALL_COMMAND}")
|
||||
INSTALL_COMMAND "${_luajit_INSTALL_COMMAND}"
|
||||
DEPENDS "${_luajit_DEPENDS}")
|
||||
|
||||
# Create symlink for development version manually.
|
||||
if(UNIX)
|
||||
add_custom_command(
|
||||
TARGET ${_luajit_TARGET}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink luajit-2.1.0-beta3 ${DEPS_BIN_DIR}/luajit)
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink luajit-2.1.0-beta3 ${DEPS_BIN_DIR}/${_luajit_TARGET})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@@ -51,53 +52,64 @@ if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
||||
else()
|
||||
set(AMD64_ABI "")
|
||||
endif()
|
||||
set(INSTALLCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
|
||||
CFLAGS+=-DLUA_USE_APICHECK
|
||||
CFLAGS+=-funwind-tables
|
||||
${NO_STACK_CHECK}
|
||||
${AMD64_ABI}
|
||||
CCDEBUG+=-g
|
||||
Q=
|
||||
install)
|
||||
set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
|
||||
CFLAGS+=-DLUA_USE_APICHECK
|
||||
CFLAGS+=-funwind-tables
|
||||
${NO_STACK_CHECK}
|
||||
${AMD64_ABI}
|
||||
CCDEBUG+=-g
|
||||
Q=)
|
||||
|
||||
if(UNIX)
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
else()
|
||||
# Use the same target as our nightly builds
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=10.11")
|
||||
endif()
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
if(CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||
else()
|
||||
set(DEPLOYMENT_TARGET "")
|
||||
execute_process(COMMAND sw_vers -productVersion
|
||||
OUTPUT_VARIABLE MACOS_VERSION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${MACOS_VERSION}")
|
||||
endif()
|
||||
else()
|
||||
set(DEPLOYMENT_TARGET "")
|
||||
endif()
|
||||
|
||||
BuildLuaJit(INSTALL_COMMAND ${INSTALLCMD_UNIX}
|
||||
if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES))
|
||||
BuildLuaJit(INSTALL_COMMAND ${BUILDCMD_UNIX}
|
||||
CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
|
||||
${DEPLOYMENT_TARGET})
|
||||
${DEPLOYMENT_TARGET} install)
|
||||
|
||||
elseif(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES AND APPLE)
|
||||
|
||||
# Build luajit for the host
|
||||
BuildLuaJit(TARGET luajit_host
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ${INSTALLCMD_UNIX}
|
||||
CC=${HOST_C_COMPILER} PREFIX=${HOSTDEPS_INSTALL_DIR})
|
||||
# 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.
|
||||
set(LUAJIT_SRC_DIR "${DEPS_BUILD_DIR}/src/luajit")
|
||||
foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
|
||||
set(STATIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH}")
|
||||
set(DYNAMIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH} -fPIC")
|
||||
set(TARGET_LD "${LUAJIT_C_COMPILER} -arch ${ARCH}")
|
||||
list(APPEND LUAJIT_THIN_EXECUTABLES "${LUAJIT_SRC_DIR}-${ARCH}/src/luajit")
|
||||
list(APPEND LUAJIT_THIN_STATIC_LIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.a")
|
||||
list(APPEND LUAJIT_THIN_DYLIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.so")
|
||||
list(APPEND LUAJIT_THIN_TARGETS "luajit-${ARCH}")
|
||||
|
||||
# Build luajit for the target
|
||||
# See https://luajit.org/install.html#cross.
|
||||
BuildLuaJit(TARGET "luajit-${ARCH}"
|
||||
BUILD_COMMAND ${BUILDCMD_UNIX}
|
||||
CC=${LUAJIT_C_COMPILER} STATIC_CC=${STATIC_CC}
|
||||
DYNAMIC_CC=${DYNAMIC_CC} TARGET_LD=${TARGET_LD}
|
||||
PREFIX=${DEPS_INSTALL_DIR}
|
||||
${DEPLOYMENT_TARGET})
|
||||
endforeach()
|
||||
BuildLuaJit(
|
||||
# Similar to Unix + cross - fPIC
|
||||
INSTALL_COMMAND
|
||||
${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR}
|
||||
BUILDMODE=static install
|
||||
TARGET_SYS=${CMAKE_SYSTEM_NAME}
|
||||
CROSS=${CROSS_TARGET}-
|
||||
HOST_CC=${HOST_C_COMPILER} HOST_CFLAGS=${HOST_C_FLAGS}
|
||||
HOST_LDFLAGS=${HOST_EXE_LINKER_FLAGS}
|
||||
FILE_T=luajit.exe
|
||||
Q=
|
||||
INSTALL_TSYMNAME=luajit.exe)
|
||||
CONFIGURE_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET}
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LUAJIT_SRC_DIR}/src/luajit ${LUAJIT_SRC_DIR}/src/libluajit.so ${LUAJIT_SRC_DIR}/src/libluajit.a
|
||||
BUILD_COMMAND lipo ${LUAJIT_THIN_EXECUTABLES} -create -output ${LUAJIT_SRC_DIR}/src/luajit
|
||||
COMMAND lipo ${LUAJIT_THIN_STATIC_LIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.a
|
||||
COMMAND lipo ${LUAJIT_THIN_DYLIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.so
|
||||
INSTALL_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET} install
|
||||
DEPENDS ${LUAJIT_THIN_TARGETS}
|
||||
)
|
||||
|
||||
elseif(MINGW)
|
||||
|
||||
|
||||
8
third-party/cmake/BuildLuarocks.cmake
vendored
8
third-party/cmake/BuildLuarocks.cmake
vendored
@@ -56,7 +56,7 @@ endif()
|
||||
# Defaults to 5.1 for bundled LuaJIT/Lua.
|
||||
set(LUA_VERSION "5.1")
|
||||
|
||||
if(UNIX OR (MINGW AND CMAKE_CROSSCOMPILING))
|
||||
if(UNIX)
|
||||
|
||||
if(USE_BUNDLED_LUAJIT)
|
||||
list(APPEND LUAROCKS_OPTS
|
||||
@@ -123,9 +123,6 @@ list(APPEND THIRD_PARTY_DEPS luarocks)
|
||||
|
||||
if(USE_BUNDLED_LUAJIT)
|
||||
add_dependencies(luarocks luajit)
|
||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
add_dependencies(luarocks luajit_host)
|
||||
endif()
|
||||
elseif(USE_BUNDLED_LUA)
|
||||
add_dependencies(luarocks lua)
|
||||
endif()
|
||||
@@ -196,9 +193,6 @@ if(USE_BUNDLED_BUSTED)
|
||||
set(LUV_DEPS luacheck)
|
||||
if(USE_BUNDLED_LUV)
|
||||
list(APPEND LUV_DEPS luv-static lua-compat-5.3)
|
||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
list(APPEND LUV_DEPS libuv_host)
|
||||
endif()
|
||||
set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC")
|
||||
if(USE_BUNDLED_LIBUV)
|
||||
list(APPEND LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR})
|
||||
|
||||
15
third-party/cmake/BuildLuv.cmake
vendored
15
third-party/cmake/BuildLuv.cmake
vendored
@@ -48,7 +48,8 @@ function(BuildLuv)
|
||||
PATCH_COMMAND "${_luv_PATCH_COMMAND}"
|
||||
CONFIGURE_COMMAND "${_luv_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${_luv_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${_luv_INSTALL_COMMAND}")
|
||||
INSTALL_COMMAND "${_luv_INSTALL_COMMAND}"
|
||||
LIST_SEPARATOR |)
|
||||
endfunction()
|
||||
|
||||
set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv)
|
||||
@@ -65,6 +66,7 @@ set(LUV_CONFIGURE_COMMAND_COMMON
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
|
||||
-DLUA_BUILD_TYPE=System
|
||||
-DLUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3
|
||||
-DWITH_SHARED_LIBUV=ON
|
||||
@@ -91,16 +93,7 @@ if(USE_BUNDLED_LIBUV)
|
||||
-DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR})
|
||||
endif()
|
||||
|
||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
|
||||
set(LUV_CONFIGURE_COMMAND
|
||||
${LUV_CONFIGURE_COMMAND_COMMON}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
"-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -D_WIN32_WINNT=0x0600"
|
||||
# Hack to avoid -rdynamic in Mingw
|
||||
-DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="")
|
||||
elseif(MSVC)
|
||||
if(MSVC)
|
||||
set(LUV_CONFIGURE_COMMAND
|
||||
${LUV_CONFIGURE_COMMAND_COMMON}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
|
||||
18
third-party/cmake/BuildMsgpack.cmake
vendored
18
third-party/cmake/BuildMsgpack.cmake
vendored
@@ -27,7 +27,8 @@ function(BuildMsgpack)
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${_msgpack_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${_msgpack_BUILD_COMMAND}"
|
||||
INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}")
|
||||
INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}"
|
||||
LIST_SEPARATOR |)
|
||||
endfunction()
|
||||
|
||||
set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
|
||||
@@ -37,25 +38,14 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
|
||||
"-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC"
|
||||
-DCMAKE_GENERATOR=${CMAKE_GENERATOR})
|
||||
|
||||
set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE})
|
||||
set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
|
||||
|
||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||
get_filename_component(TOOLCHAIN ${CMAKE_TOOLCHAIN_FILE} REALPATH)
|
||||
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}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
# Hack to avoid -rdynamic in Mingw
|
||||
-DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="")
|
||||
elseif(MSVC)
|
||||
if(MSVC)
|
||||
# Same as Unix without fPIC
|
||||
set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
|
||||
-DMSGPACK_ENABLE_CXX=OFF
|
||||
|
||||
@@ -19,9 +19,11 @@ CMAKE_ARGS
|
||||
-DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
||||
-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
|
||||
# Pass toolchain
|
||||
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
|
||||
-DPARSERLANG=c
|
||||
|
||||
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}
|
||||
LIST_SEPARATOR |)
|
||||
|
||||
Reference in New Issue
Block a user