]> git.ipfire.org Git - thirdparty/ccache.git/log
thirdparty/ccache.git
2 weeks agodocs: Improve manual
Joel Rosdahl [Thu, 9 Oct 2025 20:02:09 +0000 (22:02 +0200)] 
docs: Improve manual

2 weeks agofeat: Support rewriting absolute path for -fsanitize-blacklist (#1647)
Diego Alonso [Fri, 17 Oct 2025 18:57:49 +0000 (18:57 +0000)] 
feat: Support rewriting absolute path for -fsanitize-blacklist (#1647)

3 weeks agotest: Fix `profiling_clang` test (#1642)
Evgeniy Isaev [Sun, 12 Oct 2025 08:29:22 +0000 (11:29 +0300)] 
test: Fix `profiling_clang` test (#1642)

3 weeks agochore: Fix typo in CcacheVersion (#1645)
Andrej [Sat, 11 Oct 2025 09:16:19 +0000 (11:16 +0200)] 
chore: Fix typo in CcacheVersion (#1645)

4 weeks agoci: Add missing dependency on build_documentation for build_release
Joel Rosdahl [Thu, 9 Oct 2025 20:16:33 +0000 (22:16 +0200)] 
ci: Add missing dependency on build_documentation for build_release

4 weeks agodocs: Fix `install.md` links after renaming (#1643)
Evgeniy Isaev [Thu, 9 Oct 2025 19:23:46 +0000 (22:23 +0300)] 
docs: Fix `install.md` links after renaming (#1643)

4 weeks agodocs: Improve documentation on statistics counters and --zero-stats
Joel Rosdahl [Wed, 8 Oct 2025 19:54:16 +0000 (21:54 +0200)] 
docs: Improve documentation on statistics counters and --zero-stats

After discussion with Otto Kekäläinen in #1639.

Co-authored by: Otto Kekäläinen <otto@kekalainen.net>

4 weeks agodocs: Reflow long line in manual
Joel Rosdahl [Mon, 6 Oct 2025 19:25:05 +0000 (21:25 +0200)] 
docs: Reflow long line in manual

4 weeks agodocs: Reconcile max-size suffixes in documentation (#1640)
Andrej [Mon, 6 Oct 2025 19:12:20 +0000 (21:12 +0200)] 
docs: Reconcile max-size suffixes in documentation (#1640)

* Use explicit 'GB' suffix in example.
* Fix misleading `max_size` description. Default suffix is GiB, not GB. And default value is 5GiB also.
* `max_size` description - use explicit suffixes.

4 weeks agofix: Link with libsocket on SunOS/Illumos
Joel Rosdahl [Mon, 6 Oct 2025 18:25:13 +0000 (20:25 +0200)] 
fix: Link with libsocket on SunOS/Illumos

Closes #1638.

4 weeks agochore: Ignore local copilot instructions
Joel Rosdahl [Sun, 5 Oct 2025 17:56:35 +0000 (19:56 +0200)] 
chore: Ignore local copilot instructions

4 weeks agochore: Improve util::FileLock
Joel Rosdahl [Sun, 5 Oct 2025 17:29:36 +0000 (19:29 +0200)] 
chore: Improve util::FileLock

- Release current lock on move.
- Check for invalid file descriptor in acquire/release.
- Use UnlockFileEx on Windows for symmetry with LockFileEx.
- Added noexcept where applicable.

4 weeks agorefactor: Use std::chrono instead of custom classes
Joel Rosdahl [Sun, 5 Oct 2025 13:24:17 +0000 (15:24 +0200)] 
refactor: Use std::chrono instead of custom classes

5 weeks agochore: Update authors
Joel Rosdahl [Wed, 1 Oct 2025 18:48:09 +0000 (20:48 +0200)] 
chore: Update authors

(cherry picked from commit dd29ee832c5ba130d877c16c06e1c3b6dd55247a)

5 weeks agochore: Update NEWS
Joel Rosdahl [Wed, 1 Oct 2025 18:46:42 +0000 (20:46 +0200)] 
chore: Update NEWS

(cherry picked from commit acf9688b448844d931002c26e0cf5ee02f8f47ba)

5 weeks agochore: Update NEWS
Joel Rosdahl [Wed, 1 Oct 2025 18:28:33 +0000 (20:28 +0200)] 
chore: Update NEWS

(cherry picked from commit 058808b676ed0bde0dea5a91434fe5615af2113f)

5 weeks agochore: Update NEWS
Joel Rosdahl [Wed, 1 Oct 2025 18:17:38 +0000 (20:17 +0200)] 
chore: Update NEWS

(cherry picked from commit a50e311cbd4c756fdedf6acd50ee2e8753330587)

5 weeks agofix: Add missing return in copy_file_impl fallback code (#1630)
kingiler [Wed, 1 Oct 2025 18:31:16 +0000 (19:31 +0100)] 
fix: Add missing return in copy_file_impl fallback code (#1630)

This fixes a compilation error with tl::expected ≥ 1.2.0 on non-Apple platforms where sendfile(2) is not available.

5 weeks agofix: Add missing doc files to Linux/macOS binary release packages
Joel Rosdahl [Wed, 1 Oct 2025 16:34:09 +0000 (18:34 +0200)] 
fix: Add missing doc files to Linux/macOS binary release packages

5 weeks agochore: Avoid false positive spelling warning with typos 1.37.0
Joel Rosdahl [Wed, 1 Oct 2025 16:28:38 +0000 (18:28 +0200)] 
chore: Avoid false positive spelling warning with typos 1.37.0

5 weeks agofix: Use monotonic clock for spin locks in inode cache
Joel Rosdahl [Tue, 30 Sep 2025 17:37:07 +0000 (19:37 +0200)] 
fix: Use monotonic clock for spin locks in inode cache

5 weeks agodocs: Rename documentation files to lowercase
Joel Rosdahl [Sun, 28 Sep 2025 17:26:58 +0000 (19:26 +0200)] 
docs: Rename documentation files to lowercase

Exception: Doc files at the top level keep their uppercase names by
convention.

5 weeks agodocs: Generate documention in Markdown format as well
Joel Rosdahl [Sun, 28 Sep 2025 17:24:30 +0000 (19:24 +0200)] 
docs: Generate documention in Markdown format as well

5 weeks agodocs: Escape hash character in asciidoc file
Joel Rosdahl [Sun, 28 Sep 2025 17:22:47 +0000 (19:22 +0200)] 
docs: Escape hash character in asciidoc file

Asciidoctor gets confused otherwise when generating docbook.

5 weeks agofix: Handle -Xarch_host/-Xarch_device except with other -Xarch_*
Joel Rosdahl [Sun, 28 Sep 2025 11:35:03 +0000 (13:35 +0200)] 
fix: Handle -Xarch_host/-Xarch_device except with other -Xarch_*

-Xarch_host and -Xarch_device appear to have different semantics than
other -Xarch_* options, so add special case code that allows only
-Xarch_host options or only -Xarch_device options while falling back to
the compiler for other combinations.

A future improvement would be to add multi-pass support for -Xarch_host
and -Xarch_device combinations as well.

Fixes #1632.

6 weeks agobump: Upgrade to fmt 12.0.0
Joel Rosdahl [Mon, 22 Sep 2025 16:47:03 +0000 (18:47 +0200)] 
bump: Upgrade to fmt 12.0.0

6 weeks agorefactor: Remove unnecessary explicit non::span constructor
Joel Rosdahl [Mon, 22 Sep 2025 16:42:54 +0000 (18:42 +0200)] 
refactor: Remove unnecessary explicit non::span constructor

6 weeks agofix: Don't crash thread pool thread if task throws
Joel Rosdahl [Mon, 15 Sep 2025 19:41:16 +0000 (21:41 +0200)] 
fix: Don't crash thread pool thread if task throws

6 weeks agofix: Don't fail on ENOENT when trying to break a LockFile lock
Joel Rosdahl [Mon, 15 Sep 2025 19:39:18 +0000 (21:39 +0200)] 
fix: Don't fail on ENOENT when trying to break a LockFile lock

6 weeks agochore: Handle empty argv in format_argv_as_win32_command_string
Joel Rosdahl [Mon, 15 Sep 2025 19:30:22 +0000 (21:30 +0200)] 
chore: Handle empty argv in format_argv_as_win32_command_string

7 weeks agofix: Correct saving of current position in fallocate fallback code
Joel Rosdahl [Mon, 15 Sep 2025 19:26:04 +0000 (21:26 +0200)] 
fix: Correct saving of current position in fallocate fallback code

7 weeks agoci: Fix GitHub release title
Joel Rosdahl [Sun, 14 Sep 2025 17:13:00 +0000 (19:13 +0200)] 
ci: Fix GitHub release title

7 weeks agochore: Update NEWS v4.12
Joel Rosdahl [Sun, 14 Sep 2025 11:32:41 +0000 (13:32 +0200)] 
chore: Update NEWS

7 weeks agochore: Update AUTHORS
Joel Rosdahl [Sun, 14 Sep 2025 11:32:30 +0000 (13:32 +0200)] 
chore: Update AUTHORS

7 weeks agochore: Convert misc/update-authors to Python
Joel Rosdahl [Sun, 14 Sep 2025 11:30:51 +0000 (13:30 +0200)] 
chore: Convert misc/update-authors to Python

7 weeks agochore: Update .mailmap
Joel Rosdahl [Sat, 13 Sep 2025 19:21:13 +0000 (21:21 +0200)] 
chore: Update .mailmap

7 weeks agochore: Add alma-9 dockerfile
Joel Rosdahl [Sun, 14 Sep 2025 11:33:46 +0000 (13:33 +0200)] 
chore: Add alma-9 dockerfile

7 weeks agochore: Add debian-13 dockerfile
Joel Rosdahl [Sat, 13 Sep 2025 09:42:54 +0000 (11:42 +0200)] 
chore: Add debian-13 dockerfile

8 weeks agotest: Simplify get_root()
Joel Rosdahl [Wed, 10 Sep 2025 16:49:29 +0000 (18:49 +0200)] 
test: Simplify get_root()

8 weeks agodocs: Document "Unsupported source encoding" statistics counter
Joel Rosdahl [Tue, 9 Sep 2025 19:17:10 +0000 (21:17 +0200)] 
docs: Document "Unsupported source encoding" statistics counter

8 weeks agotest: Handle GetVolumePathName errors, prevent access violation (#1626)
autoantwort [Wed, 10 Sep 2025 16:48:42 +0000 (18:48 +0200)] 
test: Handle GetVolumePathName errors, prevent access violation (#1626)

For example GetVolumePathName returns `F:/git_projects` on my computer which
does not fit in a char[4]. As a result GetVolumePathName returns an error and
a std::string is initialized from uninitialized memory which may not contain
a '\0' resulting in out of bounds memory reads.

Co-authored-by: Leander Schulten <Leander.Schulten@tetys.de>
8 weeks agofix: Avoid expanding symlinks in relative path candidates
Joel Rosdahl [Tue, 9 Sep 2025 16:34:34 +0000 (18:34 +0200)] 
fix: Avoid expanding symlinks in relative path candidates

Commit 8223ed38abd9cf75ab75cb19dc2081c44bf568d0 changed
make_relative_path to also try matching real_path(path) against the
apparent/actual CWD, assuming that an absolute path p could be
substituted with real_path(p).

This assumption is incorrect for source files: if the source file
includes a file via a relative path, expanding symlinks may cause the
include file to be searched in the wrong directory.

Fix by reverting that change. The new test case "Symlink to source file,
longer symlink path" fails without this fix.

Note: this effectively reverts #724.

Fixes #1620.

8 weeks agochore: Touch up basedir.bash
Joel Rosdahl [Tue, 9 Sep 2025 16:34:07 +0000 (18:34 +0200)] 
chore: Touch up basedir.bash

8 weeks agofix: Hash specs file actually used by GCC
Joel Rosdahl [Sun, 7 Sep 2025 17:10:47 +0000 (19:10 +0200)] 
fix: Hash specs file actually used by GCC

"gcc -specs=foo" (when "foo" doesn't include a slash) makes GCC search
in various system directories for the file, so ccache fails to hash the
file if it's found in such a directory.

Fix this by asking the compiler (using "-print-file-name") which file it
will actually read.

Fixes #1625.

8 weeks agofeat: Add support for Clang --config= option
Joel Rosdahl [Sun, 7 Sep 2025 15:29:18 +0000 (17:29 +0200)] 
feat: Add support for Clang --config= option

Clang >= 16 supports "--config=name" in addition to "--config name".

8 weeks agodocs: Fix markup in NEWS file
Joel Rosdahl [Sat, 6 Sep 2025 14:45:34 +0000 (16:45 +0200)] 
docs: Fix markup in NEWS file

8 weeks agorefactor: Simplify HTTP logging slightly
Joel Rosdahl [Wed, 3 Sep 2025 18:09:42 +0000 (20:09 +0200)] 
refactor: Simplify HTTP logging slightly

8 weeks agochore: Update .mailmap
Joel Rosdahl [Wed, 3 Sep 2025 17:58:28 +0000 (19:58 +0200)] 
chore: Update .mailmap

8 weeks agorefactor: Simplify UTF-16LE to UTF-8 conversion in util::read_file
Joel Rosdahl [Wed, 3 Sep 2025 17:58:00 +0000 (19:58 +0200)] 
refactor: Simplify UTF-16LE to UTF-8 conversion in util::read_file

2 months agobump: Upgrade to tl-expected 1.3.1
Joel Rosdahl [Mon, 1 Sep 2025 18:14:39 +0000 (20:14 +0200)] 
bump: Upgrade to tl-expected 1.3.1

2 months agobuild(blake3): Don't use NEON on aarch64_be (#1624)
J. Neuschäfer [Sat, 6 Sep 2025 07:21:16 +0000 (09:21 +0200)] 
build(blake3): Don't use NEON on aarch64_be (#1624)

2 months agoci: Fix version logic in prepare-release for PR workflows
Joel Rosdahl [Fri, 5 Sep 2025 20:13:39 +0000 (22:13 +0200)] 
ci: Fix version logic in prepare-release for PR workflows

2 months agoci: Fix ccache version for PR workflows
Joel Rosdahl [Fri, 5 Sep 2025 18:56:13 +0000 (20:56 +0200)] 
ci: Fix ccache version for PR workflows

2 months agofix: Fix crash on HTTP request failure (#1628)
autoantwort [Wed, 3 Sep 2025 18:01:43 +0000 (20:01 +0200)] 
fix: Fix crash on HTTP request failure (#1628)

If the request fails and `result.error() != Error::Success` `result->` can return
a `nullptr` resulting in a null pointer dereference.

Co-authored-by: Leander Schulten <Leander.Schulten@tetys.de>
2 months agofix: Fix bad conversion from UTF-16 in util::read_file on Windows (#1627)
autoantwort [Wed, 3 Sep 2025 17:39:13 +0000 (19:39 +0200)] 
fix: Fix bad conversion from UTF-16 in util::read_file on Windows (#1627)

When interpreting a char* string that is null terminated as wchar* string
it is not guaranteed that the wchar* string is also null terminated. A char[3]
string/memeory region with the content ['a', '\0', '\0', 100] interpreted as
wchar* has no ending null character resulting in out of bounds memory reads
when trying to construct a std::wstring from it.

Co-authored-by: Leander Schulten <Leander.Schulten@tetys.de>
2 months agoci: Add jobs to build and create release
Joel Rosdahl [Sat, 30 Aug 2025 10:39:55 +0000 (12:39 +0200)] 
ci: Add jobs to build and create release

This includes new binary releases for Linux aarch64 and Windows aarch64.

Closes #1579. See also discussion #1310.

2 months agoci: Add artifact retention
Joel Rosdahl [Sun, 31 Aug 2025 08:28:12 +0000 (10:28 +0200)] 
ci: Add artifact retention

2 months agoci: Verify llvm-mingw toolchain download
Joel Rosdahl [Wed, 27 Aug 2025 19:03:43 +0000 (21:03 +0200)] 
ci: Verify llvm-mingw toolchain download

2 months agoci: Rename binary jobs to common "-binary" suffix
Joel Rosdahl [Wed, 27 Aug 2025 19:03:03 +0000 (21:03 +0200)] 
ci: Rename binary jobs to common "-binary" suffix

2 months agoci: Add traces to CI jobs to make debug cycle shorter
Joel Rosdahl [Wed, 27 Aug 2025 18:57:45 +0000 (20:57 +0200)] 
ci: Add traces to CI jobs to make debug cycle shorter

2 months agobuild: Improve installation of documentation
Joel Rosdahl [Wed, 27 Aug 2025 18:53:45 +0000 (20:53 +0200)] 
build: Improve installation of documentation

- Make HTML and man page part of "cmake --install".
- Make modifications of man page in-place to avoid leaving a .tmp file
  behind.

2 months agoci: Rename macOS to Darwin in CI context
Joel Rosdahl [Wed, 27 Aug 2025 18:46:45 +0000 (20:46 +0200)] 
ci: Rename macOS to Darwin in CI context

2 months agoci: Rename macOS binary jobs to match others
Joel Rosdahl [Sun, 17 Aug 2025 12:23:47 +0000 (14:23 +0200)] 
ci: Rename macOS binary jobs to match others

2 months agoci: Add documentation build job
Joel Rosdahl [Sun, 17 Aug 2025 12:21:23 +0000 (14:21 +0200)] 
ci: Add documentation build job

2 months agoci: Run on ubuntu-24.04 instead of ubuntu-latest
Joel Rosdahl [Fri, 15 Aug 2025 15:23:51 +0000 (17:23 +0200)] 
ci: Run on ubuntu-24.04 instead of ubuntu-latest

I prefer to avoid *-latest tags.

2 months agoci: Improve binary build jobs
Joel Rosdahl [Sun, 10 Aug 2025 08:56:19 +0000 (10:56 +0200)] 
ci: Improve binary build jobs

For x86_64, build in an Alma Linux 8 container since RHEL 8 is the
oldest still active LTS mainstream Linux distribution to my knowledge.

For aarch64, cross compile in an x86_64 environment instead of in a
native aarch64 environment. This is because I want to be able to build
release binaries locally on my x86_64 machine if there is some problem
with the CI environment and it feels good to match that in CI. The build
is still on Ubuntu 22.04 – I made a quick attempt to get
cross-compilation working in Alma Linux 8 working but gave up.

2 months agoci: Bump to newer codespell and typos versions
Joel Rosdahl [Sun, 31 Aug 2025 08:24:12 +0000 (10:24 +0200)] 
ci: Bump to newer codespell and typos versions

2 months agobuild: Detect ccache version from GitHub Actions environment
Joel Rosdahl [Fri, 8 Aug 2025 18:33:41 +0000 (20:33 +0200)] 
build: Detect ccache version from GitHub Actions environment

2 months agorefactor: Use std::array instead of const char* array (#1623)
autoantwort [Thu, 21 Aug 2025 19:26:17 +0000 (21:26 +0200)] 
refactor: Use std::array instead of const char* array (#1623)

2 months agofeat: Add support for multiple directories in base_dir/CCACHE_BASEDIR
Joel Rosdahl [Sat, 16 Aug 2025 19:09:19 +0000 (21:09 +0200)] 
feat: Add support for multiple directories in base_dir/CCACHE_BASEDIR

Closes #597.

2 months agoenhance: Add util::join_path_list
Joel Rosdahl [Sat, 16 Aug 2025 19:07:29 +0000 (21:07 +0200)] 
enhance: Add util::join_path_list

2 months agoenhance: Implement util::to_string(const fs::path&)
Joel Rosdahl [Sat, 16 Aug 2025 19:06:39 +0000 (21:06 +0200)] 
enhance: Implement util::to_string(const fs::path&)

2 months agochore: Improve comments
Joel Rosdahl [Mon, 11 Aug 2025 18:22:24 +0000 (20:22 +0200)] 
chore: Improve comments

2 months agodocs: Reflow long line in manual
Joel Rosdahl [Mon, 11 Aug 2025 18:50:21 +0000 (20:50 +0200)] 
docs: Reflow long line in manual

2 months agofix: Support wide characters in filenames for MSVC
Joel Rosdahl [Wed, 13 Aug 2025 17:36:53 +0000 (19:36 +0200)] 
fix: Support wide characters in filenames for MSVC

Fixes #1619.

2 months agochore: Improve ccache.exe.manifest.in structure
Joel Rosdahl [Wed, 13 Aug 2025 17:36:27 +0000 (19:36 +0200)] 
chore: Improve ccache.exe.manifest.in structure

2 months agochore: Downgrade clang-format to 18.1.3, matching Ubuntu 24.04
Joel Rosdahl [Thu, 14 Aug 2025 19:51:07 +0000 (21:51 +0200)] 
chore: Downgrade clang-format to 18.1.3, matching Ubuntu 24.04

2 months agoci: Enable tests in the msys2 mingw64+clang configuration (#1618)
Martin Storsjö [Tue, 12 Aug 2025 18:10:40 +0000 (21:10 +0300)] 
ci: Enable tests in the msys2 mingw64+clang configuration (#1618)

Instead of disabling tests altogether, pass the -Wno-deprecated
option, working around https://github.com/doctest/doctest/issues/900
in a different fashion.

2 months agoci: Disable Windows MSYS2 clangarm64 job for now
Joel Rosdahl [Tue, 12 Aug 2025 17:55:22 +0000 (19:55 +0200)] 
ci: Disable Windows MSYS2 clangarm64 job for now

The job occasionally crashes with an "Exception: SegFault" message,
perhaps from CTest?

See #1618.

2 months agochore: Modernize Python code in test/http-*
Joel Rosdahl [Fri, 8 Aug 2025 11:10:56 +0000 (13:10 +0200)] 
chore: Modernize Python code in test/http-*

2 months agotest: Fix detection of test suites in test/run
Joel Rosdahl [Wed, 6 Aug 2025 20:10:27 +0000 (22:10 +0200)] 
test: Fix detection of test suites in test/run

Broke in 9da7c09c9390b2db5c745a8dad58d7a3ac3af9b0.

2 months agofix: Redact URLs logged by remote http backend
Joel Rosdahl [Fri, 8 Aug 2025 11:06:38 +0000 (13:06 +0200)] 
fix: Redact URLs logged by remote http backend

3 months agodocs: Mention that #pragma once could be problematic with PCH
Joel Rosdahl [Wed, 6 Aug 2025 16:52:28 +0000 (18:52 +0200)] 
docs: Mention that #pragma once could be problematic with PCH

Fixes #1615.

3 months agorefactor: Improve name and type of only_if_missing parameter
Joel Rosdahl [Wed, 6 Aug 2025 14:55:35 +0000 (16:55 +0200)] 
refactor: Improve name and type of only_if_missing parameter

3 months agoMerge pull request #1598 from mstorsjo/ci-arm
Joel Rosdahl [Tue, 5 Aug 2025 17:48:26 +0000 (19:48 +0200)] 
Merge pull request #1598 from mstorsjo/ci-arm

3 months agoci: Add jobs for building binaries for Windows and Linux 1598/head
Martin Storsjö [Tue, 10 Jun 2025 10:53:41 +0000 (13:53 +0300)] 
ci: Add jobs for building binaries for Windows and Linux

Build binaries for x86_64 and aarch64 on Linux, and i686, x86_64
and aarch64 for Windows.

The Windows binaries are cross compiled from Linux. For x86, it
uses distro provided compilers, while it uses llvm-mingw installed
separately for targeting aarch64. (Most distros don't have packages
for mingw cross compilers for targeting Windows on aarch64 yet. GCC
isn't mature for this target yet, but Clang has supported this
target for many years now. Llvm-mingw is essentially the same toolchain
setup as MSYS2 uses in their clangarm64 environment, but available
as a standalone cross compiler too.)

3 months agoci: Add a toolchain file for (cross) compilation for aarch64-w64-mingw32
Martin Storsjö [Wed, 30 Jul 2025 09:05:22 +0000 (12:05 +0300)] 
ci: Add a toolchain file for (cross) compilation for aarch64-w64-mingw32

Contrary to the existing toolchain files, this doesn't hardcode
CMAKE_FIND_ROOT_PATH to a location in /usr, but locates the
compiler from the path, and picks a sysroot adjacent to it - allowing
using a compiler installed in any path.

This uses a compiler named "${TOOLCHAIN_PREFIX}-gcc" - toolchains
such as llvm-mingw do provide cross tools named "-gcc" for
compatibility, even if they use Clang.

3 months agoci: Run build_and_test on Linux on ARM too
Martin Storsjö [Tue, 10 Jun 2025 10:40:32 +0000 (13:40 +0300)] 
ci: Run build_and_test on Linux on ARM too

3 months agoci: Run the Windows VS2022 ARM64 MSBuild tests on actual ARM hardware
Martin Storsjö [Tue, 10 Jun 2025 10:33:03 +0000 (13:33 +0300)] 
ci: Run the Windows VS2022 ARM64 MSBuild tests on actual ARM hardware

3 months agoci: Extend the msys2 testing to the "clangarm64" environment
Martin Storsjö [Tue, 10 Jun 2025 10:31:42 +0000 (13:31 +0300)] 
ci: Extend the msys2 testing to the "clangarm64" environment

The clangarm64 msys environment doesn't have a "gcc" command
by default, unless the "gcc-compat" package is installed.

One may consider using "cc" as well, which is available when
the "toolchain" package is installed in each environment, but
that tool in clang environments fails the "direct" test case.

3 months agoci: Use pacboy to simplify installation of msys2 packages
Martin Storsjö [Tue, 10 Jun 2025 10:28:53 +0000 (13:28 +0300)] 
ci: Use pacboy to simplify installation of msys2 packages

See [1] and [2] for reference on using pacboy to simplify installing
mingw packages in msys2. The relevant bit to know is that by
specifying plain package names with a ":p" suffix, in the "pacboy"
section in msys2/setup-msys2, those packages are installed within
the current msys2 environment.

This avoids needing to specify the long package prefix like
"mingw-w64-x86_64". For other environments like "ucrt64", "clang64"
and "clangarm64", the prefix is even longer and less obvious.

[1] https://github.com/msys2/setup-msys2?tab=readme-ov-file#pacboy
[2] https://www.msys2.org/docs/package-naming/#avoiding-writing-long-package-names

3 months agoci: Stop manually installing Ninja on Linux and macOS
Martin Storsjö [Tue, 10 Jun 2025 10:55:00 +0000 (13:55 +0300)] 
ci: Stop manually installing Ninja on Linux and macOS

Since https://github.com/actions/runner-images/pull/11706,
https://github.com/actions/runner-images/pull/11707 and
https://github.com/actions/runner-images/pull/11737, ninja is
preinstalled in the Ubuntu, macOS and x86 Windows runner images.

3 months agorefactor: Use TRY_ASSIGN and TRY
Joel Rosdahl [Tue, 5 Aug 2025 11:42:33 +0000 (13:42 +0200)] 
refactor: Use TRY_ASSIGN and TRY

3 months agofix: Properly make unique temporary name in TRY_ASSIGN
Joel Rosdahl [Tue, 5 Aug 2025 08:48:18 +0000 (10:48 +0200)] 
fix: Properly make unique temporary name in TRY_ASSIGN

3 months agorefactor: Extract macros for creating unique variable names
Joel Rosdahl [Tue, 5 Aug 2025 08:45:41 +0000 (10:45 +0200)] 
refactor: Extract macros for creating unique variable names

3 months agoci: Declare downloaded zstd as EXCLUDE_FROM_ALL
Joel Rosdahl [Sun, 3 Aug 2025 16:04:29 +0000 (18:04 +0200)] 
ci: Declare downloaded zstd as EXCLUDE_FROM_ALL

8648532e3cdcd6a0c4fb12b65e1ca9a8972a1e06 removed usage of
FetchContent_Populate to avoid warnings from newer CMake versions, but
the EXCLUDE_FROM_ALL part got lost in translation.

Corresponding semantics is available by passing EXCLUDE_FROM_ALL to
FetchContent_Declare, but only since CMake 3.28 so we need to add some
backward compatibility goo.

3 months agobuild: Remove obsolete variable in FindZstd.cmake
Joel Rosdahl [Sun, 3 Aug 2025 15:06:48 +0000 (17:06 +0200)] 
build: Remove obsolete variable in FindZstd.cmake

3 months agochore: Make code buildable with tl-expected 1.2.0
Joel Rosdahl [Sun, 3 Aug 2025 11:44:15 +0000 (13:44 +0200)] 
chore: Make code buildable with tl-expected 1.2.0

tl-expected 1.2.0 has made tl::expected objects [[nodiscard]], so make
sure to handle all tl::expected return values properly.

3 months agobump: Upgrade to tl-expected 1.2.0
Joel Rosdahl [Fri, 25 Jul 2025 18:48:13 +0000 (20:48 +0200)] 
bump: Upgrade to tl-expected 1.2.0

3 months agoenhance: Add TRY_ASSIGN macro
Joel Rosdahl [Sun, 3 Aug 2025 11:43:51 +0000 (13:43 +0200)] 
enhance: Add TRY_ASSIGN macro