diff --git a/CMakeLists.txt b/CMakeLists.txt index 847d9b5c..d9b3ae1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ endif() # find_package(LLVM 3.1 REQUIRED - all-targets bitwriter linker ipo instrumentation backend support tablegen asmparser ${EXTRA_LLVM_MODULES}) + all-targets bitwriter linker ipo instrumentation backend support tablegen asmparser lto ${EXTRA_LLVM_MODULES}) math(EXPR LDC_LLVM_VER ${LLVM_VERSION_MAJOR}*100+${LLVM_VERSION_MINOR}) # diff --git a/cmake/Modules/FindLLVM.cmake b/cmake/Modules/FindLLVM.cmake index 9cc0e380..aabf08d4 100644 --- a/cmake/Modules/FindLLVM.cmake +++ b/cmake/Modules/FindLLVM.cmake @@ -51,6 +51,10 @@ if (WIN32 OR NOT LLVM_CONFIG) list(REMOVE_ITEM LLVM_FIND_COMPONENTS "all-targets" index) list(APPEND LLVM_FIND_COMPONENTS ${LLVM_TARGETS_TO_BUILD}) list(REMOVE_ITEM LLVM_FIND_COMPONENTS "backend" index) + if(${LLVM_VERSION_STRING} MATCHES "3.[0-4][A-Za-z]*") + # Versions below 3.5 do not supoort component lto + list(REMOVE_ITEM LLVM_FIND_COMPONENTS "lto" index) + endif() llvm_map_components_to_libraries(tmplibs ${LLVM_FIND_COMPONENTS}) if(MSVC) @@ -102,6 +106,10 @@ else() endmacro() llvm_set(VERSION_STRING version) + if(${LLVM_VERSION_STRING} MATCHES "3.[0-4][A-Za-z]*") + # Versions below 3.5 do not supoort component lto + list(REMOVE_ITEM LLVM_FIND_COMPONENTS "lto" index) + endif() if(${LLVM_VERSION_STRING} MATCHES "3.0[A-Za-z]*") # Version 3.0 does not support component all-targets llvm_set(TARGETS_TO_BUILD targets-built)