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.
74 lines
3.1 KiB
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()
|
|
|