include(GetLibraryName)

if(LLVM_ENABLE_LIBXML2)
  set(imported_libs LibXml2::LibXml2)
endif()

add_llvm_component_library(LLVMWindowsManifest
  WindowsManifestMerger.cpp

  ADDITIONAL_HEADER_DIRS
  ${LLVM_MAIN_INCLUDE_DIR}/llvm/WindowsManifest
  ${Backtrace_INCLUDE_DIRS}

  LINK_LIBS
  ${imported_libs}

  LINK_COMPONENTS
  Support
  )

# This block is only needed for llvm-config. When we deprecate llvm-config and
# move to using CMake export, this block can be removed.
if(LLVM_ENABLE_LIBXML2)
  # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators.
  if(CMAKE_BUILD_TYPE)
    string(TOUPPER ${CMAKE_BUILD_TYPE} build_type)
    get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION_${build_type})
  endif()
  if(NOT zlib_library)
    get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION)
  endif()
  get_library_name(${libxml2_library} libxml2_library)
  set_property(TARGET LLVMWindowsManifest PROPERTY LLVM_SYSTEM_LIBS ${libxml2_library})
endif()
