]>
git.ipfire.org Git - thirdparty/ccache.git/log
Joel Rosdahl [Thu, 7 Nov 2024 20:54:35 +0000 (21:54 +0100)]
fix: Use util::getenv_path_list to get PATH in find_executable_in_path
This should improve support for non-ASCII paths in Windows.
Joel Rosdahl [Thu, 7 Nov 2024 20:54:32 +0000 (21:54 +0100)]
chore: Store config paths in lexically normal form
Joel Rosdahl [Thu, 7 Nov 2024 20:54:27 +0000 (21:54 +0100)]
refactor: fs::path-ify helper functions in config.cpp
Joel Rosdahl [Fri, 8 Nov 2024 15:36:52 +0000 (16:36 +0100)]
refactor: Use util::lexically_normal
Joel Rosdahl [Fri, 8 Nov 2024 15:35:20 +0000 (16:35 +0100)]
enhance: Add util::lexically_normal
Joel Rosdahl [Thu, 7 Nov 2024 20:50:52 +0000 (21:50 +0100)]
enhance: Make util::getenv_path differentiate between unset and empty
Joel Rosdahl [Wed, 6 Nov 2024 20:51:00 +0000 (21:51 +0100)]
fix: Fix util::make_relative_path for trailing slash on Windows
Given an existing directory called "example", std::filesystem apparently
behaves like this on Windows:
std::filesystem::exists("example") -> true
std::filesystem::exists("example/") -> true
std::filesystem::exists("example\\") -> true
std::filesystem::equivalent("example", "example") -> true
std::filesystem::equivalent("example", "example/") -> false
std::filesystem::equivalent("example", "example\\") -> false
That's... well, unexpected. This makes util::make_relative_path buggy.
Fix this by pruning the trailing slash after normalizing the path.
Fixes #1518.
Joel Rosdahl [Tue, 5 Nov 2024 20:22:06 +0000 (21:22 +0100)]
fix: Ignore trailing slash in prefix in util::path_starts_with
Fixes #1265.
Joel Rosdahl [Sat, 2 Nov 2024 15:31:35 +0000 (16:31 +0100)]
chore: Mention correct Clang-Format version lower bar
Joel Rosdahl [Sat, 2 Nov 2024 15:12:32 +0000 (16:12 +0100)]
chore: Fix typo
Joel Rosdahl [Thu, 24 Oct 2024 15:00:36 +0000 (17:00 +0200)]
docs: Fix description of default cache_dir on non-macOS POSIX systems
As mentioned in discussion #1527.
Joel Rosdahl [Thu, 24 Oct 2024 14:34:52 +0000 (16:34 +0200)]
refactor: Rename "at file" to "response file" internally
Joel Rosdahl [Tue, 22 Oct 2024 16:48:27 +0000 (18:48 +0200)]
test: Add and use postdate function for making future filestamps
Joel Rosdahl [Mon, 21 Oct 2024 18:34:54 +0000 (20:34 +0200)]
refactor: Avoid const data members
C++ Core Guidelines C.12
Joel Rosdahl [Mon, 21 Oct 2024 18:30:05 +0000 (20:30 +0200)]
refactor: Properly move fds into execute()
C++ Core Guidelines F.18
Joel Rosdahl [Mon, 21 Oct 2024 18:29:26 +0000 (20:29 +0200)]
refactor: Restructure code to help Clang-Tidy understand it
Joel Rosdahl [Sun, 20 Oct 2024 16:27:10 +0000 (18:27 +0200)]
chore: Mark some return values as ignored
Joel Rosdahl [Sun, 20 Oct 2024 16:23:14 +0000 (18:23 +0200)]
refactor: Use C++17-style variable templates
Joel Rosdahl [Sun, 20 Oct 2024 16:19:29 +0000 (18:19 +0200)]
chore: Ignore useless cppcoreguidelines-avoid-do-while warning
Joel Rosdahl [Thu, 17 Oct 2024 18:44:31 +0000 (20:44 +0200)]
enhance: Add util::getenv_path and util::getenv_path_list
Max Winkler [Tue, 22 Oct 2024 16:42:32 +0000 (09:42 -0700)]
feat: Add response_file_format config option for rsp file format (#1522)
Bernhard M. Wiedemann [Sat, 19 Oct 2024 08:49:53 +0000 (10:49 +0200)]
test: Make tests pass in 2038 (#1525)
We use relative future timestamps to keep systems with 32-bit time_t working
until 2037.
Use the 3rd of January of the following year to ensure that it is in the future,
even when starting a second before new year
Joel Rosdahl [Thu, 17 Oct 2024 18:44:11 +0000 (20:44 +0200)]
ci: Enable ubuntu-24.04 builds again
Joel Rosdahl [Wed, 16 Oct 2024 19:17:33 +0000 (21:17 +0200)]
ci: Remove macOS-12 builds
Says GitHub: "The macOS 12 runner image will be removed by December 3rd,
2024."
Joel Rosdahl [Sat, 28 Sep 2024 19:16:05 +0000 (21:16 +0200)]
fix: Fix binary patching of sysconfdir for Linux prebuilt binary
After fs::path-ification it no longer works to binary patch sysconfdir
at install time since the compiler apparently makes a note of the actual
length of SYSCONFDIR in
const char k_sysconfdir[4096 + 1] = SYSCONFDIR;
and uses the length in the
fs::path sysconfdir(k_sysconfdir);
call. When patching the SYSCONFDIR string the length of the original
string is used so that only the first strlen(SYSCONFDIR) part of the new
sysconfdir will be used.
Fix this by adding a pointer indirection which makes binary patching
work again.
Joel Rosdahl [Tue, 24 Sep 2024 18:50:23 +0000 (20:50 +0200)]
refactor: Improve some types
Joel Rosdahl [Sun, 22 Sep 2024 07:38:18 +0000 (09:38 +0200)]
ci: Upgrade codespell and typos versions
David [Sun, 22 Sep 2024 12:29:28 +0000 (14:29 +0200)]
feat: Add support for -fprofile-prefix-path gcc option (#1515)
DS [Sat, 21 Sep 2024 18:21:17 +0000 (20:21 +0200)]
test: Add a unittest for the hard link based compiler detection (#1517)
Joel Rosdahl [Sat, 21 Sep 2024 09:26:47 +0000 (11:26 +0200)]
fix: Detect compiler type for hard linked generic compiler name
This makes color diagnostics work on systems like Arch Linux where e.g.
/usr/bin/c++ is a hard link to /usr/bin/g++.
Fixes #1514.
Joel Rosdahl [Sat, 21 Sep 2024 08:23:26 +0000 (10:23 +0200)]
chore: Tweak comments
Moritz [Sat, 21 Sep 2024 08:23:46 +0000 (10:23 +0200)]
fix(http-storage): Make sure 'keep-alive' can be overridden as expected (#1510)
The changes introduced in
dfcdb68 made it impossible to disable HTTP keep-alive
by setting the 'keep-alive' attribute in the backend string accordingly: The
default of 'true' is applied after parsing of the attributes, overriding the
value configured by the user (if any). Rectify this.
huangqinjin [Sat, 21 Sep 2024 08:21:06 +0000 (16:21 +0800)]
feat: Relativize absolute paths within base_dir in MSVC diagnostics messages (#1509)
MSVC /FC option causes the paths in diagnostics messages become absolute.
Convert them to relative to avoid leakage of workspace paths.
User can specify absolute_paths_in_stderr=true to convert them back to absolute.
Joel Rosdahl [Sat, 21 Sep 2024 08:14:39 +0000 (10:14 +0200)]
docs: Mention that absolute_paths_in_stderr applies to stdout as well
Closes #1505.
huangqinjin [Sat, 21 Sep 2024 08:13:14 +0000 (16:13 +0800)]
build: Instruct MSVC to accept UTF-8 characters (#1508)
Juan Manuel Martinez Caamaño [Tue, 10 Sep 2024 19:10:05 +0000 (21:10 +0200)]
refactor: Remove duplicated call to posix_spawn_file_actions_init (#1506)
Joel Rosdahl [Tue, 10 Sep 2024 18:07:02 +0000 (20:07 +0200)]
feat: Make absolute_paths_in_stderr also handle MSVC/Windows (#1504)
huangqinjin [Mon, 26 Aug 2024 15:18:42 +0000 (23:18 +0800)]
feat: Option absolute_paths_in_stderr also rewrites relative paths in MSVC diagnostics messages
huangqinjin [Mon, 26 Aug 2024 15:03:09 +0000 (23:03 +0800)]
enhance: Add utility to get path length in compiler diagnostics messages
huangqinjin [Tue, 10 Sep 2024 17:46:42 +0000 (01:46 +0800)]
fix: Fix util::replace_all for string_view to non-C string (#1502)
huangqinjin [Tue, 10 Sep 2024 17:33:53 +0000 (01:33 +0800)]
feat: Add support for MSVC /TC and /TP options (#1499)
Joel Rosdahl [Wed, 7 Aug 2024 09:03:40 +0000 (11:03 +0200)]
chore: Improve type of boolean
Joel Rosdahl [Fri, 26 Jul 2024 12:37:38 +0000 (14:37 +0200)]
docs: Remove repeated word
huangqinjin [Mon, 26 Aug 2024 17:54:40 +0000 (01:54 +0800)]
chore: Correct my name (#1498)
dsrowell [Mon, 26 Aug 2024 17:37:29 +0000 (13:37 -0400)]
feat: Add ability to send arbitrary HTTP headers to HTTP storage (#1496)
Joel Rosdahl [Mon, 22 Jul 2024 14:02:41 +0000 (16:02 +0200)]
chore: Update authors
(cherry picked from commit
cc653c59b715833f452cb9d696b35975fbc5952d )
Joel Rosdahl [Mon, 22 Jul 2024 08:52:24 +0000 (10:52 +0200)]
chore: Update NEWS
(cherry picked from commit
17744ca1c39facaed1f0ed0464aae58f22f69b94 )
Joel Rosdahl [Wed, 17 Jul 2024 08:31:07 +0000 (10:31 +0200)]
test: Only run -fprofile-update=atomic test when supported by compiler
This fixes an issue with the arm-linux-gnueabi GCC which doesn't support
-fprofile-update=atomic.
Joel Rosdahl [Mon, 15 Jul 2024 07:28:19 +0000 (09:28 +0200)]
chore: Remove no longer relevant Gitter links
Anders Björklund [Tue, 9 Jul 2024 17:45:00 +0000 (19:45 +0200)]
test: Use bash for running script command (#1482)
The script program will try to run the --command parameter with the
login shell, rather than the currently running test shell (bash).
Joel Rosdahl [Thu, 4 Jul 2024 11:21:59 +0000 (13:21 +0200)]
chore: Fix copyright row order
Joel Rosdahl [Sun, 30 Jun 2024 19:22:26 +0000 (21:22 +0200)]
refactor: Introduce and use DEFER macro, replacing util::Finalizer
Joel Rosdahl [Sun, 30 Jun 2024 16:54:13 +0000 (18:54 +0200)]
refactor: Introduce and use CHECK_LIB_CALL macro
Joel Rosdahl [Tue, 2 Jul 2024 15:05:43 +0000 (17:05 +0200)]
build: Fix detection of Fmt version for Fmt<11
Fixes regression in
71f772e9d3d4f8045cfa7bccd03bd21c1e8fbef1 .
Holger Hoffstätte [Tue, 2 Jul 2024 13:46:44 +0000 (15:46 +0200)]
build: Try harder to determine FMT_VERSION (#1478)
fmt-11.0 moved the FMT_VERSION from core.h to base.h, so try the
new header first and then fall back to the old one.
Closes: #1477
Joel Rosdahl [Sun, 30 Jun 2024 17:13:58 +0000 (19:13 +0200)]
chore: Update authors
(cherry picked from commit
4c6181f7f93f8dad8106973aaf55475cddfd2730 )
Joel Rosdahl [Sun, 30 Jun 2024 17:12:07 +0000 (19:12 +0200)]
chore: Update NEWS
(cherry picked from commit
14a0714cbfe2b1e5eaebf50c8fef17529a60a01b )
Joel Rosdahl [Sun, 30 Jun 2024 18:45:24 +0000 (20:45 +0200)]
chore: Fix reference to format.cc in LICENSE.adoc
Joel Rosdahl [Wed, 12 Jun 2024 18:20:25 +0000 (20:20 +0200)]
refactor: Convert some std::string paths to fs::path
Joel Rosdahl [Sun, 9 Jun 2024 14:26:54 +0000 (16:26 +0200)]
chore: Rename source files to lowercase for consistency
Joel Rosdahl [Sat, 8 Jun 2024 18:57:13 +0000 (20:57 +0200)]
refactor: Clean up some fs::path usage
Joel Rosdahl [Sat, 8 Jun 2024 18:50:38 +0000 (20:50 +0200)]
refactor: Convert Config::m_temporary_dir to fs::path
Joel Rosdahl [Sat, 8 Jun 2024 18:43:00 +0000 (20:43 +0200)]
refactor: Convert Config::m_stats_log to fs::path
Joel Rosdahl [Sat, 8 Jun 2024 18:41:23 +0000 (20:41 +0200)]
refactor: Convert Config::m_log_file to fs::path
Joel Rosdahl [Sat, 8 Jun 2024 18:31:19 +0000 (20:31 +0200)]
refactor: Convert Config::m_cache_dir to fs::path
Joel Rosdahl [Fri, 7 Jun 2024 14:30:12 +0000 (16:30 +0200)]
refactor: Convert Context::i_tmpfile to fs::path
Joel Rosdahl [Fri, 7 Jun 2024 14:29:08 +0000 (16:29 +0200)]
refactor: Use fs::path for Context::register_pending_tmp_file
Joel Rosdahl [Fri, 7 Jun 2024 14:24:21 +0000 (16:24 +0200)]
refactor: Improve handling of ignore_header_paths matching
Joel Rosdahl [Thu, 6 Jun 2024 15:06:40 +0000 (17:06 +0200)]
refactor: Convert ArgsInfo::sanitize_blacklists to fs::path
Joel Rosdahl [Thu, 6 Jun 2024 15:04:50 +0000 (17:04 +0200)]
refactor: Convert ArgsInfo::profile_path to fs::path
Joel Rosdahl [Thu, 6 Jun 2024 10:54:12 +0000 (12:54 +0200)]
refactor: Convert ArgsInfo::included_pch_file to fs::path
Joel Rosdahl [Thu, 6 Jun 2024 07:52:25 +0000 (09:52 +0200)]
chore: Add ubuntu-24.04 Dockerfile
Joel Rosdahl [Sun, 2 Jun 2024 12:45:37 +0000 (14:45 +0200)]
refactor: Convert ArgsInfo::orig_included_pch_file to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 12:43:56 +0000 (14:43 +0200)]
refactor: Convert ArgsInfo::output_al to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 12:43:13 +0000 (14:43 +0200)]
refactor: Convert ArgsInfo::output_ipa to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 12:42:10 +0000 (14:42 +0200)]
refactor: Convert ArgsInfo::output_dwo to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 11:02:17 +0000 (13:02 +0200)]
refactor: Convert ArgsInfo::output_dia to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 11:01:35 +0000 (13:01 +0200)]
refactor: Convert ArgsInfo::output_ci to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 11:01:04 +0000 (13:01 +0200)]
refactor: Convert ArgsInfo::output_su to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 10:59:45 +0000 (12:59 +0200)]
refactor: Convert ArgsInfo::output_dep to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 08:45:14 +0000 (10:45 +0200)]
refactor: Convert ArgsInfo::output_obj to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 08:59:38 +0000 (10:59 +0200)]
refactor: Convert APIs to use std::filesystem::path for paths
Joel Rosdahl [Sun, 2 Jun 2024 08:48:39 +0000 (10:48 +0200)]
enhance: Add Args::push_back(const std::filesystem::path&)
Joel Rosdahl [Sat, 1 Jun 2024 18:46:26 +0000 (20:46 +0200)]
refactor: Convert ArgsInfo::orig_output_obj to fs::path
Joel Rosdahl [Sat, 1 Jun 2024 11:05:32 +0000 (13:05 +0200)]
refactor: Convert ArgsInfo::input_file to fs::path
Joel Rosdahl [Sat, 1 Jun 2024 11:01:23 +0000 (13:01 +0200)]
refactor: Improve language_for_file signature
Joel Rosdahl [Sat, 1 Jun 2024 10:57:23 +0000 (12:57 +0200)]
refactor: Convert ArgsInfo::orig_input_file to fs::path
Joel Rosdahl [Sun, 2 Jun 2024 08:28:25 +0000 (10:28 +0200)]
refactor: Use util::with_extension
Joel Rosdahl [Sun, 2 Jun 2024 06:58:02 +0000 (08:58 +0200)]
enhance: Add util::with_extension
Joel Rosdahl [Sat, 1 Jun 2024 12:04:28 +0000 (14:04 +0200)]
enhance: Add util::add_extension
Joel Rosdahl [Sat, 1 Jun 2024 12:00:07 +0000 (14:00 +0200)]
refactor: Add and use util::pstr type alias
Also removed less common util::PathString::operator const char* to make
some call sites unambiguous.
Joel Rosdahl [Sat, 1 Jun 2024 11:49:15 +0000 (13:49 +0200)]
refactor: Convert APIs to use std::filesystem::path for paths
Joel Rosdahl [Sun, 30 Jun 2024 12:42:58 +0000 (14:42 +0200)]
chore: Add note about --compile being an NVCC option
Laurent Bouhier [Sun, 30 Jun 2024 12:42:11 +0000 (14:42 +0200)]
feat: Support NVCC --compile option (#1475)
The nvcc (CUDA) compiler has a extra option compliant with -c: --compile.
https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/#supported-phases
So ccache should see the --compile option as the -c option (especially because the CUDA MVS plugin use it!)
Brendan Shanks [Sun, 30 Jun 2024 12:41:31 +0000 (05:41 -0700)]
perf: Use posix_spawn to execute the compiler (#1471)
Joel Rosdahl [Mon, 24 Jun 2024 19:01:42 +0000 (21:01 +0200)]
build: Simplify cxxurl build script
Joel Rosdahl [Mon, 24 Jun 2024 19:01:02 +0000 (21:01 +0200)]
build: Remove no longer needed workaround when building downloaded Zstd
Joel Rosdahl [Mon, 24 Jun 2024 18:55:33 +0000 (20:55 +0200)]
build: Bundle Fmt again
Fmt is currently the only required C++ dependency that isn't bundled.
Since the Fmt API is still evolving, it's convenient for Ccache users
that lack a proper Fmt version locally to be able to build without
having to download Fmt. Thus, bundle Fmt again for now. (When we can
bump compiler requirements to versions that implement std::format
properly in the future we will switch to std::format instead.)
Closes #1470.
Joel Rosdahl [Fri, 21 Jun 2024 08:14:15 +0000 (10:14 +0200)]
test: Improve CCACHE_PREFIX test to catch regression fixed in PR #1474
Joel Rosdahl [Fri, 14 Jun 2024 18:11:52 +0000 (20:11 +0200)]
docs: Clarify that --set-config writes to the configuration file
See also discussion #1468.