| list(APPEND LLVM_COMMON_DEPENDS intrinsics_gen) | 
 |  | 
 | list(APPEND LLVM_TABLEGEN_FLAGS -I ${LLVM_MAIN_SRC_DIR}/lib/Target) | 
 |  | 
 | add_llvm_component_library(LLVMTarget | 
 |   Target.cpp | 
 |   TargetIntrinsicInfo.cpp | 
 |   TargetLoweringObjectFile.cpp | 
 |   TargetMachine.cpp | 
 |   TargetMachineC.cpp | 
 |  | 
 |   ADDITIONAL_HEADER_DIRS | 
 |   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Target | 
 |   ) | 
 |  | 
 | # When building shared objects for each target there are some internal APIs | 
 | # that are used across shared objects which we can't hide. | 
 | if (NOT BUILD_SHARED_LIBS AND NOT APPLE) | 
 |   # Set default visibility to hidden, so we don't export all the Target classes | 
 |   # in libLLVM.so. | 
 |   set(CMAKE_CXX_VISIBILITY_PRESET hidden) | 
 | endif() | 
 |  | 
 | foreach(t ${LLVM_TARGETS_TO_BUILD}) | 
 |   message(STATUS "Targeting ${t}") | 
 |   add_subdirectory(${t}) | 
 | endforeach() | 
 |  | 
 | # Currently we do not allow libraries from lib to reference targets directly. | 
 | # This property is used to enforce that convention. It is important because the | 
 | # logic in llvm_map_components_to_libnames is order dependent on the target | 
 | # libraries being created. | 
 | set_property(GLOBAL PROPERTY LLVM_TARGETS_CONFIGURED On) |