From a183692ffecd0212993bfaefe2f433aa87c349c7 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 14 Mar 2025 23:31:48 +0100 Subject: [PATCH] clazy: readd patch to fix cross --- ...ipts-with-llvm-clang-provided-cmake-.patch | 354 ++++++++++++++++++ 1 file changed, 354 insertions(+) create mode 100644 srcpkgs/clazy/patches/0001-Replace-Find-scripts-with-llvm-clang-provided-cmake-.patch diff --git a/srcpkgs/clazy/patches/0001-Replace-Find-scripts-with-llvm-clang-provided-cmake-.patch b/srcpkgs/clazy/patches/0001-Replace-Find-scripts-with-llvm-clang-provided-cmake-.patch new file mode 100644 index 00000000000..d7f26922858 --- /dev/null +++ b/srcpkgs/clazy/patches/0001-Replace-Find-scripts-with-llvm-clang-provided-cmake-.patch @@ -0,0 +1,354 @@ +--- clazy-1.12.orig/CMakeLists.txt 2024-06-30 21:33:30.000000000 +0200 ++++ clazy-1.12/CMakeLists.txt 2024-08-04 17:17:37.878433212 +0200 +@@ -22,9 +22,9 @@ + + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake) + if (NOT CLAZY_BUILD_WITH_CLANG) +- find_package(Clang 14.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) +@@ -155,6 +155,7 @@ + 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) +--- a/cmake/FindClang.cmake 2024-12-28 11:58:36.000000000 +0100 ++++ /dev/null 2024-11-12 21:28:07.498058254 +0100 +@@ -1,124 +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 +- +-#============================================================================= +-# SPDX-FileCopyrightText: 2014-2015 Kevin Funk +-# SPDX-FileCopyrightText: 2024 Shivan Kunwar +-# +-# SPDX-License-Identifier: BSD-2-Clause +-#============================================================================= +- +-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_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_AND_ADD_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(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(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(clangAPINotes) +- +- if (LLVM_VERSION VERSION_GREATER_EQUAL "15.0") +- FIND_AND_ADD_CLANG_LIB(clangSupport) +- endif() +- +- # LLVM 19 specific libraries +- if (LLVM_VERSION VERSION_GREATER_EQUAL "19.0") +- FIND_AND_ADD_CLANG_LIB(clangASTMatchers) +- FIND_AND_ADD_CLANG_LIB(clangTransformer) +- FIND_AND_ADD_CLANG_LIB(clangToolingCore) +- FIND_AND_ADD_CLANG_LIB(clangToolingInclusions) +- FIND_AND_ADD_CLANG_LIB(clangToolingRefactoring) +- FIND_AND_ADD_CLANG_LIB(clangToolingSyntax) +- FIND_AND_ADD_CLANG_LIB(clangDependencyScanning) +- endif() +-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 +- set(LLVM_CONFIG_INCLUDE_FLAG "--src-root") +- if (${LLVM_VERSION} VERSION_GREATER_EQUAL 16) +- set(LLVM_CONFIG_INCLUDE_FLAG "--includedir") +- endif() +- execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} ${LLVM_CONFIG_INCLUDE_FLAG} +- 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}/../../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() +--- a/cmake/FindLLVM.cmake 2024-12-28 11:58:36.000000000 +0100 ++++ /dev/null 2024-11-12 21:28:07.498058254 +0100 +@@ -1,202 +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. +- +-#============================================================================= +-# SPDX-FileCopyrightText: 2014 Kevin Funk +-# SPDX-FileCopyrightText: 2024 Shivan Kunwar +-# +-# SPDX-License-Identifier: BSD-2-Clause +-#============================================================================= +- +-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-14 +- 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-14 llvm-config-15 llvm-config-16 llvm-config-17 llvm-config-18 llvm-config-19 llvm-config DOC "llvm-config executable") +- +- 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_VERSION VERSION_LESS "14.0") +- 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}) +- +- 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 +- ) +- +- execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} --bindir +- OUTPUT_VARIABLE LLVM_BIN_DIR +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- set(CLANG_EXECUTABLE_PATH "${LLVM_BIN_DIR}/clang") +- if(EXISTS ${CLANG_EXECUTABLE_PATH}) +- message(STATUS "Clang found: ${CLANG_EXECUTABLE_PATH}") +- set(CLANG_EXECUTABLE ${CLANG_EXECUTABLE_PATH}) +- else() +- message(WARNING "Clang not found in LLVM bin directory: ${LLVM_BIN_DIR}") +- endif() +- +- # potentially add include dir from binary dir for non-installed LLVM +- set(LLVM_CONFIG_INCLUDE_FLAG "--src-root") +- if (${LLVM_VERSION} VERSION_GREATER_EQUAL 16) +- set(LLVM_CONFIG_INCLUDE_FLAG "--includedir") +- endif() +- execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} ${LLVM_CONFIG_INCLUDE_FLAG} +- 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() +- +- # LLVM 19 specific handling +- if (LLVM_VERSION VERSION_GREATER_EQUAL "19.0") +- execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} --libs all +- OUTPUT_VARIABLE LLVM_LIBS_19 +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- string(REPLACE " " ";" LLVM_LIBS_19 ${LLVM_LIBS_19}) +- list(APPEND LLVM_LIBS ${LLVM_LIBS_19}) +- 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}") +- +- if (LLVM_VERSION VERSION_GREATER_EQUAL "19.0") +- message(STATUS " LLVM 19+ detected, additional libraries may be available") +- endif() +-endif() +- +-execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} --cxxflags +- OUTPUT_VARIABLE LLVM_DEFINITIONS +- OUTPUT_STRIP_TRAILING_WHITESPACE +-) +-string(REGEX REPLACE "[ \t]+" ";" LLVM_DEFINITIONS "${LLVM_DEFINITIONS}") +- +-if(LLVM_FIND_COMPONENTS) +- foreach(component ${LLVM_FIND_COMPONENTS}) +- string(TOUPPER ${component} component_upcase) +- set(LLVM_${component_upcase}_FOUND TRUE) +- set(LLVM_${component_upcase}_LIBRARY ${component}) +- endforeach() +-endif() +- +-if (LLVM_VERSION VERSION_GREATER_EQUAL "14.0") +- execute_process( +- COMMAND ${LLVM_CONFIG_EXECUTABLE} --has-rtti +- OUTPUT_VARIABLE LLVM_HAS_RTTI +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- if (LLVM_HAS_RTTI) +- message(STATUS " LLVM built with RTTI: ${LLVM_HAS_RTTI}") +- endif() +-endif() +- +-set(LLVM_VERSION "${LLVM_VERSION}" CACHE STRING "LLVM version") +- +-mark_as_advanced(LLVM_INCLUDE_DIRS LLVM_LIBRARY_DIRS LLVM_CFLAGS LLVM_LFLAGS LLVM_MODULE_LIBS LLVM_LIBS LLVM_DEFINITIONS)