• 带有ZLIB_LIBRARY_DEBUG的FindZLIB.cmake文件


    CMake自带的FindZLIB.cmake只有ZLIB_LIBRARY,而没有ZLIB_LIBRARY_DEBUG

    将下面的代码保存成FindZLIB.cmake,替换掉D:Program Files (x86)CMakesharecmake-3.3ModulesFindZLIB.cmake

    # - Find zlib
    # Find the native ZLIB includes and library.
    # Once done this will define
    #
    #  ZLIB_INCLUDE_DIRS   - where to find zlib.h, etc.
    #  ZLIB_LIBRARIES      - List of libraries when using zlib.
    #  ZLIB_FOUND          - True if zlib found.
    #
    #  ZLIB_VERSION_STRING - The version of zlib found (x.y.z)
    #  ZLIB_VERSION_MAJOR  - The major version of zlib
    #  ZLIB_VERSION_MINOR  - The minor version of zlib
    #  ZLIB_VERSION_PATCH  - The patch version of zlib
    #  ZLIB_VERSION_TWEAK  - The tweak version of zlib
    #
    # The following variable are provided for backward compatibility
    #
    #  ZLIB_MAJOR_VERSION  - The major version of zlib
    #  ZLIB_MINOR_VERSION  - The minor version of zlib
    #  ZLIB_PATCH_VERSION  - The patch version of zlib
    #
    # An includer may set ZLIB_ROOT to a zlib installation root to tell
    # this module where to look.
    
    #=============================================================================
    # Copyright 2001-2011 Kitware, Inc.
    #
    # Distributed under the OSI-approved BSD License (the "License");
    # see accompanying file Copyright.txt for details.
    #
    # This software is distributed WITHOUT ANY WARRANTY; without even the
    # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    # See the License for more information.
    #=============================================================================
    # (To distribute this file outside of CMake, substitute the full
    #  License text for the above reference.)
    
    set(_ZLIB_SEARCHES)
    
    # Search ZLIB_ROOT first if it is set.
    if(ZLIB_ROOT)
      set(_ZLIB_SEARCH_ROOT PATHS ${ZLIB_ROOT} NO_DEFAULT_PATH)
      list(APPEND _ZLIB_SEARCHES _ZLIB_SEARCH_ROOT)
    endif()
    
    # Normal search.
    set(_ZLIB_SEARCH_NORMAL
      PATHS "[HKEY_LOCAL_MACHINE\SOFTWARE\GnuWin32\Zlib;InstallPath]"
            "$ENV{PROGRAMFILES}/zlib"
      )
    list(APPEND _ZLIB_SEARCHES _ZLIB_SEARCH_NORMAL)
    
    set(ZLIB_NAMES z zlib zdll zlib1)
    set(ZLIB_NAMES_DEBUG zlibd zlibd1)
    
    # Try each search configuration.
    foreach(search ${_ZLIB_SEARCHES})
      find_path(ZLIB_INCLUDE_DIR NAMES zlib.h        ${${search}} PATH_SUFFIXES include)
      find_library(ZLIB_LIBRARY  NAMES ${ZLIB_NAMES} ${${search}} PATH_SUFFIXES lib)
      find_library(ZLIB_LIBRARY_DEBUG  NAMES ${ZLIB_NAMES_DEBUG} ${${search}} PATH_SUFFIXES lib)
    endforeach()
    
    mark_as_advanced(ZLIB_INCLUDE_DIR ZLIB_LIBRARY ZLIB_LIBRARY_DEBUG)
    
    # parse version from #define ZLIB_VERSION in zlib.h
    if(ZLIB_INCLUDE_DIR AND EXISTS "${ZLIB_INCLUDE_DIR}/zlib.h")
        file(STRINGS "${ZLIB_INCLUDE_DIR}/zlib.h" ZLIB_H REGEX "^#define ZLIB_VERSION "[^"]*"$")
    
        string(REGEX REPLACE "^.*ZLIB_VERSION "([0-9]+).*$" "\1" ZLIB_VERSION_MAJOR "${ZLIB_H}")
        string(REGEX REPLACE "^.*ZLIB_VERSION "[0-9]+\.([0-9]+).*$" "\1" ZLIB_VERSION_MINOR  "${ZLIB_H}")
        string(REGEX REPLACE "^.*ZLIB_VERSION "[0-9]+\.[0-9]+\.([0-9]+).*$" "\1" ZLIB_VERSION_PATCH "${ZLIB_H}")
        set(ZLIB_VERSION_STRING "${ZLIB_VERSION_MAJOR}.${ZLIB_VERSION_MINOR}.${ZLIB_VERSION_PATCH}")
    
        # only append a TWEAK version if it exists:
        set(ZLIB_VERSION_TWEAK "")
        if( "${ZLIB_H}" MATCHES "^.*ZLIB_VERSION "[0-9]+\.[0-9]+\.[0-9]+\.([0-9]+).*$")
            set(ZLIB_VERSION_TWEAK "${CMAKE_MATCH_1}")
            set(ZLIB_VERSION_STRING "${ZLIB_VERSION_STRING}.${ZLIB_VERSION_TWEAK}")
        endif()
    
        set(ZLIB_MAJOR_VERSION "${ZLIB_VERSION_MAJOR}")
        set(ZLIB_MINOR_VERSION "${ZLIB_VERSION_MINOR}")
        set(ZLIB_PATCH_VERSION "${ZLIB_VERSION_PATCH}")
    endif()
    
    # handle the QUIETLY and REQUIRED arguments and set ZLIB_FOUND to TRUE if
    # all listed variables are TRUE
    include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
    FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR
                                           VERSION_VAR ZLIB_VERSION_STRING)
    
    if(ZLIB_FOUND)
        set(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
        if(ZLIB_LIBRARY_DEBUG)
            set(ZLIB_LIBRARIES debug ${ZLIB_LIBRARY_DEBUG} optimized ${ZLIB_LIBRARY})
        else()
            set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
        endif()
    endif()
  • 相关阅读:
    php的四种算法
    laravel框架安装过程中遇到的问题
    json_decode转码无效
    php通过mysqli链接mysql数据库
    jq函数绑定与解绑
    redis的运行机制
    数据库设计的三范式
    MYSQL数据库索引
    PHP超全局变量数组
    vue的settings.json格式化配置
  • 原文地址:https://www.cnblogs.com/coolbear/p/7587616.html
Copyright © 2020-2023  润新知