Commit 73c53e61 authored by Saleem Abdulrasool's avatar Saleem Abdulrasool Committed by Hans Wennborg
Browse files

build: process the libxml2 library path for embedding

Process the path for libxml2 before embedding that into the command line
that is generated in `llvm-config`.  Each element in the path is being
given a `-l` unconditionally which should not be the case for absolute
paths.  Since the library path may be absolute or not, just apply some
CMake pre-processing when generating the path.

Before:
```
/usr/lib/x86_64-linux-gnu/libz.so -lrt -ldl -ltinfo -lpthread -lm /usr/lib/x86_64-linux-gnu/libxml2.so
```

After:
```
/usr/lib/x86_64-linux-gnu/libz.so -lrt -ldl -ltinfo -lpthread -lm -lxml2
```

Resolves PR44179!

(cherry picked from commit c3595d10)
parent cd0926d0
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -7,6 +7,15 @@ add_llvm_component_library(LLVMWindowsManifest

if(LIBXML2_LIBRARIES)
  target_link_libraries(LLVMWindowsManifest PUBLIC ${LIBXML2_LIBRARIES})

  get_filename_component(xml2_library ${LIBXML2_LIBRARIES} NAME)
  if(xml2_library MATCHES "^${CMAKE_STATIC_LIBRARY_PREFIX}.*${CMAKE_STATIC_LIBRARY_SUFFIX}$")
    string(REGEX REPLACE "^${CMAKE_STATIC_LIBRARY_PREFIX}" "" xml2_library ${xml2_library})
    string(REGEX REPLACE "${CMAKE_STATIC_LIBRARY_SUFFIX}$" "" xml2_library ${xml2_library})
  elseif(xml2_library MATCHES "^${CMAKE_SHARED_LIBRARY_PREFIX}.*${CMAKE_SHARED_LIBRARY_SUFFIX}$")
    string(REGEX REPLACE "^${CMAKE_SHARED_LIBRARY_PREFIX}" "" xml2_library ${xml2_library})
    string(REGEX REPLACE "${CMAKE_SHARED_LIBRARY_SUFFIX}$" "" xml2_library ${xml2_library})
  endif()
  set_property(TARGET LLVMWindowsManifest PROPERTY
    LLVM_SYSTEM_LIBS ${LIBXML2_LIBRARIES})
    LLVM_SYSTEM_LIBS ${xml2_library})
endif()