mirror of https://github.com/neovim/neovim.git
ci: provide separate macos releases for intel and arm
This will immensely reduce the complexity required to support both architectures, reduce overall lines of code and unblock follow-up simplifications.
This commit is contained in:
parent
011585f35f
commit
036f86feac
|
@ -1,22 +0,0 @@
|
||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
MACOSX_DEPLOYMENT_TARGET=11.0
|
|
||||||
export MACOSX_DEPLOYMENT_TARGET
|
|
||||||
cmake -S cmake.deps -B .deps -G Ninja \
|
|
||||||
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
|
|
||||||
-D CMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
|
|
||||||
-D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \
|
|
||||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
|
||||||
cmake --build .deps
|
|
||||||
cmake -B build -G Ninja \
|
|
||||||
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
|
|
||||||
-D CMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} \
|
|
||||||
-D CMAKE_OSX_ARCHITECTURES=arm64\;x86_64 \
|
|
||||||
-D ENABLE_LIBINTL=OFF \
|
|
||||||
-D CMAKE_FIND_FRAMEWORK=NEVER
|
|
||||||
cmake --build build
|
|
||||||
# Make sure we build everything for M1 as well
|
|
||||||
for macho in build/bin/* build/lib/nvim/parser/*.so; do
|
|
||||||
lipo -info "$macho" | grep -q arm64 || exit 1
|
|
||||||
done
|
|
||||||
cpack --config build/CPackConfig.cmake
|
|
|
@ -20,17 +20,6 @@ env:
|
||||||
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
|
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
macos-universal:
|
|
||||||
runs-on: macos-14
|
|
||||||
timeout-minutes: 20
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: ./.github/actions/setup
|
|
||||||
- run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Build universal binary
|
|
||||||
run: ./.github/scripts/build_universal_macos.sh
|
|
||||||
|
|
||||||
old-cmake:
|
old-cmake:
|
||||||
name: Test oldest supported cmake
|
name: Test oldest supported cmake
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
|
|
@ -18,12 +18,19 @@ ${NVIM_VERSION}
|
||||||
2. Run the MSI
|
2. Run the MSI
|
||||||
3. Run `nvim.exe` on your CLI of choice
|
3. Run `nvim.exe` on your CLI of choice
|
||||||
|
|
||||||
### macOS
|
### macOS (x86_64)
|
||||||
|
|
||||||
1. Download **nvim-macos.tar.gz**
|
1. Download **nvim-macos-x86_86.tar.gz**
|
||||||
2. Run `xattr -c ./nvim-macos.tar.gz` (to avoid "unknown developer" warning)
|
2. Run `xattr -c ./nvim-macos-x86_86.tar.gz` (to avoid "unknown developer" warning)
|
||||||
3. Extract: `tar xzvf nvim-macos.tar.gz`
|
3. Extract: `tar xzvf nvim-macos-x86_86.tar.gz`
|
||||||
4. Run `./nvim-macos/bin/nvim`
|
4. Run `./nvim-macos-x86_86/bin/nvim`
|
||||||
|
|
||||||
|
### macOS (arm64)
|
||||||
|
|
||||||
|
1. Download **nvim-macos-arm64.tar.gz**
|
||||||
|
2. Run `xattr -c ./nvim-macos-arm64.tar.gz` (to avoid "unknown developer" warning)
|
||||||
|
3. Extract: `tar xzvf nvim-macos-arm64.tar.gz`
|
||||||
|
4. Run `./nvim-macos-arm64/bin/nvim`
|
||||||
|
|
||||||
### Linux (x64)
|
### Linux (x64)
|
||||||
|
|
||||||
|
@ -56,7 +63,8 @@ https://github.com/neovim/neovim-releases.
|
||||||
${SHA_LINUX_64_TAR}
|
${SHA_LINUX_64_TAR}
|
||||||
${SHA_APP_IMAGE}
|
${SHA_APP_IMAGE}
|
||||||
${SHA_APP_IMAGE_ZSYNC}
|
${SHA_APP_IMAGE_ZSYNC}
|
||||||
${SHA_MACOS}
|
${SHA_MACOS_X86_64}
|
||||||
|
${SHA_MACOS_ARM64}
|
||||||
${SHA_WIN_64_ZIP}
|
${SHA_WIN_64_ZIP}
|
||||||
${SHA_WIN_64_MSI}
|
${SHA_WIN_64_MSI}
|
||||||
```
|
```
|
||||||
|
|
|
@ -59,8 +59,19 @@ jobs:
|
||||||
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
|
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
|
||||||
printf 'END\n' >> $GITHUB_OUTPUT
|
printf 'END\n' >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
macOS:
|
macos:
|
||||||
runs-on: macos-14
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
runner: [ macos-12, macos-14 ]
|
||||||
|
include:
|
||||||
|
- runner: macos-12
|
||||||
|
arch: x86_64
|
||||||
|
- runner: macos-14
|
||||||
|
arch: arm64
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
|
env:
|
||||||
|
MACOSX_DEPLOYMENT_TARGET: 11.0
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
|
@ -72,17 +83,33 @@ jobs:
|
||||||
run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV
|
run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV
|
||||||
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
|
- if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly')
|
||||||
run: printf 'CMAKE_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV
|
run: printf 'CMAKE_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV
|
||||||
- name: Build universal binary
|
|
||||||
run: ./.github/scripts/build_universal_macos.sh
|
- name: Build deps
|
||||||
|
run: |
|
||||||
|
cmake -S cmake.deps -B .deps -G Ninja \
|
||||||
|
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
|
||||||
|
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||||
|
cmake --build .deps
|
||||||
|
|
||||||
|
- name: Build neovim
|
||||||
|
run: |
|
||||||
|
cmake -B build -G Ninja \
|
||||||
|
-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
|
||||||
|
-D ENABLE_LIBINTL=OFF \
|
||||||
|
-D CMAKE_FIND_FRAMEWORK=NEVER
|
||||||
|
cmake --build build
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
run: cpack --config build/CPackConfig.cmake
|
||||||
|
|
||||||
- uses: actions/upload-artifact@v4
|
- uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: nvim-macos
|
name: nvim-macos-${{ matrix.arch }}
|
||||||
path: build/nvim-macos.tar.gz
|
path: build/nvim-macos-${{ matrix.arch }}.tar.gz
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
windows:
|
windows:
|
||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
name: windows (MSVC_64)
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
|
@ -106,7 +133,7 @@ jobs:
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
needs: [linux, macOS, windows]
|
needs: [linux, macos, windows]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
GH_REPO: ${{ github.repository }}
|
GH_REPO: ${{ github.repository }}
|
||||||
|
@ -160,11 +187,16 @@ jobs:
|
||||||
cd ./appimage
|
cd ./appimage
|
||||||
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum
|
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum
|
||||||
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV
|
||||||
- name: Generate macOS SHA256 checksums
|
- name: Generate macos x86_64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./nvim-macos
|
cd ./nvim-macos-x86_64
|
||||||
sha256sum nvim-macos.tar.gz > nvim-macos.tar.gz.sha256sum
|
sha256sum nvim-macos-x86_64.tar.gz > nvim-macos-x86_64.tar.gz.sha256sum
|
||||||
echo "SHA_MACOS=$(cat nvim-macos.tar.gz.sha256sum)" >> $GITHUB_ENV
|
echo "SHA_MACOS_X86_64=$(cat nvim-macos-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||||
|
- name: Generate macos arm64 SHA256 checksums
|
||||||
|
run: |
|
||||||
|
cd ./nvim-macos-arm64
|
||||||
|
sha256sum nvim-macos-arm64.tar.gz > nvim-macos-arm64.tar.gz.sha256sum
|
||||||
|
echo "SHA_MACOS_ARM64=$(cat nvim-macos-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV
|
||||||
- name: Generate Win64 SHA256 checksums
|
- name: Generate Win64 SHA256 checksums
|
||||||
run: |
|
run: |
|
||||||
cd ./nvim-win64
|
cd ./nvim-win64
|
||||||
|
@ -179,6 +211,6 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
|
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
|
||||||
if [ "$TAG_NAME" != "nightly" ]; then
|
if [ "$TAG_NAME" != "nightly" ]; then
|
||||||
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/*
|
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
||||||
fi
|
fi
|
||||||
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/*
|
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/*
|
||||||
|
|
|
@ -307,7 +307,6 @@ ExternalProject_Add(uncrustify
|
||||||
URL_HASH SHA256=ecaf4c0adca14c36dfffa30bc28e69865115ecd602c90eb16a8cddccb41caad2
|
URL_HASH SHA256=ecaf4c0adca14c36dfffa30bc28e69865115ecd602c90eb16a8cddccb41caad2
|
||||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/uncrustify
|
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/uncrustify
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
EXCLUDE_FROM_ALL TRUE
|
EXCLUDE_FROM_ALL TRUE
|
||||||
DOWNLOAD_NO_PROGRESS TRUE)
|
DOWNLOAD_NO_PROGRESS TRUE)
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ if(MSVC)
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
-D LIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
|
-D LIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
|
||||||
-D LIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$<SEMICOLON>${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX}
|
-D LIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$<SEMICOLON>${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
||||||
|
|
|
@ -6,7 +6,6 @@ if(MSVC)
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt
|
||||||
${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt
|
${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
|
||||||
|
|
|
@ -6,5 +6,4 @@ ExternalProject_Add(libuv
|
||||||
-D BUILD_TESTING=OFF
|
-D BUILD_TESTING=OFF
|
||||||
-D LIBUV_BUILD_SHARED=OFF
|
-D LIBUV_BUILD_SHARED=OFF
|
||||||
-D UV_LINT_W4=OFF
|
-D UV_LINT_W4=OFF
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
|
@ -5,5 +5,4 @@ ExternalProject_Add(libvterm
|
||||||
${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
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
|
@ -5,7 +5,6 @@ ExternalProject_Add(lpeg
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LpegCMakeLists.txt
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LpegCMakeLists.txt
|
||||||
${DEPS_BUILD_DIR}/src/lpeg/CMakeLists.txt
|
${DEPS_BUILD_DIR}/src/lpeg/CMakeLists.txt
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS} -DCMAKE_C_FLAGS=${DEPS_INCLUDE_FLAGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS} -DCMAKE_C_FLAGS=${DEPS_INCLUDE_FLAGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
||||||
if(USE_BUNDLED_LUAJIT)
|
if(USE_BUNDLED_LUAJIT)
|
||||||
|
|
|
@ -4,16 +4,13 @@
|
||||||
function(BuildLuajit)
|
function(BuildLuajit)
|
||||||
cmake_parse_arguments(_luajit
|
cmake_parse_arguments(_luajit
|
||||||
""
|
""
|
||||||
"TARGET"
|
""
|
||||||
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND;DEPENDS"
|
"CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND;DEPENDS"
|
||||||
${ARGN})
|
${ARGN})
|
||||||
if(NOT _luajit_TARGET)
|
|
||||||
set(_luajit_TARGET "luajit")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_externalproject_options(luajit ${DEPS_IGNORE_SHA})
|
get_externalproject_options(luajit ${DEPS_IGNORE_SHA})
|
||||||
ExternalProject_Add(${_luajit_TARGET}
|
ExternalProject_Add(luajit
|
||||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${_luajit_TARGET}
|
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luajit
|
||||||
CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}"
|
CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}"
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
BUILD_COMMAND "${_luajit_BUILD_COMMAND}"
|
BUILD_COMMAND "${_luajit_BUILD_COMMAND}"
|
||||||
|
@ -47,49 +44,11 @@ if(APPLE)
|
||||||
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES))
|
if(UNIX)
|
||||||
BuildLuaJit(INSTALL_COMMAND ${BUILDCMD_UNIX}
|
BuildLuaJit(INSTALL_COMMAND ${BUILDCMD_UNIX}
|
||||||
CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
|
CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
|
||||||
${DEPLOYMENT_TARGET} install)
|
${DEPLOYMENT_TARGET} install)
|
||||||
|
|
||||||
elseif(CMAKE_OSX_ARCHITECTURES AND APPLE)
|
|
||||||
|
|
||||||
set(LUAJIT_C_COMPILER "${CMAKE_C_COMPILER}")
|
|
||||||
if(CMAKE_OSX_SYSROOT)
|
|
||||||
set(LUAJIT_C_COMPILER "${LUAJIT_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# 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}")
|
|
||||||
|
|
||||||
# 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(
|
|
||||||
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)
|
elseif(MINGW)
|
||||||
|
|
||||||
if(CMAKE_GENERATOR MATCHES "Ninja")
|
if(CMAKE_GENERATOR MATCHES "Ninja")
|
||||||
|
|
|
@ -31,7 +31,6 @@ ExternalProject_Add(luv
|
||||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv
|
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv
|
||||||
SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv
|
SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LUV_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LUV_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
||||||
if(USE_BUNDLED_LUAJIT)
|
if(USE_BUNDLED_LUAJIT)
|
||||||
|
|
|
@ -4,5 +4,4 @@ ExternalProject_Add(msgpack
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
-D MSGPACK_BUILD_TESTS=OFF
|
-D MSGPACK_BUILD_TESTS=OFF
|
||||||
-D MSGPACK_BUILD_EXAMPLES=OFF
|
-D MSGPACK_BUILD_EXAMPLES=OFF
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
|
@ -5,5 +5,4 @@ ExternalProject_Add(treesitter
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
|
||||||
${DEPS_BUILD_DIR}/src/treesitter/CMakeLists.txt
|
${DEPS_BUILD_DIR}/src/treesitter/CMakeLists.txt
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
|
@ -25,7 +25,6 @@ function(BuildTSParser)
|
||||||
${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
|
${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
-D PARSERLANG=${TS_LANG}
|
-D PARSERLANG=${TS_LANG}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
|
@ -2,5 +2,4 @@ get_externalproject_options(unibilium ${DEPS_IGNORE_SHA})
|
||||||
ExternalProject_Add(unibilium
|
ExternalProject_Add(unibilium
|
||||||
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
|
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
|
||||||
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
|
||||||
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
|
|
||||||
${EXTERNALPROJECT_OPTIONS})
|
${EXTERNALPROJECT_OPTIONS})
|
||||||
|
|
|
@ -44,7 +44,7 @@ if(WIN32)
|
||||||
list(APPEND CPACK_WIX_EXTENSIONS WixUtilExtension)
|
list(APPEND CPACK_WIX_EXTENSIONS WixUtilExtension)
|
||||||
list(APPEND CPACK_WIX_PATCH_FILE ${CMAKE_CURRENT_LIST_DIR}/WixPatch.xml)
|
list(APPEND CPACK_WIX_PATCH_FILE ${CMAKE_CURRENT_LIST_DIR}/WixPatch.xml)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(CPACK_PACKAGE_FILE_NAME "nvim-macos")
|
set(CPACK_PACKAGE_FILE_NAME "nvim-macos-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
set(CPACK_GENERATOR TGZ)
|
set(CPACK_GENERATOR TGZ)
|
||||||
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
|
||||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
|
|
@ -18,8 +18,6 @@ if(APPLE)
|
||||||
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_FIND_FRAMEWORK=${CMAKE_FIND_FRAMEWORK})
|
list(APPEND DEPS_CMAKE_ARGS -D CMAKE_FIND_FRAMEWORK=${CMAKE_FIND_FRAMEWORK})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DEPS_CMAKE_CACHE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES})
|
|
||||||
|
|
||||||
# MAKE_PRG
|
# MAKE_PRG
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
find_program(MAKE_PRG NAMES gmake make)
|
find_program(MAKE_PRG NAMES gmake make)
|
||||||
|
@ -48,11 +46,6 @@ set(DEPS_C_COMPILER "${CMAKE_C_COMPILER}")
|
||||||
if(CMAKE_OSX_SYSROOT)
|
if(CMAKE_OSX_SYSROOT)
|
||||||
set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
|
set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
|
||||||
endif()
|
endif()
|
||||||
if(CMAKE_OSX_ARCHITECTURES)
|
|
||||||
foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
|
|
||||||
set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -arch ${ARCH}")
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(get_externalproject_options name DEPS_IGNORE_SHA)
|
function(get_externalproject_options name DEPS_IGNORE_SHA)
|
||||||
string(TOUPPER ${name} name_allcaps)
|
string(TOUPPER ${name} name_allcaps)
|
||||||
|
|
Loading…
Reference in New Issue