1#   BAREOS® - Backup Archiving REcovery Open Sourced
2#
3#   Copyright (C) 2017-2019 Bareos GmbH & Co. KG
4#
5#   This program is Free Software; you can redistribute it and/or
6#   modify it under the terms of version three of the GNU Affero General Public
7#   License as published by the Free Software Foundation and included
8#   in the file LICENSE.
9#
10#   This program is distributed in the hope that it will be useful, but
11#   WITHOUT ANY WARRANTY; without even the implied warranty of
12#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13#   Affero General Public License for more details.
14#
15#   You should have received a copy of the GNU Affero General Public License
16#   along with this program; if not, write to the Free Software
17#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18#   02110-1301, USA.
19
20# generic macro to find libraries
21
22macro(BareosFindLibrary LIBNAME)
23  message(STATUS "checking for library ${LIBNAME}...")
24
25  string(TOUPPER ${LIBNAME} LIBNAME_UPCASE)
26  set(INCLUDE_VAR_NAME ${LIBNAME_UPCASE}_INCLUDE_DIRS)
27  set(LIB_VAR_NAME ${LIBNAME_UPCASE}_LIBRARIES)
28  set(FOUND_VAR_NAME ${LIBNAME_UPCASE}_FOUND)
29  set(HAVE_VAR_NAME HAVE_LIB${LIBNAME_UPCASE})
30
31  find_library(${LIB_VAR_NAME} NAMES ${LIBNAME})
32
33  set(LIBFOUND ${${LIB_VAR_NAME}})
34
35  string(REGEX MATCH "-NOTFOUND" LIBNOTFOUND ${LIBFOUND})
36  # MESSAGE(STATUS  "LIB REGEX MATCH: ${LIBNOTFOUND}")
37  string(LENGTH "${LIBNOTFOUND}" LIBNOTFOUND)
38
39  if(NOT ${LIBNOTFOUND})
40    set(${FOUND_VAR_NAME} TRUE)
41    set(${HAVE_VAR_NAME} 1)
42  else()
43    set(${FOUND_VAR_NAME} FALSE)
44    set(${HAVE_VAR_NAME} 0)
45  endif()
46
47  set(QUIETVALUE ${${QUIET_VAR_NAME}})
48  set(FOUNDVALUE ${${FOUND_VAR_NAME}})
49  if(${FOUNDVALUE})
50    message(STATUS "  ${FOUND_VAR_NAME}=${${FOUND_VAR_NAME}}")
51    message(STATUS "  ${LIB_VAR_NAME}=${${LIB_VAR_NAME}}")
52    message(STATUS "  ${HAVE_VAR_NAME}=${${HAVE_VAR_NAME}}")
53  else()
54    message(STATUS "              ERROR:  ${LIBNAME} libraries NOT found. ")
55
56    set("${LIB_VAR_NAME}" "")
57    set("${INCLUDE_VAR_NAME}" "")
58
59    message(STATUS "  ${FOUND_VAR_NAME}=${${FOUND_VAR_NAME}}")
60    message(STATUS "  ${LIB_VAR_NAME}=${${LIB_VAR_NAME}}")
61    message(STATUS "  ${HAVE_VAR_NAME}=${${HAVE_VAR_NAME}}")
62  endif()
63
64  mark_as_advanced(${LIB_VAR_NAME} ${FOUND_VAR_NAME})
65endmacro()
66