set(PACKAGE_FOUND FALSE) while(TRUE) find_package(LLVM REQUIRED CONFIG QUIET) # ARCHS has to be set via the CMD interface if(LLVM_FOUND OR "${ARCHS}" STREQUAL "") break() endif() list(GET ARCHS 0 CMAKE_LIBRARY_ARCHITECTURE) list(REMOVE_AT ARCHS 0) endwhile() if(LLVM_FOUND) set(PACKAGE_FOUND TRUE) foreach(mod IN LISTS LLVM_MESON_MODULES) # Reset variables set(out_mods) set(real_mods) # Generate a lower and upper case version string(TOLOWER "${mod}" mod_L) string(TOUPPER "${mod}" mod_U) # Get the mapped components llvm_map_components_to_libnames(out_mods ${mod} ${mod_L} ${mod_U}) list(SORT out_mods) list(REMOVE_DUPLICATES out_mods) # Make sure that the modules exist foreach(i IN LISTS out_mods) if(TARGET ${i}) list(APPEND real_mods ${i}) endif() endforeach() # Set the output variables set(MESON_LLVM_TARGETS_${mod} ${real_mods}) foreach(i IN LISTS real_mods) set(MESON_TARGET_TO_LLVM_${i} ${mod}) endforeach() endforeach() # Check the following variables: # LLVM_PACKAGE_VERSION # LLVM_VERSION # LLVM_VERSION_STRING if(NOT DEFINED PACKAGE_VERSION) if(DEFINED LLVM_PACKAGE_VERSION) set(PACKAGE_VERSION "${LLVM_PACKAGE_VERSION}") elseif(DEFINED LLVM_VERSION) set(PACKAGE_VERSION "${LLVM_VERSION}") elseif(DEFINED LLVM_VERSION_STRING) set(PACKAGE_VERSION "${LLVM_VERSION_STRING}") endif() endif() # Check the following variables: # LLVM_LIBRARIES # LLVM_LIBS set(libs) if(DEFINED LLVM_LIBRARIES) set(libs LLVM_LIBRARIES) elseif(DEFINED LLVM_LIBS) set(libs LLVM_LIBS) endif() # Check the following variables: # LLVM_INCLUDE_DIRS # LLVM_INCLUDES # LLVM_INCLUDE_DIR set(includes) if(DEFINED LLVM_INCLUDE_DIRS) set(includes LLVM_INCLUDE_DIRS) elseif(DEFINED LLVM_INCLUDES) set(includes LLVM_INCLUDES) elseif(DEFINED LLVM_INCLUDE_DIR) set(includes LLVM_INCLUDE_DIR) endif() # Check the following variables: # LLVM_DEFINITIONS set(definitions) if(DEFINED LLVM_DEFINITIONS) set(definitions LLVM_DEFINITIONS) endif() set(PACKAGE_INCLUDE_DIRS "${${includes}}") set(PACKAGE_DEFINITIONS "${${definitions}}") set(PACKAGE_LIBRARIES "${${libs}}") endif()