]> git.proxmox.com Git - ceph.git/blame - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / vcpkg-pkgconfig-get-modules / x_vcpkg_pkgconfig_get_modules.cmake
CommitLineData
1e59de90
TL
1#[===[.md:\r
2# x_vcpkg_pkgconfig_get_modules\r
3\r
4Experimental\r
5Retrieve required module information from pkgconfig modules\r
6\r
7## Usage\r
8```cmake\r
9x_vcpkg_pkgconfig_get_modules(\r
10 PREFIX <prefix>\r
11 MODULES <pkgconfig_modules>...\r
12 [LIBS]\r
13 [LIBRARIES]\r
14 [LIBRARIES_DIRS]\r
15 [INCLUDE_DIRS]\r
16)\r
17```\r
18## Parameters\r
19\r
20### PREFIX\r
21Used variable prefix to use\r
22\r
23### MODULES\r
24List of pkgconfig modules to retrieve information for.\r
25\r
26### LIBS\r
27Returns `"${PKGCONFIG}" --libs` in <prefix>_LIBS_(DEBUG|RELEASE)\r
28\r
29### LIBRARIES\r
30Returns `"${PKGCONFIG}" --libs-only-l` in <prefix>_LIBRARIES_(DEBUG|RELEASE)\r
31\r
32### LIBRARIES_DIRS\r
33Returns `"${PKGCONFIG}" --libs-only-L` in <prefix>_LIBRARIES_DIRS_(DEBUG|RELEASE)\r
34\r
35### INCLUDE_DIRS\r
36Returns `"${PKGCONFIG}" --cflags-only-I` in <prefix>_INCLUDE_DIRS_(DEBUG|RELEASE)\r
37\r
38## Examples\r
39\r
40* [qt5-base](https://github.com/microsoft/vcpkg/blob/master/ports/qt5-base/portfile.cmake)\r
41#]===]\r
42if(Z_VCPKG_PKGCONFIG_GET_MODULES_GUARD)\r
43 return()\r
44endif()\r
45set(Z_VCPKG_PKGCONFIG_GET_MODULES_GUARD ON CACHE INTERNAL "guard variable")\r
46\r
47function(x_vcpkg_pkgconfig_get_modules)\r
48 cmake_parse_arguments(PARSE_ARGV 0 "arg" "LIBS;LIBRARIES;LIBRARIES_DIR;INCLUDE_DIRS" "PREFIX" "MODULES")\r
49 if(NOT DEFINED arg_PREFIX OR arg_PREFIX STREQUAL "")\r
50 message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter PREFIX!")\r
51 endif()\r
52 if(NOT DEFINED arg_MODULES OR arg_MODULES STREQUAL "")\r
53 message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter MODULES!")\r
54 endif()\r
55 if(DEFINED arg_UNPARSED_ARGUMENTS)\r
56 message(FATAL_ERROR "extra arguments passed to x_vcpkg_pkgconfig_get_modules: ${arg_UNPARSED_ARGUMENTS}")\r
57 endif()\r
58\r
59 vcpkg_find_acquire_program(PKGCONFIG)\r
60 set(backup_PKG_CONFIG_PATH "$ENV{PKG_CONFIG_PATH}")\r
61\r
62 set(var_suffixes)\r
63 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")\r
64 z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}")\r
65 if(arg_LIBS)\r
66 execute_process(\r
67 COMMAND "${PKGCONFIG}" --libs ${arg_MODULES}\r
68 OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_RELEASE\r
69 OUTPUT_STRIP_TRAILING_WHITESPACE\r
70 )\r
71 list(APPEND var_suffixes LIBS_RELEASE)\r
72 endif()\r
73 if(arg_LIBRARIES)\r
74 execute_process(\r
75 COMMAND "${PKGCONFIG}" --libs-only-l ${arg_MODULES}\r
76 OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_RELEASE\r
77 OUTPUT_STRIP_TRAILING_WHITESPACE\r
78 )\r
79 list(APPEND var_suffixes LIBRARIES_RELEASE)\r
80 endif()\r
81 if(arg_LIBRARIES_DIRS)\r
82 execute_process(\r
83 COMMAND "${PKGCONFIG}" --libs-only-L ${arg_MODULES}\r
84 OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_RELEASE\r
85 OUTPUT_STRIP_TRAILING_WHITESPACE\r
86 )\r
87 list(APPEND var_suffixes LIBRARIES_DIRS_RELEASE)\r
88 endif()\r
89 if(arg_INCLUDE_DIRS)\r
90 execute_process(\r
91 COMMAND "${PKGCONFIG}" --cflags-only-I ${arg_MODULES}\r
92 OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_RELEASE\r
93 OUTPUT_STRIP_TRAILING_WHITESPACE\r
94 )\r
95 list(APPEND var_suffixes INCLUDE_DIRS_RELEASE)\r
96 endif()\r
97 endif()\r
98 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")\r
99 z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}")\r
100 if(arg_LIBS)\r
101 execute_process(\r
102 COMMAND "${PKGCONFIG}" --libs ${arg_MODULES}\r
103 OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_DEBUG\r
104 OUTPUT_STRIP_TRAILING_WHITESPACE\r
105 )\r
106 list(APPEND var_suffixes LIBS_DEBUG)\r
107 endif()\r
108 if(arg_LIBRARIES)\r
109 execute_process(\r
110 COMMAND "${PKGCONFIG}" --libs-only-l ${arg_MODULES}\r
111 OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DEBUG\r
112 OUTPUT_STRIP_TRAILING_WHITESPACE\r
113 )\r
114 list(APPEND var_suffixes LIBRARIES_DEBUG)\r
115 endif()\r
116 if(arg_LIBRARIES_DIRS)\r
117 execute_process(\r
118 COMMAND "${PKGCONFIG}" --libs-only-L ${arg_MODULES}\r
119 OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_DEBUG\r
120 OUTPUT_STRIP_TRAILING_WHITESPACE\r
121 )\r
122 list(APPEND var_suffixes LIBRARIES_DIRS_DEBUG)\r
123 endif()\r
124 if(arg_INCLUDE_DIRS)\r
125 execute_process(\r
126 COMMAND "${PKGCONFIG}" --cflags-only-I ${arg_MODULES}\r
127 OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_DEBUG\r
128 OUTPUT_STRIP_TRAILING_WHITESPACE\r
129 )\r
130 list(APPEND var_suffixes INCLUDE_DIRS_DEBUG)\r
131 endif()\r
132 endif()\r
133 set(ENV{PKG_CONFIG_PATH} "${backup_PKG_CONFIG_PATH}")\r
134\r
135 foreach(_var IN LISTS var_suffixes)\r
136 set("${arg_PREFIX}_${_var}" "${${arg_PREFIX}_${_var}}" PARENT_SCOPE)\r
137 endforeach()\r
138endfunction()\r
139\r
140function(z_vcpkg_set_pkgconfig_path _path _backup)\r
141 if(NOT _backup STREQUAL "")\r
142 set(ENV{PKG_CONFIG_PATH} "${_path}${VCPKG_HOST_PATH_SEPARATOR}${_backup}")\r
143 else()\r
144 set(ENV{PKG_CONFIG_PATH} "${_path}")\r
145 endif()\r
146endfunction()\r