Merge release-5-0 into release-5-1
authorMark Abraham <mark.j.abraham@gmail.com>
Tue, 4 Aug 2015 12:31:06 +0000 (14:31 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Tue, 4 Aug 2015 12:31:06 +0000 (14:31 +0200)
Change-Id: If110ea29e1756bf6c0b18d3d3852ee4099641ea1

1  2 
cmake/gmxTestLibXml2.cmake

index 38470501efd9fe575c5b31e73233873556194599,99795968bdcf8499cf3a1659a59fe569bd5bcba8..e79b03fcd198fd8bbcd80847d915379c62885907
@@@ -45,45 -45,33 +45,45 @@@ include(CheckLibraryExists
  include(CheckIncludeFiles)
  include(gmxOptionUtilities)
  function(GMX_TEST_LIBXML2 VARIABLE)
 -    if(LIBXML2_FOUND)
 -        gmx_check_if_changed(_do_libxml2_recompile LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES)
 -        if(_do_libxml2_recompile)
 -            unset(LIBXML2_LINKS_OK CACHE)
 -        endif()
 -        if(HAVE_ZLIB)
 -            set(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES};${ZLIB_LIBRARIES}" PARENT_SCOPE) #not needed for dynamic but does not hurt
 -        endif()
 -        check_library_exists("${LIBXML2_LIBRARIES}" "xmlTextWriterEndAttribute" "" LIBXML2_LINKS_OK)
 -        if(LIBXML2_LINKS_OK)
 -            #check that xml headers can be included
 -            set(CMAKE_REQUIRED_INCLUDES "${LIBXML2_INCLUDE_DIR}")
 -            check_include_files("libxml/parser.h" LIBXML2_INCL_OK)
 -            if(NOT LIBXML2_INCL_OK)
 -                #xml headers depend on iconv.h. Test whether adding its path fixes the problem
 -                find_path(ICONV_INCLUDE_DIR iconv.h)
 -                if(ICONV_INCLUDE_DIR)
 -                    set(CMAKE_REQUIRED_INCLUDES "${LIBXML2_INCLUDE_DIR};${ICONV_INCLUDE_DIR}")
 -                    unset(LIBXML2_INCL_OK CACHE)
 -                    check_include_files("libxml/parser.h" LIBXML2_INCL_OK)
 -                    set(LIBXML2_INCLUDE_DIR "${LIBXML2_INCLUDE_DIR};${ICONV_INCLUDE_DIR}" CACHE PATH "Libxml2 include path" FORCE)
 -                endif()
 +    if(NOT LIBXML2_FOUND)
 +        set(${VARIABLE} OFF PARENT_SCOPE)
 +      return()
 +    endif()
 +
 +    if(HAVE_ZLIB)
-         set(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES}" z PARENT_SCOPE) #not needed for dynamic but does not hurt
++        set(LIBXML2_LIBRARIES "${LIBXML2_LIBRARIES};${ZLIB_LIBRARIES}" PARENT_SCOPE) #not needed for dynamic but does not hurt
 +    endif()
 +
 +    string(TOUPPER "${CMAKE_BUILD_TYPE}" _cmake_build_type)
 +    if(${_cmake_build_type} STREQUAL "MSAN")
 +        # Linking MSan-enabled libxml2 and zlib in a way that can be
 +        # tested with try_compile setup is tricky, but someone doing
 +        # an MSan build can take care of themselves (for now, at
 +        # least).
 +        set(${VARIABLE} ON PARENT_SCOPE)
 +        return()
 +    endif()
 +
 +    gmx_check_if_changed(_do_libxml2_recompile LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES)
 +    if(_do_libxml2_recompile)
 +        unset(LIBXML2_LINKS_OK CACHE)
 +    endif()
 +    check_library_exists("${LIBXML2_LIBRARIES}" "xmlTextWriterEndAttribute" "" LIBXML2_LINKS_OK)
 +    if(LIBXML2_LINKS_OK)
 +        #check that xml headers can be included
 +        set(CMAKE_REQUIRED_INCLUDES "${LIBXML2_INCLUDE_DIR}")
 +      check_include_files("libxml/parser.h" LIBXML2_INCL_OK)
 +      if(NOT LIBXML2_INCL_OK)
 +            #xml headers depend on iconv.h. Test whether adding its path fixes the problem
 +            find_path(ICONV_INCLUDE_DIR iconv.h)
 +            if(ICONV_INCLUDE_DIR)
 +                set(CMAKE_REQUIRED_INCLUDES "${LIBXML2_INCLUDE_DIR};${ICONV_INCLUDE_DIR}")
 +              unset(LIBXML2_INCL_OK CACHE)
 +              check_include_files("libxml/parser.h" LIBXML2_INCL_OK)
 +              set(LIBXML2_INCLUDE_DIR "${LIBXML2_INCLUDE_DIR};${ICONV_INCLUDE_DIR}" CACHE PATH "Libxml2 include path" FORCE)
              endif()
 -            set(${VARIABLE} ${LIBXML2_INCL_OK} PARENT_SCOPE)
 -        else()
 -            set(${VARIABLE} OFF PARENT_SCOPE)
          endif()
 +      set(${VARIABLE} ${LIBXML2_INCL_OK} PARENT_SCOPE)
      else()
          set(${VARIABLE} OFF PARENT_SCOPE)
      endif()