gnu: Add include-what-you-use.

* gnu/packages/llvm.scm (include-what-you-use): New variable.

Change-Id: Ie843e69eaf4fad6191363d16d46321f623c07670
Signed-off-by: Steve George <steve@futurile.net>
This commit is contained in:
Liam Hupfer 2025-06-21 12:52:31 -05:00 committed by Steve George
parent dd39c1df1d
commit 7b43e2fb23
No known key found for this signature in database
GPG key ID: F51D4A16DCEE6FA7

View file

@ -29,6 +29,7 @@
;;; Copyright © 2023-2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2024, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2025 Liam Hupfer <liam@hpfr.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1734,6 +1735,37 @@ setup(name=\"clang\", version=\"~a\", packages=[\"clang\"])\n"
(define-public python-clang-13
(clang-python-bindings clang-13))
(define-public include-what-you-use
(package
(name "include-what-you-use")
;; Ensure LLVM/Clang input versions match the version declared in the release
;; https://github.com/include-what-you-use/include-what-you-use/blob/master/README.md#clang-compatibility
(version "0.24")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/include-what-you-use/include-what-you-use")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dkk65y6abf7bzv10q1ch3dyzj4d5y89qhh43jn189l861d6pzs0"))))
(build-system cmake-build-system)
(inputs (list llvm-20 clang-20 python-3))
(synopsis
"Tool for use with clang to analyze #includes in C and C++ source files")
(home-page "https://github.com/include-what-you-use/include-what-you-use")
(description
"@code{include-what-you-use} lints C and C++ sources to ensure
@code{#include}s declaring every symbol used in a given file are present.
When every file directly includes what it uses rather than relying on
transitive inclusions, builds tend to be more efficient and refactoring
dependency relationships is easier, particularly for large projects.")
;; The project has not relicensed from the old LLVM license:
;; https://github.com/include-what-you-use/include-what-you-use/issues/849
;; The iwyu_getopt.* files are BSD-3.
(license (list license:ncsa license:bsd-3))))
(define-public emacs-clang-format
(package
(inherit clang)