string(TOUPPER "${LLVM_TARGETS_TO_BUILD}" targets)
elseif(ARG_OMITTED_TARGETS)
set(omitted_targets ${LLVM_ALL_TARGETS})
- list(REMOVE_ITEM omitted_targets "${LLVM_TARGETS_TO_BUILD}")
+ list(REMOVE_ITEM omitted_targets ${LLVM_TARGETS_TO_BUILD})
string(TOUPPER "${omitted_targets}" targets)
else()
string(TOUPPER "${LLVM_ALL_TARGETS}" targets)
list(APPEND visited_libs ${name})
set(visited_libs ${visited_libs} PARENT_SCOPE)
- get_property(lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${name})
+ #
+ get_property(libname GLOBAL PROPERTY LLVM_COMPONENT_NAME_${name})
+ if(libname)
+ set(cname LLVM${libname})
+ elseif(TARGET ${name})
+ set(cname ${name})
+ elseif(TARGET LLVM${name})
+ set(cname LLVM${name})
+ else()
+ message(FATAL_ERROR "unknown component ${name}")
+ endif()
+
+ get_property(lib_deps TARGET ${cname} PROPERTY LLVM_LINK_COMPONENTS)
foreach( lib_dep ${lib_deps} )
expand_topologically(${lib_dep} "${required_libs}" "${visited_libs}")
set(required_libs ${required_libs} PARENT_SCOPE)
set(visited_libs ${visited_libs} PARENT_SCOPE)
endforeach()
- list(APPEND required_libs ${name})
+ list(APPEND required_libs ${cname})
set(required_libs ${required_libs} PARENT_SCOPE)
endif()
endfunction()
Changes to building LLVM
------------------------
+* The internal ``llvm-build`` Python script and the associated ``LLVMBuild.txt``
+ files used to describe the LLVM component structure have been removed and
+ replaced by a pure ``CMake`` approach, where each component stores extra
+ properties in the created targets. These properties are processed once all
+ components are defined to resolve library dependencies and produce the header
+ expected by llvm-config.
+
Changes to TableGen
-------------------