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)