From 15bb8e39f6e08bfd063d6f5f2c1e254bf949e7ce Mon Sep 17 00:00:00 2001 From: Renato Golin Date: Tue, 10 Sep 2013 14:24:17 +0000 Subject: Adding LZMA as dep for XML2 on 2.8.0 or higher LibXML2 config doesn't specify lzma as a dependency, which breaks cross-compilation builds using new linkers (ld 2.21 or higher). There is a bug on libxml2 to fix that, but since it's going to take a while for things to go round and back, so we should have a harmless addition of the library until then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190409 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/config-ix.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'cmake') diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index e8d1863..7f338d8 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -300,6 +300,20 @@ endif() find_package(LibXml2) if (LIBXML2_FOUND) set(CLANG_HAVE_LIBXML 1) + # When cross-compiling, liblzma is not detected as a dependency for libxml2, + # which makes linking c-index-test fail. But for native builds, all libraries + # are installed and checked by CMake before Makefiles are generated and everything + # works according to the plan. However, if a -llzma is added to native builds, + # an additional requirement on the static liblzma.a is required, but will not + # be checked by CMake, breaking native compilation. + # Since this is only pertinent to cross-compilations, and there's no way CMake + # can check for every foreign library on every OS, we add the dep and warn the dev. + if ( DEFINED CMAKE_CROSSCOMPILING ) + if (NOT PC_LIBXML_VERSION VERSION_LESS "2.8.0") + message(STATUS "Adding LZMA as a dep to XML2 for cross-compilation, make sure liblzma.a is available.") + set(LIBXML2_LIBRARIES ${LIBXML2_LIBRARIES} "-llzma") + endif () + endif ( CMAKE_CROSSCOMPILING ) endif () include(CheckCXXCompilerFlag) -- cgit v1.1