diff options
author | Rolf Eike Beer <eike@sf-mail.de> | 2012-01-26 17:35:14 (GMT) |
---|---|---|
committer | Rolf Eike Beer <eike@sf-mail.de> | 2012-01-26 17:35:13 (GMT) |
commit | 9d7a00104f6efa4f13cf2a5c69c79b9d6f6e261d (patch) | |
tree | 698dcfd6bd610e3e31d0e6163127b4cb83d59ecd | |
parent | 208569f1da0cf2c481f4b377ad4fe542a3a74e2a (diff) | |
download | CMake-9d7a00104f6efa4f13cf2a5c69c79b9d6f6e261d.zip CMake-9d7a00104f6efa4f13cf2a5c69c79b9d6f6e261d.tar.gz CMake-9d7a00104f6efa4f13cf2a5c69c79b9d6f6e261d.tar.bz2 |
FindLibXml2: detect version when PkgConfig is not used
-rw-r--r-- | Modules/FindLibXml2.cmake | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Modules/FindLibXml2.cmake b/Modules/FindLibXml2.cmake index a797b12..48a5498 100644 --- a/Modules/FindLibXml2.cmake +++ b/Modules/FindLibXml2.cmake @@ -45,15 +45,22 @@ FIND_PROGRAM(LIBXML2_XMLLINT_EXECUTABLE xmllint) # for backwards compat. with KDE 4.0.x: SET(XMLLINT_EXECUTABLE "${LIBXML2_XMLLINT_EXECUTABLE}") +IF(PC_LIBXML_VERSION) + SET(LIBXML2_VERSION_STRING ${PC_LIBXML_VERSION}) +ELSEIF(LIBXML2_INCLUDE_DIR AND EXISTS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h") + FILE(STRINGS "${LIBXML2_INCLUDE_DIR}/libxml/xmlversion.h" libxml2_version_str + REGEX "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\".*\"") + + STRING(REGEX REPLACE "^#define[\t ]+LIBXML_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1" + LIBXML2_VERSION_STRING "${libxml2_version_str}") + UNSET(libxml2_version_str) +ENDIF() + # handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if # all listed variables are TRUE INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 REQUIRED_VARS LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR - VERSION_VAR PC_LIBXML_VERSION) - -IF(LIBXML2_FOUND) - SET(LIBXML2_VERSION_STRING ${PC_LIBXML_VERSION}) -ENDIF() + VERSION_VAR LIBXML2_VERSION_STRING) MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES LIBXML2_XMLLINT_EXECUTABLE) |