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:
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)
27 "WARNING: you are using the obsolete 'PKGCONFIG' macro, use FindPkgConfig")
28 # reset the variables at the beginning
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
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}}")
60 message(STATUS "PKGCONFIG() indicates that ${_package} is not installed (install the package which contains ${_package}.pc if you want to support this feature)")
64 # if pkg-config has NOT been found, INFORM the user
67 message(STATUS "WARNING: PKGCONFIG() indicates that the tool pkg-config has not been found on your system. You should install it.")
73 mark_as_advanced(PKGCONFIG_EXECUTABLE)