You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-antivirus/clamav/files/clamav-0.105.1-cmake-llvm-f...

74 lines
3.1 KiB

clamav 0.105.1 doesn't support LLVM version detection
See: https://github.com/Cisco-Talos/clamav/pull/692
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -480,39 +480,43 @@ find_package(JSONC REQUIRED)
# Set variable required by libclamav to use libjson-c
set(HAVE_JSON 1)
+set(LLVM_MAX_VER "14.0.0")
+set(LLVM_MIN_VER "8.0.0")
+
string (TOLOWER ${BYTECODE_RUNTIME} bytecodeRuntime)
if(${bytecodeRuntime} STREQUAL "llvm")
- set (LLVM_FIND_VERSION "8.0.0")
- find_package(LLVM REQUIRED)
+ if(DEFINED LLVM_ROOT_DIR AND DEFINED LLVM_FIND_VERSION)
+ find_package(LLVM EXACT ${LLVM_FIND_VERSION} REQUIRED HINTS ${LLVM_ROOT_DIR})
+ elseif(DEFINED LLVM_ROOT_DIR)
+ find_package(LLVM REQUIRED HINTS ${LLVM_ROOT_DIR})
+ elseif(DEFINED LLVM_FIND_VERSION)
+ find_package(LLVM EXACT ${LLVM_FIND_VERSION} REQUIRED)
+ else()
+ set (LLVM_FIND_VERSION ${LLVM_MIN_VER})
+ find_package(LLVM REQUIRED)
+ endif()
if(LLVM_FOUND)
if (LLVM_AVAILABLE_LIBS)
- # Found using LLVMConfig.cmake
- message("LLVM found using LLVMConfig.cmake")
- set(LLVM_VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR})
+ message(STATUS "LLVM found using LLVMConfig.cmake")
set(LLVM_LIBRARIES ${LLVM_AVAILABLE_LIBS})
-
- if (${LLVM_PACKAGE_VERSION} VERSION_LESS "8.0.0")
- message(FATAL "LLVM version ${LLVM_PACKAGE_VERSION} is too old")
- endif()
-
else()
- # Found using FindLLVM.cmake
- message("LLVM found using FindLLVM.cmake")
-
- # Set variable required by libclamav to use llvm instead of interpreter
- set(LLVM_VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR})
- message("LLVM_FOUND ${LLVM_FOUND}")
+ message(STATUS "LLVM found using FindLLVM.cmake")
+ set(LLVM_PACKAGE_VERSION ${LLVM_VERSION_STRING})
- if (${LLVM_VERSION_STRING} VERSION_GREATER_EQUAL "9.0.0")
- if (${LLVM_VERSION_STRING} VERSION_LESS "10.0.0")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
- endif()
+ if (${LLVM_VERSION_STRING} VERSION_GREATER_EQUAL "9.0.0" AND ${LLVM_VERSION_STRING} VERSION_LESS "10.0.0")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNDEBUG")
endif()
+ endif()
- if (${LLVM_VERSION_STRING} VERSION_LESS "8.0.0")
- message(FATAL "LLVM version ${LLVM_VERSION_STRING} is too old")
- endif()
+ if (${LLVM_PACKAGE_VERSION} VERSION_LESS ${LLVM_MIN_VER})
+ message(FATAL_ERROR "LLVM version ${LLVM_PACKAGE_VERSION} is too old")
+ elseif (${LLVM_PACKAGE_VERSION} VERSION_GREATER_EQUAL ${LLVM_MAX_VER} )
+ message(FATAL_ERROR "LLVM version ${LLVM_PACKAGE_VERSION} is too new")
+ else()
+ message(STATUS "LLVM version ${LLVM_PACKAGE_VERSION} found")
endif()
+ # Set variable required by libclamav to use llvm instead of interpreter
+ set(LLVM_VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR})
endif()
endif()