# Copyright (C) 2023 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("perfetto.gni") declare_args() { # These are provided by chromium's build/config/linux/pkg_config.gni, but # need to be defined if they have not been already. if (perfetto_use_pkgconfig) { if (!defined(pkg_config)) { pkg_config = "pkg-config" } if (!defined(host_pkg_config)) { host_pkg_config = "pkg-config" } } } # Defines a config specifying the result of running pkg-config for the given # packages. Put the package names you want to query in the "pkg_deps" variable # inside the template invocation. template("pkg_config") { config(target_name) { assert(defined(invoker.pkg_deps), "pkg_deps must be set") if (perfetto_use_pkgconfig) { forward_variables_from(invoker, "*") if (current_toolchain == host_toolchain) { _cmd = host_pkg_config } else { _cmd = pkg_config } _pkg_config_result = exec_script("//gn/pkg-config_wrapper.py", [ _cmd ] + pkg_deps, "json") if (_pkg_config_result.cflags != []) { if (!defined(cflags)) { cflags = [] } cflags += _pkg_config_result.cflags } if (_pkg_config_result.libs != []) { if (!defined(libs)) { libs = [] } libs += _pkg_config_result.libs } if (_pkg_config_result.lib_dirs != []) { if (!defined(lib_dirs)) { lib_dirs = [] } lib_dirs += _pkg_config_result.lib_dirs } if (_pkg_config_result.ldflags != []) { if (!defined(ldflags)) { ldflags = [] } ldflags += _pkg_config_result.ldflags } } else { # !perfetto_use_pkgconfig not_needed(invoker, "*") } } }