<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/cmake, branch usermarks</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: various cmake fixes (#21902)</title>
<updated>2023-01-20T22:48:46+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-01-20T22:48:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4c5c6ca8009dd68a68bc31caef509cb15ebef7ca'/>
<id>4c5c6ca8009dd68a68bc31caef509cb15ebef7ca</id>
<content type='text'>
* build: various cmake refactors and simplifications

- Add STATUS keyword to message to ensure messages are shown in the
  correct order.
- Remove DEPS_CXX_COMPILER as we don't rely on C++ for any of our
  dependencies.
- Simplify how msgpack and luv configure options are constructed.
- Rely on the default installation for luv instead of manually passing
  configure, build and install commands.
- Simplify return code conditional.

* build: remove CMAKE_OSX_ARCHITECTURES_ALT_SEP workaround

CMAKE_OSX_ARCHITECTURES_ALT_SEP was defined as a workaround to prevent
the shell from interpreting `;`, which CMake uses as a list separator.
However, the same thing can be achieved by instead passing
CMAKE_OSX_ARCHITECTURES as a cache variable instead, which is a more
idiomatic way of achieving the same thing.

* build: define CMAKE_BUILD_TYPE before adding it to BUILD_TYPE_STRING

The problem with the current setup is that CMAKE_BUILD_TYPE is defined
after BUILD_TYPE_STRING. BUILD_TYPE_STRING will then be empty on the
first run, meaning that dependencies are built without a build type.
However, since CMAKE_BUILD_TYPE is a cache variable its value will
persist in subsequent runs. On the second run BUILD_TYPE_STRING will
have the correct value, but it's a different value from the ones the
dependencies were built with. This will force some dependencies to be
built again.

Fixes https://github.com/neovim/neovim/issues/21672.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* build: various cmake refactors and simplifications

- Add STATUS keyword to message to ensure messages are shown in the
  correct order.
- Remove DEPS_CXX_COMPILER as we don't rely on C++ for any of our
  dependencies.
- Simplify how msgpack and luv configure options are constructed.
- Rely on the default installation for luv instead of manually passing
  configure, build and install commands.
- Simplify return code conditional.

* build: remove CMAKE_OSX_ARCHITECTURES_ALT_SEP workaround

CMAKE_OSX_ARCHITECTURES_ALT_SEP was defined as a workaround to prevent
the shell from interpreting `;`, which CMake uses as a list separator.
However, the same thing can be achieved by instead passing
CMAKE_OSX_ARCHITECTURES as a cache variable instead, which is a more
idiomatic way of achieving the same thing.

* build: define CMAKE_BUILD_TYPE before adding it to BUILD_TYPE_STRING

The problem with the current setup is that CMAKE_BUILD_TYPE is defined
after BUILD_TYPE_STRING. BUILD_TYPE_STRING will then be empty on the
first run, meaning that dependencies are built without a build type.
However, since CMAKE_BUILD_TYPE is a cache variable its value will
persist in subsequent runs. On the second run BUILD_TYPE_STRING will
have the correct value, but it's a different value from the ones the
dependencies were built with. This will force some dependencies to be
built again.

Fixes https://github.com/neovim/neovim/issues/21672.</pre>
</div>
</content>
</entry>
<entry>
<title>build(Windows): fix redoing version generation (#21880)</title>
<updated>2023-01-18T10:48:01+00:00</updated>
<author>
<name>Enan Ajmain</name>
<email>3nan.ajmain@gmail.com</email>
</author>
<published>2023-01-18T10:48:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=7f7b83baef87b049b8779061065046ee161e2d7c'/>
<id>7f7b83baef87b049b8779061065046ee161e2d7c</id>
<content type='text'>
Problem: On Windows, neovim's version is generated every time nvim is
built, even if code hasn't been changed.  That is because version
generation is done based on a hash matching of a file and the content of
the file.  And in Windows they don't match, because of the DOS
line-endings.

Solution: Write the file containing nvim version with UNIX line-endings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: On Windows, neovim's version is generated every time nvim is
built, even if code hasn't been changed.  That is because version
generation is done based on a hash matching of a file and the content of
the file.  And in Windows they don't match, because of the DOS
line-endings.

Solution: Write the file containing nvim version with UNIX line-endings.</pre>
</div>
</content>
</entry>
<entry>
<title>build: exclude tui/terminfo_defs.h from lintc-clint (#21822)</title>
<updated>2023-01-15T18:30:17+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-01-15T18:30:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=69c71c4ab44d0bf9fe5f6b6066ad5c269d1507b8'/>
<id>69c71c4ab44d0bf9fe5f6b6066ad5c269d1507b8</id>
<content type='text'>
clint takes around 5-10 seconds to lint tui/terminfo_defs.h. For CI this
is negligible, but it's annoying for local development as touching
terminfo_defs.h will skyrocket lint times. Furthermore, we have no
reason to touch or modify terminfo_defs.h as it's a generated file, so
linting it shouldn't be necessary. This should speed up "make lint" by
the same amount, so around 5-10 seconds.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
clint takes around 5-10 seconds to lint tui/terminfo_defs.h. For CI this
is negligible, but it's annoying for local development as touching
terminfo_defs.h will skyrocket lint times. Furthermore, we have no
reason to touch or modify terminfo_defs.h as it's a generated file, so
linting it shouldn't be necessary. This should speed up "make lint" by
the same amount, so around 5-10 seconds.</pre>
</div>
</content>
</entry>
<entry>
<title>build: remove clint error suppression #21782</title>
<updated>2023-01-13T23:48:10+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-01-13T23:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=9220755302317e8030c5bbf334357c0d64df9fa4'/>
<id>9220755302317e8030c5bbf334357c0d64df9fa4</id>
<content type='text'>
Fix remaining clint errors and remove error suppression completely.

Rename the lint targets to align with the established naming convention:

- lintc-clint lints with clint.py.
- lintc-uncrustify lints with uncrustify.
- lintc runs both targets.

lintc is also provided as a make target for convenience.

After this change we can remove these files:
https://github.com/neovim/doc/tree/gh-pages/reports/clint
https://github.com/neovim/doc/blob/main/ci/clint-errors.sh</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix remaining clint errors and remove error suppression completely.

Rename the lint targets to align with the established naming convention:

- lintc-clint lints with clint.py.
- lintc-uncrustify lints with uncrustify.
- lintc runs both targets.

lintc is also provided as a make target for convenience.

After this change we can remove these files:
https://github.com/neovim/doc/tree/gh-pages/reports/clint
https://github.com/neovim/doc/blob/main/ci/clint-errors.sh</pre>
</div>
</content>
</entry>
<entry>
<title>build: use modern cmake (#21589)</title>
<updated>2023-01-10T17:49:57+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-01-10T17:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=438b4361cc761a2950689668f008cfe06c1510f7'/>
<id>438b4361cc761a2950689668f008cfe06c1510f7</id>
<content type='text'>
Replace old-school cmake with the so-called "Modern CMake", meaning
preferring using targets and properties over directory settings and
variables. This allows greater flexibility, robustness and clarity over
how the code works.

The following deprecated commands will be replaced with their modern
alternatives that operates on a specific target, rather than all targets
in the current directory:

- add_compile_options -&gt; target_compile_options
- include_directories -&gt; target_include_directories
- link_libraries -&gt; target_link_libraries
- add_definitions -&gt; target_compile_definitions

There are mainly four main targets that we currently use: nvim, libnvim,
nvim-test (used by unittests) and ${texe} (used by
check-single-includes). The goal is to explicitly define the
dependencies of each target fully, rather than having everything be
dependent on everything else.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace old-school cmake with the so-called "Modern CMake", meaning
preferring using targets and properties over directory settings and
variables. This allows greater flexibility, robustness and clarity over
how the code works.

The following deprecated commands will be replaced with their modern
alternatives that operates on a specific target, rather than all targets
in the current directory:

- add_compile_options -&gt; target_compile_options
- include_directories -&gt; target_include_directories
- link_libraries -&gt; target_link_libraries
- add_definitions -&gt; target_compile_definitions

There are mainly four main targets that we currently use: nvim, libnvim,
nvim-test (used by unittests) and ${texe} (used by
check-single-includes). The goal is to explicitly define the
dependencies of each target fully, rather than having everything be
dependent on everything else.</pre>
</div>
</content>
</entry>
<entry>
<title>build: restrict `git describe` to top level source directory (#20993)</title>
<updated>2022-12-02T12:45:37+00:00</updated>
<author>
<name>Jan Palus</name>
<email>jpalus@fastmail.com</email>
</author>
<published>2022-12-02T12:45:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a3f01d32cba903b58e3ab5a353b4dba8c5431f9c'/>
<id>a3f01d32cba903b58e3ab5a353b4dba8c5431f9c</id>
<content type='text'>
fix version determination when building neovim from release tarball
extracted within another git repository</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fix version determination when building neovim from release tarball
extracted within another git repository</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #20858 from dundargoc/build/lintsh</title>
<updated>2022-11-05T21:11:22+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2022-11-05T21:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=01ff681f571887fe3ffce90e0df60cf1997e9980'/>
<id>01ff681f571887fe3ffce90e0df60cf1997e9980</id>
<content type='text'>
build: add more shell scripts to the `lintsh` target</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
build: add more shell scripts to the `lintsh` target</pre>
</div>
</content>
</entry>
<entry>
<title>build: add EXCLUDE option to add_glob_target</title>
<updated>2022-11-01T17:34:14+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2022-11-01T13:29:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=aeb87f8b4a87e99c392e7ec11b29b715e1f31ac3'/>
<id>aeb87f8b4a87e99c392e7ec11b29b715e1f31ac3</id>
<content type='text'>
EXCLUDE filters out all elements containing regex, meaning it works on
both files and directories.

Also rename add_glob_targets to add_glob_target since only one target is
being created.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
EXCLUDE filters out all elements containing regex, meaning it works on
both files and directories.

Also rename add_glob_targets to add_glob_target since only one target is
being created.
</pre>
</div>
</content>
</entry>
<entry>
<title>build: give example on complex regexes</title>
<updated>2022-10-21T09:57:10+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2022-10-21T09:57:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=45c8679493c628353f6672e940c9ae4fd27dfe84'/>
<id>45c8679493c628353f6672e940c9ae4fd27dfe84</id>
<content type='text'>
This is just to allow the reader to get a quick understanding without
necessarily needing to know all the regex intricasies.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is just to allow the reader to get a quick understanding without
necessarily needing to know all the regex intricasies.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(build): duplicate version string "v0.8.0-v0.8.0" #20578</title>
<updated>2022-10-20T11:03:41+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2022-10-20T11:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e33995e936c57064bf5629f6b527bfc1b77f77f8'/>
<id>e33995e936c57064bf5629f6b527bfc1b77f77f8</id>
<content type='text'>
- Prevent duplicate version strings such as v0.8.0-v0.8.0.
- Change the format for git releases from v0.9.0-dev-67-g625ba79be to
  v0.9.0-dev-67+g625ba79be.

Nvim versions are now:
release                    : v0.9.0
prerelease without git info: v0.9.0-dev
prerelease with git info   : v0.9.0-dev-67+g625ba79be</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Prevent duplicate version strings such as v0.8.0-v0.8.0.
- Change the format for git releases from v0.9.0-dev-67-g625ba79be to
  v0.9.0-dev-67+g625ba79be.

Nvim versions are now:
release                    : v0.9.0
prerelease without git info: v0.9.0-dev
prerelease with git info   : v0.9.0-dev-67+g625ba79be</pre>
</div>
</content>
</entry>
</feed>
