1
1
mirror of https://github.com/qvacua/vimr.git synced 2024-10-27 02:11:27 +03:00

Compare commits

...

8 Commits

Author SHA1 Message Date
Tae Won Ha
47cc40f3a5
Update DEVELOP.md 2024-05-28 12:25:06 +09:00
Tae Won Ha
b915da2c06
Update release notes 2024-05-28 12:22:47 +09:00
Tae Won Ha
861f9ff08d
Generate sources for v0.10.0 2024-05-28 12:21:34 +09:00
Tae Won Ha
6f4d5ce3cf
Update DEVELOP.md 2024-05-28 12:13:16 +09:00
Tae Won Ha
95431d4b97
Adapt VimR building scripts 2024-05-28 12:07:28 +09:00
Tae Won Ha
6df888fbb0
Bump version to snapshot/20240528.120406 2024-05-28 12:04:07 +09:00
Tae Won Ha
add6933150
Adapt VimR building scripts 2024-05-28 12:02:53 +09:00
Tae Won Ha
162119fc78
Add release notes 2024-05-28 11:51:27 +09:00
12 changed files with 113 additions and 32 deletions

View File

@ -76,4 +76,5 @@ jobs:
gh release create $TAG_NAME \
--prerelease \
--title "Universal ${TAG_NAME}" \
--notes "Neovim universal build with `libintl`" \
--target $GITHUB_SHA nvim-macos-x86_64.tar.gz nvim-macos-arm64.tar.gz nvim-macos-universal.tar.bz

View File

@ -1,12 +1,18 @@
## How to develop
To build Neovim for development, i.e., no universal binary, do the following
In most cases, you can use the pre-built universal Neovim build by running
```bash
clean=false for_dev=true ./bin/build_nvimserver.sh
clean=true for_dev=false ./bin/build_nvimserver.sh
```
You can set `clean=true` if you want to clean the existing build.
If you want to build Neovim locally, i.e., no universal build, you can use
```bash
clean=true for_dev=true ./bin/build_nvimserver.sh
```
This is used when generating source since we need some generated header files.
### Generating sources when upgrading Neovim
@ -25,11 +31,14 @@ defaults write com.qvacua.VimR enable-debug-menu 1
### Neovim
* Commit and push the new release of Neovim.
* Update Neovim and generate sources.
* Commit and push.
* Tag and push with the following
```bash
version=neovim-vX.Y.Z-$(date "+%Y%m%d.%H%M%S"); git tag -a "${version}" -m "${version}"; git push origin "${version}"
```
* Github action will build universal binary + runtime and package it.
* Update the version of Neovim in `/bin/neovim/resources/buildInfo.json`
### VimR

View File

@ -1,4 +1,4 @@
// Auto generated for nvim v0.9.4
// Auto generated for nvim v0.10.0
// See bin/generate_autocmds.py
enum NvimAutoCommandEvent: String {
@ -74,7 +74,10 @@ enum NvimAutoCommandEvent: String {
case insertleavepre
case lspattach
case lspdetach
case lsprequest
case lspnotify
case lsptokenupdate
case lspprogress
case menupopup
case modechanged
case optionset
@ -84,8 +87,10 @@ enum NvimAutoCommandEvent: String {
case recordingenter
case recordingleave
case remotereply
case safestate
case searchwrapped
case sessionloadpost
case sessionwritepost
case shellcmdpost
case shellfilterpost
case signal
@ -107,6 +112,7 @@ enum NvimAutoCommandEvent: String {
case termenter
case termleave
case termopen
case termrequest
case termresponse
case textchanged
case textchangedi

View File

@ -1,4 +1,4 @@
// Auto generated for nvim v0.9.4
// Auto generated for nvim v0.10.0
// See bin/generate_cursor_shape.py
public enum CursorModeShape: String {

View File

@ -1126,7 +1126,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.120406;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_MODULE_VERIFIER = YES;
@ -1192,7 +1192,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.120406;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_MODULE_VERIFIER = YES;
@ -1225,7 +1225,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.120406;
DEFINES_MODULE = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IBC_MODULE = VimR;
@ -1250,7 +1250,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20240426.143700;
CURRENT_PROJECT_VERSION = 20240528.120406;
DEFINES_MODULE = YES;
ENABLE_USER_SCRIPT_SANDBOXING = NO;
IBC_MODULE = VimR;

View File

@ -1224,7 +1224,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.46.1</string>
<string>SNAPSHOT-20240528.120406</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleURLTypes</key>
@ -1241,7 +1241,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>20240426.143700</string>
<string>20240528.120406</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.productivity</string>
<key>LSMinimumSystemVersion</key>

View File

@ -15,10 +15,10 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>0.46.1</string>
<string>SNAPSHOT-20240528.120406</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>20240426.143700</string>
<string>20240528.120406</string>
</dict>
</plist>

View File

@ -1,13 +1,19 @@
#!/bin/bash
set -Eeuo pipefail
declare -r -x clean=${clean:-false}
# This script prepares Neovim binary and the runtime files for building VimR.
# For most cases, you can just download the pre-built universal Neovim releases by running
# `clean=true for_dev=false ./bin/neovim/bin/download_neovim_releases.sh`
# If you want to build Neovim locally, use `for_dev=true`, then, the Neovim binary will be
# built for the current architecture only and using the simple `make` command.
declare -r -x clean=${clean:-true}
declare -r -x for_dev=${for_dev:-false}
main() {
pushd "$(dirname "${BASH_SOURCE[0]}")/.." >/dev/null
resources_folder="./NvimView/Sources/NvimView/Resources"
local -r resources_folder="./NvimView/Sources/NvimView/Resources"
rm -rf "${resources_folder}/NvimServer"
rm -rf "${resources_folder}/runtime"
@ -17,24 +23,39 @@ main() {
rm -rf build
make distclean
popd >/dev/null
rm -rf "${resources_folder}/NvimServer"
rm -rf "${resources_folder}/runtime"
fi
if [[ "${for_dev}" == true ]]; then
pushd ./Neovim >/dev/null
mkdir -p ./build/install
make CMAKE_BUILD_TYPE=Release CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=./install"
make install
./bin/neovim/bin/build_neovim_for_dev.sh
pushd ./Neovim/build >/dev/null
local arch; arch="$(uname -m)"; readonly arch
tar -xf "nvim-macos-${arch}.tar.gz"
popd >/dev/null
cp ./Neovim/build/install/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/install/share/nvim/runtime "${resources_folder}"
cp "./Neovim/build/nvim-macos-${arch}/bin/nvim" "${resources_folder}/NvimServer"
cp -r "./Neovim/build/nvim-macos-${arch}/share/nvim/runtime" "${resources_folder}"
else
./bin/neovim/bin/build_neovim.sh
pushd ./Neovim/build >/dev/null
tar -xf nvim-macos.tar.gz
local neovim_release; neovim_release=$(jq -r ".neovimRelease" ./bin/neovim/resources/buildInfo.json)
readonly neovim_release
pushd ./Neovim >/dev/null
mkdir -p build
pushd ./build >/dev/null
curl -LO "https://github.com/qvacua/vimr/releases/download/${neovim_release}/nvim-macos-universal.tar.bz"
tar -xf nvim-macos-universal.tar.bz
popd >/dev/null
popd >/dev/null
cp ./Neovim/build/nvim-macos/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/nvim-macos/share/nvim/runtime "${resources_folder}"
cp ./Neovim/build/nvim-macos-universal/bin/nvim "${resources_folder}/NvimServer"
cp -r ./Neovim/build/nvim-macos-universal/share/nvim/runtime "${resources_folder}"
fi
# Copy VimR specific vim file to runtime/plugin folder

View File

@ -24,7 +24,7 @@ main() {
nvim_version="v$major.$minor.$patch$prerelease"
echo "### Using nvim version: $nvim_version"
../bin/neovim/bin/build_neovim.sh
for_dev=true ../bin/build_nvimserver.sh
popd > /dev/null
pushd Neovim

View File

@ -0,0 +1,43 @@
#!/bin/bash
set -Eeuo pipefail
# This script builds Neovim with gettext for host's architecture, *no* universal build
# Produces /Neovim/build/neovim-macos-$arch.tar.gz
readonly clean=${clean:?"true or false"}
readonly NVIM_BUILD_TYPE=${NVIM_BUILD_TYPE:-"Release"}
build_neovim() {
# slightly modified version of Neovim's Github workflow for release
local -r -x MACOSX_DEPLOYMENT_TARGET=$1
local -x SDKROOT; SDKROOT=$(xcrun --sdk macosx --show-sdk-path); readonly SDKROOT
# Brew's gettext does not get sym-linked to PATH
export PATH="/opt/homebrew/opt/gettext/bin:/usr/local/opt/gettext/bin:${PATH}"
make CMAKE_BUILD_TYPE="${NVIM_BUILD_TYPE}"
cpack --config build/CPackConfig.cmake
}
main() {
# This script is located in /bin/neovim/bin and we have to go to /
pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" >/dev/null
local deployment_target
deployment_target=$(jq -r .deploymentTarget ./bin/neovim/resources/buildInfo.json)
readonly deployment_target
pushd ./Neovim >/dev/null
echo "### Building neovim binary"
if [[ "${clean}" == true ]]; then
make distclean
fi
build_neovim "${deployment_target}"
popd >/dev/null
popd >/dev/null
}
main

View File

@ -1,7 +1,4 @@
{
"deploymentTarget": "12",
"gettext": {
"arm64BottleTag": "arm64_monterey",
"x86_64BottleTag": "monterey"
}
"neovimRelease": "neovim-v0.10.0-20240527.232810"
}

View File

@ -1,5 +1,9 @@
# Next
* Neovim 0.10.0 😀
# v0.46.2-20240517.102525
* GH-1059: Improved coloring of custom tabs; thanks @s-daveb for the PR!
# v0.46.1-20240426.143700