Files
ccache/ccache.spec
Antonio Teixeira 901648a2c8 Accepting request 1282385 from home:mgrossu:branches:devel:tools:building
- Update to 4.11.3:
  * Fixed handling of Apple Clang `-Xpreprocessor -fopenmp` options (regression in
  ccache 4.10).
  * Adapted unit test code to compile with doctest 2.4.12.
  * Silenced benign compiler warning in the profiling_gcc_10+ suite.
  * Reset signal mask and signal defaults when executing compiler. This fixes a
  problem where interrupting the compilation (e.g. with Ctrl+C) wouldn't kill
  the compiler (regression in ccache 4.11).
  * Fixed erroneous log file locking on Windows (regression in ccache 4.11).
  * Added ability to send arbitrary HTTP headers to HTTP storage.
  * Added support for MSVC's `/TC` and `/TP` options. 
  * Made the `absolute_paths_in_stderr` feature also handle MSVC diagnostics
    messages.
  * Absolute paths in MSVC diagnostics messages are now rewritten to relative if
  `base_dir` is in effect.
  * Added support for NVCC's `--compile` option.
  * `posix_spawn` is now used instead `execv` to execute the compiler on POSIX
  systems.
  * Added support for GCC's `-fprofile-prefix-path` option.
  * Added `response_file_format` config option to control response file format.
  * Added support for Clang `-frandomize-layout-seed-file` option. 
  * Improved `absolute_paths_in_stderr` to recognize more paths patterns.
  * Added support for the clang-cl option `/showIncludes:user`.
  * Added support for Intel's LLVM-based compilers `icx` and `icx-cl`.
  * A stat call for `~/.ccache` is now avoided if `CCACHE_DIR` is set.
  * Added Support for `.bat` and `.cmd` scripts as the compiler on Windows.
  * Added support for Clang's `-f{debug,file}-compilation-dir` options.
  * Added knowledge about Clang's `--offload-compress` option. This will avoid
  errors when ccache runs the compiler in preprocessor mode.
  * Added knowledge about Clang options `-fmodules-cache-path`,
  `-fmodule-map-file` and `-fbuild-session-file`.
  * Improved handling of paths internally, thereby fixing some issues on Windows
  (for example when using non-ASCII paths).
  * Fixed interpretation of non-ASCII paths in environment variables on Windows.
  * Made sure that remote storage `keep-alive` can be overridden as expected. 
  * Fixed detection of compiler type for hard-linked generic compiler name.
  * Fixed problems with matching a path with `base_dir` if either ends with a
  slash.
  * The `-fprofile-abs-path` option is now correctly passed through to GCC.
  * Writes to the log file are now synchronized.
  * Command line config options ending with "`/ccache`" are now handled properly.
  * Made `--trim-method mtime` actually use mtime instead of atime. +
  * Fixed a bug where ccache failed to rename raw files correctly for large caches
  that have more than two cache levels.
  * Instructed MSVC to accept UTF-8 characters in ccache's own source code.
  * Fixed binary patching of `sysconfdir` for the prebuilt Linux binary.
  * Added an `HTTP_STORAGE_BACKEND` build option to make it possible to turn off
  the http storage backend.
  * Fixed call to `sha256sum` on macOS.
  * Made tests pass in year 2038.
  * Refreshed some Dockerfiles.

OBS-URL: https://build.opensuse.org/request/show/1282385
OBS-URL: https://build.opensuse.org/package/show/devel:tools:building/ccache?expand=0&rev=161
2025-06-04 13:56:19 +00:00

127 lines
3.3 KiB
RPMSpec

#
# spec file for package ccache
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# Build with hiredis by default only on TW
%if %{?suse_version} > 1600
%bcond_without hiredis
%else
%bcond_with hiredis
%endif
# Run tests only on TW
%if %{?suse_version} > 1600
%bcond_without test
%else
%bcond_with test
%endif
Name: ccache
Version: 4.11.3
Release: 0
Summary: A Fast C/C++ Compiler Cache
License: GPL-3.0-or-later
URL: https://ccache.dev/
Source0: https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz
Source1: https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz.asc
Source2: %{name}.keyring
BuildRequires: cmake
BuildRequires: fmt-devel
%if %{?suse_version} > 1500
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: pkgconfig(cpp-httplib)
# SLE15 requires gcc11 for std::filesystem
%else
BuildRequires: gcc11
BuildRequires: gcc11-PIE
BuildRequires: gcc11-c++
%endif
BuildRequires: libzstd-devel
BuildRequires: pkgconfig
BuildRequires: xxhash-devel
BuildRequires: pkgconfig(libzstd) >= 1.1.2
BuildRequires: rubygem(asciidoctor)
Provides: distcc:%{_bindir}/ccache
%if %{with hiredis}
BuildRequires: pkgconfig(hiredis) >= 0.13.3
%endif
%if %{with test}
BuildRequires: doctest-devel
%endif
%description
ccache is a compiler cache. It speeds up recompilation by caching the
result of previous compilations and detecting when the same compilation is
being done again. Supported languages are C, C++, Objective-C and
Objective-C++.
%prep
%autosetup -p1
%build
%if %{?suse_version} < 1600
export CC=gcc-11 CXX=g++-11
%endif
%cmake \
-DFETCHCONTENT_FULLY_DISCONNECTED=ON \
%if %{without test}
-DENABLE_TESTING=OFF \
%endif
%if !%{with hiredis}
-DREDIS_STORAGE_BACKEND=OFF \
%endif
%{nil}
%cmake_build
%make_build doc
%install
%cmake_install
# create the compat symlinks into /usr/libdir/ccache
mkdir -p %{buildroot}/%{_libdir}/%{name}
cd %{buildroot}/%{_libdir}/%{name}
ln -sf ../../bin/%{name} gcc
ln -sf ../../bin/%{name} g++
ln -sf ../../bin/%{name} gcc-objc
ln -sf ../../bin/%{name} gfortran
# do the same for clang
ln -sf ../../bin/%{name} clang
ln -sf ../../bin/%{name} clang++
# and regular cc
ln -sf ../../bin/%{name} cc
ln -sf ../../bin/%{name} c++
# and for nvidia cuda
ln -sf ../../bin/%{name} nvcc
%check
%if %{with test}
for dir in build/test build/unittest; do
pushd $dir
# running the test with multiple threads will make tests fail
%{__ctest} --output-on-failure --force-new-ctest-process -j1
popd
done
%endif
%files
%license LICENSE.* GPL-3.0.txt
%doc doc/AUTHORS.* doc/MANUAL.* doc/NEWS.* README.*
%{_bindir}/%{name}
%{_libdir}/%{name}
%{_mandir}/man1/%{name}.1%{?ext_man}
%changelog