Warning, /frameworks/kdelibs4support/cmake/modules/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 # Copyright (c) 2007, Christian Ehrlicher, <ch.ehrlicher@gmx.de>
0009 # Redistribution and use is allowed according to the terms of the BSD license.
0010 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0011 
0012 MACRO(FIND_LIBRARY_WITH_DEBUG var_name win32_dbg_postfix_name dgb_postfix libname)
0013 
0014   IF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0015 
0016      # no WIN32_DEBUG_POSTFIX -> simply pass all arguments to FIND_LIBRARY
0017      FIND_LIBRARY(${var_name}
0018                   ${win32_dbg_postfix_name}
0019                   ${dgb_postfix}
0020                   ${libname}
0021                   ${ARGN}
0022      )
0023 
0024   ELSE(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0025 
0026     IF(NOT WIN32)
0027       # on non-win32 we don't need to take care about WIN32_DEBUG_POSTFIX
0028 
0029       FIND_LIBRARY(${var_name} ${libname} ${ARGN})
0030 
0031     ELSE(NOT WIN32)
0032 
0033       # 1. get all possible libnames
0034       SET(args ${ARGN})
0035       SET(newargs "")
0036       SET(libnames_release "")
0037       SET(libnames_debug "")
0038 
0039       LIST(LENGTH args listCount)
0040 
0041       IF("${libname}" STREQUAL "NAMES")
0042         SET(append_rest 0)
0043         LIST(APPEND args " ")
0044 
0045         FOREACH(i RANGE ${listCount})
0046           LIST(GET args ${i} val)
0047 
0048           IF(append_rest)
0049             LIST(APPEND newargs ${val})
0050           ELSE(append_rest)
0051             IF("${val}" STREQUAL "PATHS")
0052               LIST(APPEND newargs ${val})
0053               SET(append_rest 1)
0054             ELSE("${val}" STREQUAL "PATHS")
0055               LIST(APPEND libnames_release "${val}")
0056               LIST(APPEND libnames_debug   "${val}${dgb_postfix}")
0057             ENDIF("${val}" STREQUAL "PATHS")
0058           ENDIF(append_rest)
0059 
0060         ENDFOREACH(i)
0061 
0062       ELSE("${libname}" STREQUAL "NAMES")
0063 
0064         # just one name
0065         LIST(APPEND libnames_release "${libname}")
0066         LIST(APPEND libnames_debug   "${libname}${dgb_postfix}")
0067 
0068         SET(newargs ${args})
0069 
0070       ENDIF("${libname}" STREQUAL "NAMES")
0071 
0072       # search the release lib
0073       FIND_LIBRARY(${var_name}_RELEASE
0074                    NAMES ${libnames_release}
0075                    ${newargs}
0076       )
0077 
0078       # search the debug lib
0079       FIND_LIBRARY(${var_name}_DEBUG
0080                    NAMES ${libnames_debug}
0081                    ${newargs}
0082       )
0083 
0084       IF(${var_name}_RELEASE AND ${var_name}_DEBUG)
0085 
0086         # both libs found
0087         SET(${var_name} optimized ${${var_name}_RELEASE}
0088                         debug     ${${var_name}_DEBUG})
0089 
0090       ELSE(${var_name}_RELEASE AND ${var_name}_DEBUG)
0091 
0092         IF(${var_name}_RELEASE)
0093 
0094           # only release found
0095           SET(${var_name} ${${var_name}_RELEASE})
0096 
0097         ELSE(${var_name}_RELEASE)
0098 
0099           # only debug (or nothing) found
0100           SET(${var_name} ${${var_name}_DEBUG})
0101 
0102         ENDIF(${var_name}_RELEASE)
0103        
0104       ENDIF(${var_name}_RELEASE AND ${var_name}_DEBUG)
0105 
0106       MARK_AS_ADVANCED(${var_name}_RELEASE)
0107       MARK_AS_ADVANCED(${var_name}_DEBUG)
0108 
0109     ENDIF(NOT WIN32)
0110 
0111   ENDIF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
0112 
0113 ENDMACRO(FIND_LIBRARY_WITH_DEBUG)