Warning, /frameworks/kfilemetadata/cmake/FindLibraryWithDebug.cmake is written in an unsupported language. File is not indexed.

0001 #
0002 #  FIND_LIBRARY_WITH_DEBUG
0003 #  -> enhanced FIND_LIBRARY to allow the search for an
0004 #     optional debug library with a WIN32_DEBUG_POSTFIX similar
0005 #     to CMAKE_DEBUG_POSTFIX when creating a shared lib
0006 #     it has to be the second and third argument
0007 
0008 # SPDX-FileCopyrightText: 2007 Christian Ehrlicher <ch.ehrlicher@gmx.de>
0009 # SPDX-License-Identifier: BSD-3-Clause
0010 
0011 MACRO(FIND_LIBRARY_WITH_DEBUG var_name win32_dbg_postfix_name dgb_postfix libname)
0012 
0013   IF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0014 
0015      # no WIN32_DEBUG_POSTFIX -> simply pass all arguments to FIND_LIBRARY
0016      FIND_LIBRARY(${var_name}
0017                   ${win32_dbg_postfix_name}
0018                   ${dgb_postfix}
0019                   ${libname}
0020                   ${ARGN}
0021      )
0022 
0023   ELSE(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0024 
0025     IF(NOT WIN32)
0026       # on non-win32 we don't need to take care about WIN32_DEBUG_POSTFIX
0027 
0028       FIND_LIBRARY(${var_name} ${libname} ${ARGN})
0029 
0030     ELSE(NOT WIN32)
0031 
0032       # 1. get all possible libnames
0033       SET(args ${ARGN})
0034       SET(newargs "")
0035       SET(libnames_release "")
0036       SET(libnames_debug "")
0037 
0038       LIST(LENGTH args listCount)
0039 
0040       IF("${libname}" STREQUAL "NAMES")
0041         SET(append_rest 0)
0042         LIST(APPEND args " ")
0043 
0044         FOREACH(i RANGE ${listCount})
0045           LIST(GET args ${i} val)
0046 
0047           IF(append_rest)
0048             LIST(APPEND newargs ${val})
0049           ELSE(append_rest)
0050             IF("${val}" STREQUAL "PATHS")
0051               LIST(APPEND newargs ${val})
0052               SET(append_rest 1)
0053             ELSE("${val}" STREQUAL "PATHS")
0054               LIST(APPEND libnames_release "${val}")
0055               LIST(APPEND libnames_debug   "${val}${dgb_postfix}")
0056             ENDIF("${val}" STREQUAL "PATHS")
0057           ENDIF(append_rest)
0058 
0059         ENDFOREACH(i)
0060 
0061       ELSE("${libname}" STREQUAL "NAMES")
0062 
0063         # just one name
0064         LIST(APPEND libnames_release "${libname}")
0065         LIST(APPEND libnames_debug   "${libname}${dgb_postfix}")
0066 
0067         SET(newargs ${args})
0068 
0069       ENDIF("${libname}" STREQUAL "NAMES")
0070 
0071       # search the release lib
0072       FIND_LIBRARY(${var_name}_RELEASE
0073                    NAMES ${libnames_release}
0074                    ${newargs}
0075       )
0076 
0077       # search the debug lib
0078       FIND_LIBRARY(${var_name}_DEBUG
0079                    NAMES ${libnames_debug}
0080                    ${newargs}
0081       )
0082 
0083       IF(${var_name}_RELEASE AND ${var_name}_DEBUG)
0084 
0085         # both libs found
0086         SET(${var_name} optimized ${${var_name}_RELEASE}
0087                         debug     ${${var_name}_DEBUG})
0088 
0089       ELSE(${var_name}_RELEASE AND ${var_name}_DEBUG)
0090 
0091         IF(${var_name}_RELEASE)
0092 
0093           # only release found
0094           SET(${var_name} ${${var_name}_RELEASE})
0095 
0096         ELSE(${var_name}_RELEASE)
0097 
0098           # only debug (or nothing) found
0099           SET(${var_name} ${${var_name}_DEBUG})
0100 
0101         ENDIF(${var_name}_RELEASE)
0102 
0103       ENDIF(${var_name}_RELEASE AND ${var_name}_DEBUG)
0104 
0105       MARK_AS_ADVANCED(${var_name}_RELEASE)
0106       MARK_AS_ADVANCED(${var_name}_DEBUG)
0107 
0108     ENDIF(NOT WIN32)
0109 
0110   ENDIF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0111 
0112 ENDMACRO(FIND_LIBRARY_WITH_DEBUG)