clazy: update to 1.10.
This commit is contained in:
parent
dbf51093a7
commit
106481cbe7
3 changed files with 370 additions and 93 deletions
|
@ -0,0 +1,364 @@
|
|||
From e49e57e1b12440a365a176ccfaded1d00ab0e62a Mon Sep 17 00:00:00 2001
|
||||
From: John Zimmermann <me@johnnynator.dev>
|
||||
Date: Mon, 9 Aug 2021 15:56:40 +0200
|
||||
Subject: [PATCH] Replace Find* scripts with llvm/clang provided cmake modules
|
||||
|
||||
---
|
||||
CMakeLists.txt | 24 +------
|
||||
cmake/FindClang.cmake | 130 ---------------------------------
|
||||
cmake/FindLLVM.cmake | 162 ------------------------------------------
|
||||
3 files changed, 3 insertions(+), 313 deletions(-)
|
||||
delete mode 100644 cmake/FindClang.cmake
|
||||
delete mode 100644 cmake/FindLLVM.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6e649bfe..79fd1093 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -24,11 +24,10 @@ set(CLAZY_VERSION_PATCH "0")
|
||||
set(CLAZY_VERSION "${CLAZY_VERSION_MAJOR}.${CLAZY_VERSION_MINOR}.${CLAZY_VERSION_PATCH}")
|
||||
set(CLAZY_PRINT_VERSION "${CLAZY_VERSION_MAJOR}.${CLAZY_VERSION_MINOR}")
|
||||
|
||||
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake)
|
||||
if (NOT CLAZY_BUILD_WITH_CLANG)
|
||||
- find_package(Clang 8.0 MODULE REQUIRED)
|
||||
+ find_package(Clang CONFIG REQUIRED)
|
||||
|
||||
- if (CLANG_CLANG-CPP_LIB AND NOT APPLE)
|
||||
+ if (TARGET clang-cpp AND NOT APPLE)
|
||||
set(default_use_clang_cpp ON)
|
||||
else()
|
||||
set(default_use_clang_cpp OFF)
|
||||
@@ -128,24 +127,7 @@ macro(link_to_llvm name is_standalone)
|
||||
target_link_libraries(${name} ${clang_tooling_refactoring_lib})
|
||||
endif()
|
||||
|
||||
- foreach(llvm_lib ${LLVM_LIBS})
|
||||
- if(NOT ${is_standalone} AND NOT APPLE AND NOT MINGW AND NOT MSVC)
|
||||
- ## Don't link against LLVMSupport, causes: CommandLine Error: Option 'view-background' registered more than once!
|
||||
- if (NOT llvm_lib MATCHES ".*LLVMSupport.*")
|
||||
- target_link_libraries(${name} ${llvm_lib})
|
||||
- endif()
|
||||
- else()
|
||||
- target_link_libraries(${name} ${llvm_lib})
|
||||
- endif()
|
||||
- endforeach()
|
||||
-
|
||||
- foreach(user_lib ${USER_LIBS})
|
||||
- target_link_libraries(${name} ${user_lib})
|
||||
- endforeach()
|
||||
-
|
||||
- foreach(llvm_system_lib ${LLVM_SYSTEM_LIBS})
|
||||
- target_link_libraries(${name} ${llvm_system_lib})
|
||||
- endforeach()
|
||||
+ target_link_libraries(${name} LLVM)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${name} version.lib)
|
||||
diff --git a/cmake/FindClang.cmake b/cmake/FindClang.cmake
|
||||
deleted file mode 100644
|
||||
index 7a40b2fb..00000000
|
||||
--- a/cmake/FindClang.cmake
|
||||
+++ /dev/null
|
||||
@@ -1,130 +0,0 @@
|
||||
-# Detect Clang libraries
|
||||
-#
|
||||
-# Defines the following variables:
|
||||
-# CLANG_FOUND - True if Clang was found
|
||||
-# CLANG_INCLUDE_DIRS - Where to find Clang includes
|
||||
-# CLANG_LIBRARY_DIRS - Where to find Clang libraries
|
||||
-#
|
||||
-# CLANG_LIBCLANG_LIB - Libclang C library
|
||||
-#
|
||||
-# CLANG_CLANGFRONTEND_LIB - Clang Frontend (C++) Library
|
||||
-# CLANG_CLANGDRIVER_LIB - Clang Driver (C++) Library
|
||||
-# ...
|
||||
-#
|
||||
-# CLANG_LIBS - All the Clang C++ libraries
|
||||
-#
|
||||
-# Uses the same include and library paths detected by FindLLVM.cmake
|
||||
-#
|
||||
-# See http://clang.llvm.org/docs/InternalsManual.html for full list of libraries
|
||||
-
|
||||
-#=============================================================================
|
||||
-# Copyright 2014-2015 Kevin Funk <kfunk@kde.org>
|
||||
-#
|
||||
-# Redistribution and use in source and binary forms, with or without
|
||||
-# modification, are permitted provided that the following conditions
|
||||
-# are met:
|
||||
-#
|
||||
-# 1. Redistributions of source code must retain the above copyright
|
||||
-# notice, this list of conditions and the following disclaimer.
|
||||
-# 2. Redistributions in binary form must reproduce the above copyright
|
||||
-# notice, this list of conditions and the following disclaimer in the
|
||||
-# documentation and/or other materials provided with the distribution.
|
||||
-#
|
||||
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
-#=============================================================================
|
||||
-
|
||||
-if (${Clang_FIND_REQUIRED})
|
||||
- find_package(LLVM ${Clang_FIND_VERSION} REQUIRED)
|
||||
-else ()
|
||||
- find_package(LLVM ${Clang_FIND_VERSION})
|
||||
-endif ()
|
||||
-
|
||||
-set(CLANG_FOUND FALSE)
|
||||
-
|
||||
-if (LLVM_FOUND AND LLVM_LIBRARY_DIRS)
|
||||
- macro(FIND_CLANG_LIB _libname_)
|
||||
- string(TOUPPER ${_libname_} _prettylibname_)
|
||||
- find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} HINTS ${LLVM_LIBRARY_DIRS})
|
||||
- endmacro(FIND_CLANG_LIB)
|
||||
- macro(FIND_AND_ADD_CLANG_LIB _libname_)
|
||||
- string(TOUPPER ${_libname_} _prettylibname_)
|
||||
- find_library(CLANG_${_prettylibname_}_LIB NAMES ${_libname_} HINTS ${LLVM_LIBRARY_DIRS})
|
||||
- if(CLANG_${_prettylibname_}_LIB)
|
||||
- set(CLANG_LIBS ${CLANG_LIBS} ${CLANG_${_prettylibname_}_LIB})
|
||||
- endif()
|
||||
- endmacro(FIND_AND_ADD_CLANG_LIB)
|
||||
-
|
||||
- # note: On Windows there's 'libclang.dll' instead of 'clang.dll' -> search for 'libclang', too
|
||||
- find_library(CLANG_LIBCLANG_LIB NAMES clang libclang HINTS ${LLVM_LIBRARY_DIRS}) # LibClang: high-level C interface
|
||||
-
|
||||
- FIND_CLANG_LIB(clang-cpp)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangFrontend)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangDriver)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangCodeGen)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangSema)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangChecker)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangAnalysis)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangRewrite)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangAST)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangParse)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangLex)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangBasic)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangARCMigrate)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangEdit)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangRewrite)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangSerialization)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangTooling)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangSema)
|
||||
- FIND_AND_ADD_CLANG_LIB(clangRewriteCore)
|
||||
-endif()
|
||||
-
|
||||
-if(CLANG_LIBS OR CLANG_LIBCLANG_LIB OR CLANG_CLANG-CPP_LIB)
|
||||
- set(CLANG_FOUND TRUE)
|
||||
-else()
|
||||
- message(STATUS "Could not find any Clang libraries in ${LLVM_LIBRARY_DIRS}")
|
||||
-endif()
|
||||
-
|
||||
-if(CLANG_FOUND)
|
||||
- set(CLANG_LIBRARY_DIRS ${LLVM_LIBRARY_DIRS})
|
||||
- set(CLANG_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
|
||||
-
|
||||
- # check whether llvm-config comes from an install prefix
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --src-root
|
||||
- OUTPUT_VARIABLE _llvmSourceRoot
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
- string(FIND "${LLVM_INCLUDE_DIRS}" "${_llvmSourceRoot}" _llvmIsInstalled)
|
||||
- if (NOT _llvmIsInstalled)
|
||||
- message(STATUS "Detected that llvm-config comes from a build-tree, adding more include directories for Clang")
|
||||
- list(APPEND CLANG_INCLUDE_DIRS
|
||||
- "${LLVM_INSTALL_PREFIX}/tools/clang/include" # build dir
|
||||
- "${_llvmSourceRoot}/tools/clang/include" # source dir
|
||||
- )
|
||||
- endif()
|
||||
-
|
||||
- message(STATUS "Found Clang (LLVM version: ${LLVM_VERSION})")
|
||||
- message(STATUS " Include dirs: ${CLANG_INCLUDE_DIRS}")
|
||||
- message(STATUS " Clang libraries: ${CLANG_LIBS}")
|
||||
- message(STATUS " Libclang C library: ${CLANG_LIBCLANG_LIB}")
|
||||
- message(STATUS " Clang dynamic library: ${CLANG_CLANG-CPP_LIB}")
|
||||
-else()
|
||||
- if(Clang_FIND_REQUIRED)
|
||||
- message(FATAL_ERROR "Could NOT find Clang")
|
||||
- endif()
|
||||
-endif()
|
||||
diff --git a/cmake/FindLLVM.cmake b/cmake/FindLLVM.cmake
|
||||
deleted file mode 100644
|
||||
index fe7e87dd..00000000
|
||||
--- a/cmake/FindLLVM.cmake
|
||||
+++ /dev/null
|
||||
@@ -1,162 +0,0 @@
|
||||
-# Find the native LLVM includes and libraries
|
||||
-#
|
||||
-# Defines the following variables
|
||||
-# LLVM_INCLUDE_DIRS - where to find llvm include files
|
||||
-# LLVM_LIBRARY_DIRS - where to find llvm libs
|
||||
-# LLVM_CFLAGS - llvm compiler flags
|
||||
-# LLVM_LFLAGS - llvm linker flags
|
||||
-# LLVM_MODULE_LIBS - list of llvm libs for working with modules.
|
||||
-# LLVM_INSTALL_PREFIX - LLVM installation prefix
|
||||
-# LLVM_FOUND - True if llvm found.
|
||||
-# LLVM_VERSION - Version string ("llvm-config --version")
|
||||
-#
|
||||
-# This module reads hints about search locations from variables
|
||||
-# LLVM_ROOT - Preferred LLVM installation prefix (containing bin/, lib/, ...)
|
||||
-#
|
||||
-# Note: One may specify these as environment variables if they are not specified as
|
||||
-# CMake variables or cache entries.
|
||||
-
|
||||
-#=============================================================================
|
||||
-# Copyright 2014 Kevin Funk <kfunk@kde.org>
|
||||
-#
|
||||
-# Redistribution and use in source and binary forms, with or without
|
||||
-# modification, are permitted provided that the following conditions
|
||||
-# are met:
|
||||
-#
|
||||
-# 1. Redistributions of source code must retain the above copyright
|
||||
-# notice, this list of conditions and the following disclaimer.
|
||||
-# 2. Redistributions in binary form must reproduce the above copyright
|
||||
-# notice, this list of conditions and the following disclaimer in the
|
||||
-# documentation and/or other materials provided with the distribution.
|
||||
-#
|
||||
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
-#=============================================================================
|
||||
-
|
||||
-if (NOT LLVM_ROOT AND DEFINED ENV{LLVM_ROOT})
|
||||
- file(TO_CMAKE_PATH "$ENV{LLVM_ROOT}" LLVM_ROOT)
|
||||
-endif()
|
||||
-
|
||||
-# if the user specified LLVM_ROOT, use that and fail otherwise
|
||||
-if (LLVM_ROOT)
|
||||
- find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config HINTS ${LLVM_ROOT}/bin DOC "llvm-config executable" NO_DEFAULT_PATH)
|
||||
-else()
|
||||
- # find llvm-config, prefer the one with a version suffix, e.g. llvm-config-3.5
|
||||
- # note: FreeBSD installs llvm-config as llvm-config35 and so on
|
||||
- # note: on some distributions, only 'llvm-config' is shipped, so let's always try to fallback on that
|
||||
- string(REPLACE "." "" LLVM_FIND_VERSION_CONCAT ${LLVM_FIND_VERSION})
|
||||
- find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-${LLVM_FIND_VERSION} llvm-config${LLVM_FIND_VERSION_CONCAT} llvm-config DOC "llvm-config executable")
|
||||
-
|
||||
- # other distributions don't ship llvm-config, but only some llvm-config-VERSION binary
|
||||
- # try to deduce installed LLVM version by looking up llvm-nm in PATH and *then* find llvm-config-VERSION via that
|
||||
- if (NOT LLVM_CONFIG_EXECUTABLE)
|
||||
- find_program(_llvmNmExecutable llvm-nm)
|
||||
- if (_llvmNmExecutable)
|
||||
- execute_process(COMMAND ${_llvmNmExecutable} --version OUTPUT_VARIABLE _out)
|
||||
- string(REGEX REPLACE ".*LLVM version ([^ \n]+).*" "\\1" _versionString "${_out}")
|
||||
- find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-${_versionString} DOC "llvm-config executable")
|
||||
- endif()
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
-set(LLVM_FOUND FALSE)
|
||||
-
|
||||
-if (LLVM_CONFIG_EXECUTABLE)
|
||||
- # verify that we've found the correct version of llvm-config
|
||||
- execute_process(COMMAND ${LLVM_CONFIG_EXECUTABLE} --version
|
||||
- OUTPUT_VARIABLE LLVM_VERSION
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
- if (NOT LLVM_VERSION)
|
||||
- set(_LLVM_ERROR_MESSAGE "Failed to parse version from llvm-config")
|
||||
- elseif (LLVM_FIND_VERSION VERSION_GREATER LLVM_VERSION)
|
||||
- set(_LLVM_ERROR_MESSAGE "LLVM version too old: ${LLVM_VERSION}")
|
||||
- else()
|
||||
- set(LLVM_FOUND TRUE)
|
||||
- endif()
|
||||
-else()
|
||||
- set(_LLVM_ERROR_MESSAGE "Could NOT find 'llvm-config' executable")
|
||||
-endif()
|
||||
-
|
||||
-if (LLVM_FOUND)
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --includedir
|
||||
- OUTPUT_VARIABLE LLVM_INCLUDE_DIRS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --libdir
|
||||
- OUTPUT_VARIABLE LLVM_LIBRARY_DIRS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --cppflags
|
||||
- OUTPUT_VARIABLE LLVM_CFLAGS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --ldflags
|
||||
- OUTPUT_VARIABLE LLVM_LFLAGS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs core bitreader asmparser analysis
|
||||
- OUTPUT_VARIABLE LLVM_MODULE_LIBS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --libfiles
|
||||
- OUTPUT_VARIABLE LLVM_LIBS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
- string(REPLACE " " ";" LLVM_LIBS ${LLVM_LIBS}) # Make it consistent with --libs
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --system-libs
|
||||
- OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --prefix
|
||||
- OUTPUT_VARIABLE LLVM_INSTALL_PREFIX
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
-
|
||||
- # potentially add include dir from binary dir for non-installed LLVM
|
||||
- execute_process(
|
||||
- COMMAND ${LLVM_CONFIG_EXECUTABLE} --src-root
|
||||
- OUTPUT_VARIABLE _llvmSourceRoot
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
- )
|
||||
- string(FIND "${LLVM_INCLUDE_DIRS}" "${_llvmSourceRoot}" _llvmIsInstalled)
|
||||
- if (NOT _llvmIsInstalled)
|
||||
- list(APPEND LLVM_INCLUDE_DIRS "${LLVM_INSTALL_PREFIX}/include")
|
||||
- endif()
|
||||
-endif()
|
||||
-
|
||||
-if (LLVM_FIND_REQUIRED AND NOT LLVM_FOUND)
|
||||
- message(FATAL_ERROR "Could not find LLVM: ${_LLVM_ERROR_MESSAGE}")
|
||||
-elseif(_LLVM_ERROR_MESSAGE)
|
||||
- message(STATUS "Could not find LLVM: ${_LLVM_ERROR_MESSAGE}")
|
||||
-endif()
|
||||
-
|
||||
-if (LLVM_FOUND)
|
||||
- message(STATUS "Found LLVM (version: ${LLVM_VERSION}): (using ${LLVM_CONFIG_EXECUTABLE})")
|
||||
- message(STATUS " Include dirs: ${LLVM_INCLUDE_DIRS}")
|
||||
- message(STATUS " LLVM libraries: ${LLVM_LIBS}")
|
||||
- message(STATUS " LLVM System libraries: ${LLVM_SYSTEM_LIBS}")
|
||||
-endif()
|
||||
--
|
||||
2.32.0
|
||||
|
|
@ -1,88 +0,0 @@
|
|||
From 2592a6e3393ebc75e16c91e606ad2015a16295c3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Christian=20Sch=C3=A4rf?= <c.schaerf@t-online.de>
|
||||
Date: Sat, 23 Jan 2021 15:34:10 +0100
|
||||
Subject: [PATCH] Fix build with Clang 12
|
||||
|
||||
Required due to Clang changes https://github.com/llvm/llvm-project/commit/b3eff6b7bb31e7ef059a3d238de138849839fbbd and https://github.com/llvm/llvm-project/commit/d758f79e5d381bd4f5122193a9538d89c907c812
|
||||
---
|
||||
src/SourceCompatibilityHelpers.h | 26 ++++++++++++++++++++++++++
|
||||
src/SuppressionManager.cpp | 5 ++---
|
||||
2 files changed, 28 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/SourceCompatibilityHelpers.h b/src/SourceCompatibilityHelpers.h
|
||||
index 4db141ab..1737d5a5 100644
|
||||
--- a/src/SourceCompatibilityHelpers.h
|
||||
+++ b/src/SourceCompatibilityHelpers.h
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <clang/Basic/SourceLocation.h>
|
||||
#include <clang/Basic/SourceManager.h>
|
||||
#include <clang/Frontend/FrontendDiagnostic.h>
|
||||
+#include <clang/Lex/Lexer.h>
|
||||
#include <clang/Tooling/Core/Diagnostic.h>
|
||||
|
||||
#if defined(CLAZY_USES_BOOST_REGEX)
|
||||
@@ -103,6 +104,31 @@ inline clang::tooling::Replacements& DiagnosticFix(clang::tooling::Diagnostic &d
|
||||
#endif
|
||||
}
|
||||
|
||||
+inline auto getBuffer(const clang::SourceManager &sm, clang::FileID id, bool *invalid)
|
||||
+{
|
||||
+#if LLVM_VERSION_MAJOR >= 12
|
||||
+ auto buffer = sm.getBufferOrNone(id);
|
||||
+ *invalid = !buffer.hasValue();
|
||||
+ return buffer;
|
||||
+#else
|
||||
+ return sm.getBuffer(id, invalid);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+#if LLVM_VERSION_MAJOR >= 12
|
||||
+inline clang::Lexer getLexer(clang::FileID id, llvm::Optional<llvm::MemoryBufferRef> inputFile,
|
||||
+ const clang::SourceManager &sm, const clang::LangOptions &lo)
|
||||
+{
|
||||
+ return clang::Lexer(id, inputFile.getValue(), sm, lo);
|
||||
+}
|
||||
+#else
|
||||
+inline clang::Lexer getLexer(clang::FileID id, const llvm::MemoryBuffer *inputFile,
|
||||
+ const clang::SourceManager &sm, const clang::LangOptions &lo)
|
||||
+{
|
||||
+ return clang::Lexer(id, inputFile, sm, lo);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
}
|
||||
|
||||
#endif
|
||||
diff --git a/src/SuppressionManager.cpp b/src/SuppressionManager.cpp
|
||||
index 9d774ea6..9881388d 100644
|
||||
--- a/src/SuppressionManager.cpp
|
||||
+++ b/src/SuppressionManager.cpp
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "clazy_stl.h"
|
||||
|
||||
#include <clang/Basic/SourceManager.h>
|
||||
-#include <clang/Lex/Lexer.h>
|
||||
#include <clang/Basic/SourceLocation.h>
|
||||
#include <clang/Basic/TokenKinds.h>
|
||||
#include <clang/Lex/Token.h>
|
||||
@@ -84,7 +83,7 @@ void SuppressionManager::parseFile(FileID id, const SourceManager &sm, const cla
|
||||
Suppressions &suppressions = (*it).second;
|
||||
|
||||
bool invalid = false;
|
||||
- auto buffer = sm.getBuffer(id, &invalid);
|
||||
+ auto buffer = clazy::getBuffer(sm, id, &invalid);
|
||||
if (invalid) {
|
||||
llvm::errs() << "SuppressionManager::parseFile: Invalid buffer ";
|
||||
if (buffer)
|
||||
@@ -92,7 +91,7 @@ void SuppressionManager::parseFile(FileID id, const SourceManager &sm, const cla
|
||||
return;
|
||||
}
|
||||
|
||||
- Lexer lexer(id, buffer, sm, lo);
|
||||
+ auto lexer = clazy::getLexer(id, buffer, sm, lo);
|
||||
lexer.SetCommentRetentionState(true);
|
||||
|
||||
Token token;
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -1,14 +1,15 @@
|
|||
# Template file for 'clazy'
|
||||
pkgname=clazy
|
||||
version=1.9
|
||||
revision=2
|
||||
version=1.10
|
||||
revision=1
|
||||
build_style=cmake
|
||||
makedepends="clang llvm"
|
||||
build_helper=qemu
|
||||
hostmakedepends="llvm"
|
||||
makedepends="clang llvm clang-tools-extra"
|
||||
depends="clang"
|
||||
short_desc="Qt oriented code checker based on clang framework"
|
||||
maintainer="John <me@johnnynator.dev>"
|
||||
license="LGPL-2.0-or-later"
|
||||
homepage="https://apps.kde.org/en/clazy"
|
||||
distfiles="${KDE_SITE}/clazy/${version}/src/${pkgname}-${version}.tar.xz"
|
||||
checksum=4c6c2e473e6aa011cc5fab120ebcffec3fc11a9cc677e21ad8c3ea676eb076f8
|
||||
nocross="Clang cannot be installed as makedep"
|
||||
checksum=4ce6d55ffcddacdb005d847e0c329ade88a01e8e4f7590ffd2a9da367c1ba39d
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue