summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorRenato Golin <renato.golin@linaro.org>2013-09-10 14:24:17 +0000
committerRenato Golin <renato.golin@linaro.org>2013-09-10 14:24:17 +0000
commit15bb8e39f6e08bfd063d6f5f2c1e254bf949e7ce (patch)
treef82c5f40f2dfdbb7d0a6cd862992e67a34ad7ecf /cmake
parentf3d4b35f24f4e54b2cb99e06f47a958e5557d01e (diff)
downloadexternal_llvm-15bb8e39f6e08bfd063d6f5f2c1e254bf949e7ce.zip
external_llvm-15bb8e39f6e08bfd063d6f5f2c1e254bf949e7ce.tar.gz
external_llvm-15bb8e39f6e08bfd063d6f5f2c1e254bf949e7ce.tar.bz2
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
Diffstat (limited to 'cmake')
-rwxr-xr-xcmake/config-ix.cmake14
1 files changed, 14 insertions, 0 deletions
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)