<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/Makefile, branch userregs_2</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>build: make makefile work on msys</title>
<updated>2025-02-23T10:38:29+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-02-22T15:46:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4a0ee22e77d169191e7163d1340b835145f4dac9'/>
<id>4a0ee22e77d169191e7163d1340b835145f4dac9</id>
<content type='text'>
Relying on $(OS) doesn't work as it's too naive, so we check if $PATH
contains a colon instead.

Closes https://github.com/neovim/neovim/issues/31027
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relying on $(OS) doesn't work as it's too naive, so we check if $PATH
contains a colon instead.

Closes https://github.com/neovim/neovim/issues/31027
</pre>
</div>
</content>
</entry>
<entry>
<title>build: add luals check</title>
<updated>2025-02-09T17:10:54+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-02-06T12:45:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=198a952c13a1f44c216d3e83b65295cf78802f30'/>
<id>198a952c13a1f44c216d3e83b65295cf78802f30</id>
<content type='text'>
This automatically downloads and uses the correct luals binary for the
currently used system. `make luals` will run luals on all lua files in
`runtime`.

We download lua-language-server manually instead of relying on
contributors downloading it on their own (like with stylua) as
lua-language-server is updated frequently which may cause unnecessary
friction. Therefore, we download a pinned version of luals which we then
can manually bump when needed. This can be re-evaluated if luals becomes
more stable in the future.

Currently this is not run when using `make lint` since cmake style "file
caching" doesn't seem possible at the moment. This is because checking a
single file doesn't seem to work.

Work on https://github.com/neovim/neovim/issues/24563.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This automatically downloads and uses the correct luals binary for the
currently used system. `make luals` will run luals on all lua files in
`runtime`.

We download lua-language-server manually instead of relying on
contributors downloading it on their own (like with stylua) as
lua-language-server is updated frequently which may cause unnecessary
friction. Therefore, we download a pinned version of luals which we then
can manually bump when needed. This can be re-evaluated if luals becomes
more stable in the future.

Currently this is not run when using `make lint` since cmake style "file
caching" doesn't seem possible at the moment. This is because checking a
single file doesn't seem to work.

Work on https://github.com/neovim/neovim/issues/24563.
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: misc</title>
<updated>2025-01-11T09:34:12+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-11-24T10:29:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=6a425e7045cca609d95612c0f2cd08d0265238a9'/>
<id>6a425e7045cca609d95612c0f2cd08d0265238a9</id>
<content type='text'>
Co-authored-by: Axel &lt;axelhjq@gmail.com&gt;
Co-authored-by: Colin Kennedy &lt;colinvfx@gmail.com&gt;
Co-authored-by: Daiki Noda &lt;sys9kdr@users.noreply.github.com&gt;
Co-authored-by: Evgeni Chasnovski &lt;evgeni.chasnovski@gmail.com&gt;
Co-authored-by: Jean-Jacq du Plessis &lt;1030058+jj-du-plessis@users.noreply.github.com&gt;
Co-authored-by: Juan Giordana &lt;juangiordana@gmail.com&gt;
Co-authored-by: Lincoln Wallace &lt;locnnil0@gmail.com&gt;
Co-authored-by: Matti Hellström &lt;hellstrom@scm.com&gt;
Co-authored-by: Steven Locorotondo &lt;steven.locorotondo@justeattakeaway.com&gt;
Co-authored-by: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Co-authored-by: glepnir &lt;glephunter@gmail.com&gt;
Co-authored-by: ifish &lt;fishioon@live.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Axel &lt;axelhjq@gmail.com&gt;
Co-authored-by: Colin Kennedy &lt;colinvfx@gmail.com&gt;
Co-authored-by: Daiki Noda &lt;sys9kdr@users.noreply.github.com&gt;
Co-authored-by: Evgeni Chasnovski &lt;evgeni.chasnovski@gmail.com&gt;
Co-authored-by: Jean-Jacq du Plessis &lt;1030058+jj-du-plessis@users.noreply.github.com&gt;
Co-authored-by: Juan Giordana &lt;juangiordana@gmail.com&gt;
Co-authored-by: Lincoln Wallace &lt;locnnil0@gmail.com&gt;
Co-authored-by: Matti Hellström &lt;hellstrom@scm.com&gt;
Co-authored-by: Steven Locorotondo &lt;steven.locorotondo@justeattakeaway.com&gt;
Co-authored-by: Yochem van Rosmalen &lt;git@yochem.nl&gt;
Co-authored-by: glepnir &lt;glephunter@gmail.com&gt;
Co-authored-by: ifish &lt;fishioon@live.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: work around bug in make when PATH includes cmake as dir</title>
<updated>2024-09-20T20:16:34+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-09-20T12:50:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e268fcbdaa1e0e0cee3b513e62581d35bb937d40'/>
<id>e268fcbdaa1e0e0cee3b513e62581d35bb937d40</id>
<content type='text'>
There appears to be a bug in `make` where if a rule asks `make` to
invoke a command called `foo`, and `foo` exists somewhere in `$PATH` as
a directory (not an executable file), `make` will attempt to `execve`
that directory instead of continuing to search in later parts of the
`$PATH` for `foo` as a true executable.

The cause can be traced back to a bug in Make 4.3 which stems from their
use of the findprog function in Gnulib. This was reported to the Make
maintainers here:

https://savannah.gnu.org/bugs/index.php?57962

and then forwarded to the Gnulib maintainers here:

https://github.com/coreutils/gnulib/commit/7b1de4a

Make 4.4 does not have this bug, and I can confirm that I'm able to run
make in the Neovim repo with no further modifications to my system than
upgrading the version of make I'm using to 4.4 or 4.4.1.

As the change is small enough, and it's unlikely that make version
around the world is going to be updated in a timely manner, it makes
sense to just add a workaround for this. Using `command -v` to resolve
the `cmake` command, similar to what is already being done with
`cmake3`, makes it work correctly in all cases. Continuing to include
`... || echo cmake` at the end means that if neither `cmake3` nor
`cmake` are installed, the user will still see a message about CMake
being missing.

Co-authored-by: Jake Zimmerman &lt;zimmerman.jake@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There appears to be a bug in `make` where if a rule asks `make` to
invoke a command called `foo`, and `foo` exists somewhere in `$PATH` as
a directory (not an executable file), `make` will attempt to `execve`
that directory instead of continuing to search in later parts of the
`$PATH` for `foo` as a true executable.

The cause can be traced back to a bug in Make 4.3 which stems from their
use of the findprog function in Gnulib. This was reported to the Make
maintainers here:

https://savannah.gnu.org/bugs/index.php?57962

and then forwarded to the Gnulib maintainers here:

https://github.com/coreutils/gnulib/commit/7b1de4a

Make 4.4 does not have this bug, and I can confirm that I'm able to run
make in the Neovim repo with no further modifications to my system than
upgrading the version of make I'm using to 4.4 or 4.4.1.

As the change is small enough, and it's unlikely that make version
around the world is going to be updated in a timely manner, it makes
sense to just add a workaround for this. Using `command -v` to resolve
the `cmake` command, similar to what is already being done with
`cmake3`, makes it work correctly in all cases. Continuing to include
`... || echo cmake` at the end means that if neither `cmake3` nor
`cmake` are installed, the user will still see a message about CMake
being missing.

Co-authored-by: Jake Zimmerman &lt;zimmerman.jake@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: add quotes around `CMAKE_GENERATOR` variable</title>
<updated>2024-09-02T15:37:15+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-09-02T10:51:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=ef8067a19d981388a14407ea08245811cf5b3604'/>
<id>ef8067a19d981388a14407ea08245811cf5b3604</id>
<content type='text'>
This will fix the following error when using generators that have a
space in them, e.g. "Unix Makefiles":

"CMake Error: Could not create named generator Unix".

Closes https://github.com/neovim/neovim/issues/30218.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This will fix the following error when using generators that have a
space in them, e.g. "Unix Makefiles":

"CMake Error: Could not create named generator Unix".

Closes https://github.com/neovim/neovim/issues/30218.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: make makefile work on windows</title>
<updated>2024-08-31T21:05:36+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-08-30T11:04:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4ee65484b16da9c51e6e1fc3b0d31f74259894f4'/>
<id>4ee65484b16da9c51e6e1fc3b0d31f74259894f4</id>
<content type='text'>
Using powershell as the default windows shell as using cmd alters $PATH
in a way that makes building neovim fail (powershell prioritizes visual
studio tools which is arguably more correct).

This was tested with gnu make for windows, which can be installed with
e.g. scoop. It does not work with nmake and it is extremely unlikely we
want to add nmake support as the makefile is merely supposed to be
syntactic sugar for the most common case. For similar reasons, the only
supported generator is ninja.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using powershell as the default windows shell as using cmd alters $PATH
in a way that makes building neovim fail (powershell prioritizes visual
studio tools which is arguably more correct).

This was tested with gnu make for windows, which can be installed with
e.g. scoop. It does not work with nmake and it is extremely unlikely we
want to add nmake support as the makefile is merely supposed to be
syntactic sugar for the most common case. For similar reasons, the only
supported generator is ninja.
</pre>
</div>
</content>
</entry>
<entry>
<title>revert: "Makefile: use pattern rules for build/.deps (#10366)"</title>
<updated>2024-08-28T10:37:29+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-08-27T11:22:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=3085c9d9daab611a2a20a1db44868a2e4c8f759e'/>
<id>3085c9d9daab611a2a20a1db44868a2e4c8f759e</id>
<content type='text'>
This reverts commit 7f6ff829aa2347eb940d8e70a825ea335d8f15ed.

The given reasoning and usecase is unsatisfactory. While it is true that
it allows to run `make build/bin/nvim`, it can easily be recreated with
`ninja -C build bin/nvim` which does the exact same thing. This minor
convenience is not worth adding the extra code given how rare this
usecase should be.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 7f6ff829aa2347eb940d8e70a825ea335d8f15ed.

The given reasoning and usecase is unsatisfactory. While it is true that
it allows to run `make build/bin/nvim`, it can easily be recreated with
`ninja -C build bin/nvim` which does the exact same thing. This minor
convenience is not worth adding the extra code given how rare this
usecase should be.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: set deps default build type to Release (#27495)</title>
<updated>2024-02-16T17:56:52+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2024-02-16T17:56:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a75ef40f4cde43f680fe5f4f9cf9a657312251e9'/>
<id>a75ef40f4cde43f680fe5f4f9cf9a657312251e9</id>
<content type='text'>
Debugging dependencies is rare so a Debug build type is usually not
needed. In cases where it _is_ needed it is easy to rebuild in Debug
mode. But since Release builds are more common, it makes more sense as a
default.

For Neovim itself we stick with a Debug build as a default, since
rebuilding and debugging is done _much_ more frequently than with
dependencies (which we _mostly_ expect to "just work").

Also remove the CMAKE_BUILD_TYPE variable in the Makefile, since this is
set by default in CMake.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Debugging dependencies is rare so a Debug build type is usually not
needed. In cases where it _is_ needed it is easy to rebuild in Debug
mode. But since Release builds are more common, it makes more sense as a
default.

For Neovim itself we stick with a Debug build as a default, since
rebuilding and debugging is done _much_ more frequently than with
dependencies (which we _mostly_ expect to "just work").

Also remove the CMAKE_BUILD_TYPE variable in the Makefile, since this is
set by default in CMake.</pre>
</div>
</content>
</entry>
<entry>
<title>build(docs): separate lint job to validate vimdoc #27227</title>
<updated>2024-01-28T22:22:39+00:00</updated>
<author>
<name>Jongwook Choi</name>
<email>wookayin@gmail.com</email>
</author>
<published>2024-01-28T22:22:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=01e82eba209a96f932d3497e580ab0ca749efafa'/>
<id>01e82eba209a96f932d3497e580ab0ca749efafa</id>
<content type='text'>
Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc,
it is no longer as a part of functionaltest (help_spec).

Build (cmake) and CI:

- `make lintdoc`: validate vimdoc files and test-generate HTML docs.
  CI will run this as a part of the "docs" workflow.

- `scripts/lintdoc.lua` is added as an entry point (executable script)
  for validating vimdoc files.

scripts/gen_help_html.lua:

- Move the tests for validating docs and generating HTMLs from
  `help_spec.lua` to `gen_help_html`. Added:
  - `gen_help_html.run_validate()`.
  - `gen_help_html.test_gen()`.

- Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from
  `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files
  on `./runtime/doc`, not on `./build/runtime/doc`.

- Add type annotations for gen_help_html.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc,
it is no longer as a part of functionaltest (help_spec).

Build (cmake) and CI:

- `make lintdoc`: validate vimdoc files and test-generate HTML docs.
  CI will run this as a part of the "docs" workflow.

- `scripts/lintdoc.lua` is added as an entry point (executable script)
  for validating vimdoc files.

scripts/gen_help_html.lua:

- Move the tests for validating docs and generating HTMLs from
  `help_spec.lua` to `gen_help_html`. Added:
  - `gen_help_html.run_validate()`.
  - `gen_help_html.test_gen()`.

- Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from
  `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files
  on `./runtime/doc`, not on `./build/runtime/doc`.

- Add type annotations for gen_help_html.</pre>
</div>
</content>
</entry>
<entry>
<title>build: various build improvements</title>
<updated>2024-01-24T11:41:09+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-01-01T12:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=ae3eed53d6100598b6d26fe58e3e97541e03f3c1'/>
<id>ae3eed53d6100598b6d26fe58e3e97541e03f3c1</id>
<content type='text'>
- remove "ran-" prefix from touch files as it's redundant since the
  they're already in the directory named `touches`.
- Include `contrib` when formatting with `make formatlua`.
- Use TARGET_FILE generator expression instead of assuming the
  executable location.
- reuse logic that determines whether to use lua or luajit.
- add translations to the `nvim` target.

Makefile improvements:
- rename variable `CMAKE_PRG` to `CMAKE` to make it more consistent with
  the builtin `MAKE` variable.
- stop propagating flags to generator. Users should use cmake for
  non-standard use cases.
- remove `+` prefix from targets. If the user for whatever reason wants
  to dry-run a target then they should be able to.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- remove "ran-" prefix from touch files as it's redundant since the
  they're already in the directory named `touches`.
- Include `contrib` when formatting with `make formatlua`.
- Use TARGET_FILE generator expression instead of assuming the
  executable location.
- reuse logic that determines whether to use lua or luajit.
- add translations to the `nvim` target.

Makefile improvements:
- rename variable `CMAKE_PRG` to `CMAKE` to make it more consistent with
  the builtin `MAKE` variable.
- stop propagating flags to generator. Users should use cmake for
  non-standard use cases.
- remove `+` prefix from targets. If the user for whatever reason wants
  to dry-run a target then they should be able to.
</pre>
</div>
</content>
</entry>
</feed>
