Merge topic 'cuda_add_12.8_new_sm_support'
[kiteware-cmake.git] / Modules / UsePkgConfig.cmake
blob139788925020cbb7bc029dab122d557ed1e320df
1 # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2 # file Copyright.txt or https://cmake.org/licensing for details.
4 #[=======================================================================[.rst:
5 UsePkgConfig
6 ------------
8 .. deprecated:: 3.0
9   Use :module:`FindPkgConfig` instead.
11 This module defines the following macro:
13 PKGCONFIG(package includedir libdir linkflags cflags)
15 Calling PKGCONFIG will fill the desired information into the 4 given
16 arguments, e.g.  PKGCONFIG(libart-2.0 LIBART_INCLUDE_DIR
17 LIBART_LINK_DIR LIBART_LINK_FLAGS LIBART_CFLAGS) if pkg-config was NOT
18 found or the specified software package doesn't exist, the variable
19 will be empty when the function returns, otherwise they will contain
20 the respective information
21 #]=======================================================================]
23 find_program(PKGCONFIG_EXECUTABLE NAMES pkg-config )
25 macro(PKGCONFIG _package _include_DIR _link_DIR _link_FLAGS _cflags)
26   message(STATUS
27     "WARNING: you are using the obsolete 'PKGCONFIG' macro, use FindPkgConfig")
28 # reset the variables at the beginning
29   set(${_include_DIR})
30   set(${_link_DIR})
31   set(${_link_FLAGS})
32   set(${_cflags})
34   # if pkg-config has been found
35   if(PKGCONFIG_EXECUTABLE)
37     execute_process(COMMAND ${PKGCONFIG_EXECUTABLE} ${_package} --exists RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
39     # and if the package of interest also exists for pkg-config, then get the information
40     if(NOT _return_VALUE)
42       execute_process(COMMAND ${PKGCONFIG_EXECUTABLE} ${_package} --variable=includedir
43         OUTPUT_VARIABLE ${_include_DIR} OUTPUT_STRIP_TRAILING_WHITESPACE )
44       string(REGEX REPLACE "[\r\n]" " " ${_include_DIR} "${${_include_DIR}}")
46       execute_process(COMMAND ${PKGCONFIG_EXECUTABLE} ${_package} --variable=libdir
47         OUTPUT_VARIABLE ${_link_DIR} OUTPUT_STRIP_TRAILING_WHITESPACE )
48       string(REGEX REPLACE "[\r\n]" " " ${_link_DIR} "${${_link_DIR}}")
50       execute_process(COMMAND ${PKGCONFIG_EXECUTABLE} ${_package} --libs
51         OUTPUT_VARIABLE ${_link_FLAGS} OUTPUT_STRIP_TRAILING_WHITESPACE )
52       string(REGEX REPLACE "[\r\n]" " " ${_link_FLAGS} "${${_link_FLAGS}}")
54       execute_process(COMMAND ${PKGCONFIG_EXECUTABLE} ${_package} --cflags
55         OUTPUT_VARIABLE ${_cflags} OUTPUT_STRIP_TRAILING_WHITESPACE )
56       string(REGEX REPLACE "[\r\n]" " " ${_cflags} "${${_cflags}}")
58     else()
60       message(STATUS "PKGCONFIG() indicates that ${_package} is not installed (install the package which contains ${_package}.pc if you want to support this feature)")
62     endif()
64   # if pkg-config has NOT been found, INFORM the user
65   else()
67     message(STATUS "WARNING: PKGCONFIG() indicates that the tool pkg-config has not been found on your system. You should install it.")
69   endif()
71 endmacro()
73 mark_as_advanced(PKGCONFIG_EXECUTABLE)